Когда архив компании насчитывает тысячи документов, поиск нужной информации может занимать часы. Мы разработали корпоративное приложение, которое автоматизировало поиск по документам и сканам, сократив время поиска с нескольких часов до минут без передачи данных за пределы ИТ-контура компании.
О клиенте
Крупное российское промышленное металлургическое предприятие*. Компания ежедневно работает с большими объемами технической, производственной и отчетной документации. Значительную часть цифрового архива составляют файлы различных форматов, включая сканированные документы.
*Из-за соглашения о конфиденциальности (NDA) название компании не раскрывается.
Ситуация до начала проекта
До внедрения решения сотрудники компании искали информацию вручную, просматривая цифровые архивы. Чтобы найти конкретную фразу, номер документа, наименование изделия или другой фрагмент текста, специалистам приходилось открывать десятки, а иногда и сотни файлов, просматривая большое количество страниц. Это приводило к тому, что:
нагрузка на сотрудников постоянно увеличивалась по мере роста объема архивной документации;
сохранялся высокий риск пропустить важную информацию из-за человеческого фактора;
поиск нужных данных занимал значительное время из-за большого объема документов.
Несмотря на наличие готовых решений для поиска по документам и архивам, этот вариант не подошел заказчику. Использование подписочных сервисов означало бы постоянные расходы на лицензии, а передача документов во внешние системы создавала дополнительные риски для безопасности корпоративной информации. Поэтому компания решила инвестировать в собственное решение, которое работает внутри инфраструктуры организации и учитывает особенности действующих бизнес-процессов.
- Ежемесячные расходы на подписки
- Зависимость от вендора
- Универсальный функционал
- Обработка данных во внешней инфраструктуре
- Единовременные инвестиции
- Полное владение продуктом
- Решение под конкретные задачи
- Безопасность данных компании
Цель и задачи
Цель проекта — разработать приложение для автоматического поиска заданных фраз в архивах документов различных форматов и сократить время, которое сотрудники тратят на ручной анализ файлов.
Задачи:1
Создать механизм обработки и анализа документов различных форматов (XLS, XLSX, RTF, DOC, DOCX, PDF).
2
Реализовать извлечение текста из документов, включая распознавание информации в сканированных файлах с помощью OCR.
3
Провести тестирование приложения, проверить корректность поиска и точность распознавания текста в различных форматах файлов.
Решение
Мы разработали приложение, которое автоматически анализирует архив документов различных форматов и выполняет поиск по пользовательским запросам. Система извлекает текст из файлов, распознает содержимое сканированных документов и находит нужную информацию в большом массиве данных.
Пользователь указывает нужную фразу, после чего программа автоматически анализирует документы и отображает найденные совпадения.
Чтобы поиск охватывал весь архив, мы реализовали механизм автоматического извлечения текста из наиболее распространенных офисных форматов. Система анализирует содержимое файлов Excel и Word независимо от их объема и структуры.
Благодаря этому пользователь может выполнять поиск сразу по всем документам, не открывая каждый файл вручную и не обращая внимания на его формат. Приложение самостоятельно обрабатывает содержимое таблиц, текстовых документов и других файлов, находя нужные фразы по всему архиву за один запрос.
Для обработки мы использовали библиотеки ClosedXML и ExcelDataReader, а для работы с документами — DocumentFormat.OpenXml, NPOI и RtfPipe. Такой набор инструментов обеспечил единый подход к обработке документов независимо от их структуры и объема.
Извлечение данных из изображенийМы также реализовали обработку PDF-файлов. В ряде случаев текст находился не в структуре документа, а внутри изображений — сканов договоров, актов, технической документации и других материалов.
Для анализа текстовых PDF мы использовали библиотеку iText. Для распознавания текста на изображениях применялась модель Tesseract, обученная для работы с русскоязычными и англоязычными текстами.
На практике сотрудникам часто необходимо искать документы сразу по нескольким ключевым словам. Например, найти все документы, где одновременно встречаются слова «амортизация» и «транспорт». Для таких сценариев мы реализовали поиск по нескольким условиям с возможностью выбора логики отбора результатов.
Пользователь может искать документы, содержащие все указанные слова одновременно, либо получать расширенную выборку файлов, в которых встречается хотя бы одно из заданных ключевых слов. Это позволяет быстро получать как максимально точные, так и более широкую выборку поиска в зависимости от поставленной задачи.
Пользователь может искать документы по одному или нескольким ключевым словам, а также задавать условия поиска для более точного результата.
Результат
Проект был реализован за 3 недели. После передачи установочного файла заказчик оперативно запустил опытную эксплуатацию на реальных данных, замечаний к работе системы не возникло. Благодаря внедрению решения заказчик получил:безопасность конфиденциальной информации благодаря тому, что анализ документов происходит внутри ИТ-контура компании;
сокращение трудозатрат на обработку данных и поиск информации благодаря гибкому поиску данных;
уменьшение затрат благодаря внедрению собственного программного обеспечения вместо подписок и лицензий на готовое.
Многие компании рассматривают покупку готового программного обеспечения как самый быстрый способ решить подобную задачу. Однако во многих случаях выгоднее один раз разработать решение под собственные процессы, чем годами оплачивать лицензии на универсальный продукт с избыточным функционалом и одновременно принимать дополнительные риски, связанные с передачей чувствительной информации во внешние сервисы.
Опытная команда разработки поможет оценить оба варианта и выбрать решение, которое будет эффективно не только на этапе внедрения, но и в течение нескольких лет эксплуатации.
