Давайте поможем Котикам (но не тем что вы подумали)
Денис Бигус (журналист расследующий коррупцию) запустил со своей командой новый проект для оцифровки деклараций чиновников и судей — Котики:
kotyky.org.ua
Суть проекта: есть ОЧЕНЬ МНОГО отсканированных деклараций чиновников и судей за разные года. Формат — многостраничные сканированные pdf. Порядок страниц может быть нарушен. Волонтерам предлагается вручную вводить данные из сканированного pdf в формы (набор полей ввода) для последующего программного анализа оцифрованных данных. Сейчас есть неудобство — pdf в одном окне, а форма в другом — из-за этого приходиться постоянно переключаться между окнами и заново искать на каком поле ввода остановился. Даже если у пользователя 2 монитора (что бывает редко) — то все равно прийдется постоянно «прыгать» глазами между двумя окнами.
У меня возникла идея как сделать перенос данных более удобным и быстрым. Денису идея понравилась и мы с ним договорились, что я сначала сделаю пример (proof of concept), он на него посмотрит — и тогда будем думать над полноценной реализацией. Нужна помощь фронтенд программиста (Шаг 2)
Идея улучшения:
Декларация — это утвержденная форма, распечатанная на принтере, а потом заполненная чиновником вручную. Соответственно, страницу можно пробовать распознать — в итоге мы получим распознанный печатный текст самой формы и билиберду для рукописной части (которую заполнил чиновник). По распознанному тексту можно определить какого типа это документ (я так понял что декларации бывают разного типа) и какая это страница из этого документа. Определив какая это страница можно также восстановить порядок страниц если он был нарушен.
После того как мы поняли что это за документ и что это за страница можно показать пользователю только одну страницу на которой будет оригинальная страница (png или jpeg) отображаться на заднем фоне — а поверх нее будут поля для ввода данных. При таком подходе не прийдется постоянно прыгать глазами — увеличиться скорость и уменьшится количество ошибок.
Шаг 1 (проверено — работает):
Программно открываем pdf и постранично скармливаем FineReader:
cd C:\Program Files (x86)\ABBYY FineReader 12
FineCmd.exe C:\Temp\Doc1Page1.pdf /lang ukrainian /out C:\Temp\Doc1Page1.txt /quit
Получаем текст в котором ищем ключевые слова-фразы по которым определяем что это за страница и какой документ (из списка заранее формализованных документов и страниц).
Пример pdf и распознанного текста:
drive.google.com/...fVlWgnavWYaoJ?usp=sharing
Шаг 2. (нужна помощь веб программиста):
Отображаем картинку pdf страницы (png или jpeg) и поверх генерируем поля для ввода. Главная проблема — это правильно расположить поля ввода поверх сканированной формы. Позиции полей ввода можно описать в процентах и соответственно располагать поверх картинки оригинального документа. Думаю что даже некоторое несовпадение позиций вполне допустимо. При масштабировании страницы будет масштабироваться как фоновая картинка оригинального документа так и положение полей ввода.
Я программист, но никогда не имел дела с разработкой фронтенда. Может кому интересно помочь со вторым шагом...
Денис Бигус:
www.facebook.com/bihus.info
www.facebook.com/monti.czardas
4 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів