Понравились проекты?
Свяжитесь с нами!
Производство

Корпоративная система поиска по архиву документов с OCR-распознаванием

Когда в архиве компании хранятся тысячи документов, поиск нужной информации может занимать часы. Мы разработали приложение, которое автоматизировало поиск по документам и сканам, сократило время получения данных с нескольких часов до нескольких минут и обеспечило обработку информации внутри ИТ-контура компании.

Технологический стек
.Net 8AvaloniaC#

О клиенте

Крупное российское промышленное металлургическое предприятие*. Компания ежедневно работает с большими объемами технической, производственной и отчетной документации. Значительная часть цифрового архива — файлы различных форматов, включая сканированные документы.

*Из-за соглашения о конфиденциальности (NDA) название компании не раскрывается.

Ситуация до начала проекта

Для поиска нужной информации сотрудники компании вручную просматривали цифровые архивы. Если требовалось найти конкретную фразу, номер документа, наименование изделия или иной фрагмент текста, специалистам приходилось открывать десятки и даже сотни файлов, перечитывая большое количество страниц. Это приводило к нескольким проблемам:

  • нагрузка на сотрудников постоянно возрастала из-за увеличения объема архивной документации;
  • вероятность пропустить важную информацию была высокой из-за человеческого фактора при ручном поиске;
  • поиск необходимых данных занимал много времени из-за большого объема документов в архиве.

Хотя на рынке представлены готовые программные продукты для поиска информации в документах и архивах, для заказчика такой вариант оказался невыгодным. Использование подписочных решений означало бы регулярные расходы на лицензии, а передача документов во внешние сервисы создавала дополнительные риски для безопасности корпоративных данных. Поэтому компания приняла решение инвестировать в собственный инструмент, который работает во внутренней инфраструктуре и учитывает особенности существующих бизнес-процессов.

Подписочное решение Индивидуальная разработка
Ежемесячные расходы на подписки Единовременные инвестиции
Зависимость от вендора Полное владение продуктом
Универсальный функционал Решение под конкретные задачи
Обработка данных во внешней инфраструктуре Безопасность данных компании

Цель и задачи

Цель проекта — разработать приложение для автоматического поиска заданных фраз в архивах документов различных форматов и сократить время, которое сотрудники тратят на ручной анализ файлов.

Задачи:

  1. Создать механизм обработки и анализа документов различных форматов (XLS, XLSX, RTF, DOC, DOCX, PDF).
  2. Реализовать извлечение текста из документов, включая распознавание информации в сканированных файлах с помощью OCR.
  3. Провести тестирование приложения, проверить корректность поиска и точность распознавания текста в различных форматах файлов.

Решение

Мы разработали десктоп-приложение, которое автоматически анализирует архивы документов различных форматов и выполняет поиск по пользовательским запросам.

Система самостоятельно извлекает текст из файлов, распознает содержимое сканированных документов и за секунды находит нужную информацию в массиве данных.

Пользователь указывает нужную фразу, после чего программа автоматически анализирует документы и показывает найденные совпадения.

Поддержка различных форматов

Чтобы поиск работал по всему архиву документов, мы реализовали механизм автоматического извлечения текста из всех распространенных офисных форматов. Система анализирует содержимое файлов Excel и Word независимо от их объема и структуры.

Такой подход позволяет пользователю выполнять поиск одновременно по всем документам, не открывая каждый файл вручную и не задумываясь о его формате. Приложение самостоятельно обрабатывает содержимое таблиц, текстовых документов и других файлов и находит нужные фразы по всему архиву за один запрос.

Для обработки использовались библиотеки ClosedXML и ExcelDataReader, а для работы с документами — DocumentFormat.OpenXml, NPOI и RtfPipe. Эти инструменты обеспечили единый подход к обработке документов независимо от их структуры и объема.

Извлечение данных из изображений

Мы также настроили работу приложения с PDF-файлами. В некоторых случаях текст содержался не в структуре документа, а внутри изображений — сканов договоров, актов, технической документации и других материалов. 

Для анализа стандартных PDF использовалась библиотека iText. Для распознавания текста на изображениях применялась модель Tesseract, обученная на работе с русскоязычными и англоязычными текстами. 

Гибкий поиск данных

На практике сотрудникам часто требуется искать документы не по одному, а сразу по нескольким ключевым словам. Например, необходимо найти документы, в которых одновременно упоминаются «амортизация» и «транспорт». Для таких сценариев в системе реализован поиск по нескольким условиям с возможностью выбора логики отбора результатов.

При этом пользователь может находить документы, содержащие все указанные слова одновременно, либо получать расширенную выборку файлов, где встречается хотя бы одно из заданных ключевых слов. Такой подход позволяет быстро получать как максимально точные, так и более широкие результаты поиска в зависимости от поставленной задачи.

Пользователь может искать документы по одному или нескольким ключевым словам, а также задавать условия поиска для более точного результата.

При перезагрузке оборудования устройство иногда передает в приложение нулевые показатели вместо реальных данных. Мы настроили систему таким образом, чтобы показатели при получении нуля не менялись до прихода верных цифр.

Результат

Проект разработки ПО для распознавания текста и поиска данных в архиве документов был реализован за 3 недели. 
После внедрения решения заказчик получил:
безопасность конфиденциальной информации благодаря тому, что анализ документов происходит внутри ИТ-контура компании;
сокращение трудозатрат на обработку данных и поиск информации благодаря гибкому поиску данных;
уменьшение затрат благодаря внедрению собственного программного обеспечения вместо подписок и лицензий на готовое.

После передачи установочного файла заказчик оперативно запустил опытную эксплуатацию на реальных данных. Замечаний по работе системы не возникло. 

Многие компании рассматривают покупку готового программного обеспечения как самый быстрый путь решения задачи. Однако зачастую выгоднее один раз создать решение под свои задачи, чем годами оплачивать лицензии за универсальный продукт с избыточным функционалом, одновременно снижая риски, связанные с передачей чувствительной информации во внешние системы.

Опытная команда разработки поможет оценить оба сценария и выбрать вариант, который будет выгоден не только сегодня, но и через несколько лет эксплуатации.