Блог

Разработка онлайн-сервиса распознавания страниц

Извлечение текста из любых печатных изданий

Срок реализации – от 3-4 месяцев до полугода.

Задачи

  1. Оцифровка печатных страниц
  2. Корректное распознавание текста
  3. Автоматическое форматирование
  4. Возможность быстро формировать большой объем документов

Стэк

React, Typescript, DraftJS

Решение

Я буду читать сейчас все газеты

Клиент обратился с задачей по созданию сервиса, который бы упростил и ускорил процесс формирования электронной подшивки гигантского архива периодических печатных изданий, выходящих в РФ. Мы взяли на себя работы по клиентской (frontend) части. Расскажем, как выглядит процесс спустя 4 месяца разработки.
На экране пользователь видит исходный документ - фото или скан печатной страницы газеты или журнала, на котором автоматически размечены области с текстом. Блоки, извлеченные из исходного документа, «помнят» координаты, из какого абзаца и какой страницы исходника они взяты. По клику можно вернуться к оригиналу, и уточнить верность расшифровки.
Сервис умеет определять, что на одной странице расположено несколько статей, и самостоятельно декомпозировать их в отдельные документы, с разбивкой на абзацы и заголовки. Бывает, что статья в журнале сверстана так, что части публикации по странице разбросаны хаотично. С помощью wysisyg-редактора оператор моментально размечает порядок блоков для обработки, и получает аккуратный связный текст.
Также ему в помощь мы прикрутили словарь для автозамены и поиска регулярных выражений. Можно ввести паттерны, и тогда, например, фраза «министр был в Питере» будет автоматически заменена на «министр был в Санкт-Петербурге».
Известные десктопные решения (напр., FineReader), как правило, распознают страницу целиком и на выходе предоставляет массив неформатированного текста. У нас же получился функционал более мощный, но при этом с хорошо продуманным и понятным UX. Это позволяет даже оператору с базовым владением ПК оцифровывать входящие документы с очень высокой скоростью.
Мы создали систему, которая работает максимально быстро, и требует минимум действий от оператора. Полагаю, у нас получился продукт, который мог бы быть полезен для многих компаний на стыке печатных и цифровых медийных отраслей. Полученный опыт позволит быстро адаптировать наработки под задачу конкретного клиента.
Евгений, frontend developer
Frontend ReactJS JavaScript EdTech