Как стать автором
Обновить

Как сделать поиск по документам, накопленным почти за 100 лет. Опыт НПО Энергомаш и ABBYY

Время на прочтение 11 мин
Количество просмотров 8.5K
Всего голосов 32: ↑28 и ↓4 +24
Комментарии 15

Комментарии 15

Много воды, мало технических деталей. В чем преимущество перед sphinx или elastic (кроме использования нейросетей)? OCR можно подключить любой, за авторством ABBYY скорее всего один из лучших OCR в виду богатого опыта в этой сфере.
1-2 млн документов — это совсем не много. Самые сложные запросы по 3 секунды — почему? — Оно же проиндексировано: просканировать индекс и отфильтровать сложные критерии по 2 млн документов — кажется это не так много времени должно занимать (+ тот же sphinx умеет параллельно искать по дельтам, у вас не так?).
Tatikoma В чем преимущество перед sphinx или elastic (кроме использования нейросетей)?

К ключевым преимуществам ABBYY Intelligent Search в сравнении с elastic можно отнести:


  1. Наличие распределенной подсистемы обхода источников;
  2. Собственный OCR признанного качества, позволяющий обрабатывать документы на кластере серверов;
  3. Наличие пользовательского интерфейса;
  4. Учет прав доступа, аутентификация, авторизация;
  5. Полноценная поддержка русского языка;
  6. Встроенные возможности семантического и кросс-языкового поиска (с учетом синонимов, гипонимов и общепринятых сокращений);
  7. Возможность применения кастомных онтологий для построения произвольных фильтров (например, по сторонам договора, персонам, организациям, стоимости и т.д.).

1-2 млн документов — это совсем не много. Самые сложные запросы по 3 секунды — почему? — Оно же проиндексировано: просканировать индекс и отфильтровать сложные критерии по 2 млн документов — кажется это не так много времени должно занимать (+ тот же sphinx умеет параллельно искать по дельтам, у вас не так?).

Действительно, в данном случае указанное значение – до 3 секунд – это проектное требование. Кроме размера индекса, на время поиска влияет число пользователей, которые одновременно выполняют поиск, и конфигурация аппаратного обеспечения.


Время поиска по коллекции из 1 млн документов на сервере с 8 логическими ядрами, 32 Гб оперативной памяти составляет:
• В режиме семантического поиска (в данном режиме, в том числе, выполняется семантический анализ поискового запроса) — 1 секунда с поддержкой возможности 8 запросов в секунду.
• В режиме полнотекстового поиска – 0,2 секунды с поддержкой возможности 20 запросов в секунду.

Проводилось ли какое-нибудь измерение качества, как понять что внедренная поисковая система дает хороший релевантный результат?
В статье есть же про это:
Чтобы оценить работу интеллектуального поисковика, специалисты Энергомаш выполнили примерно по 30 запросов по документам ИБД с помощью встроенной в ИБД поисковой системы и с помощью ABBYY Intelligent Search. Затем сравнили результаты поисковой выдачи: какие документы удалось найти обеим системам, какие фразы подсвечивались в сниппетах. В итоге, встроенный в ИБД поиск не выдал результатов по некоторым запросам, так как способен обнаружить только ключевые, а не близкие по значению слова. ABBYY Intelligent Search выдал релевантные по всем запросам документы.

Хотя конечно 30 тестов — очень странный охват тестирования. Если я правильно понимаю, новая система выиграла ровно за счёт поддержки синонимов (которые есть и в сфинксе и в эластике).

Мне кажется методику тестирования следовало строить на основании ТЗ: должно быть явно указано какие кейсы поиск обязан покрывать, было бы интересно узнать насколько хорошо справились с задачей.
StanSemenoff Проводилось ли какое-нибудь измерение качества, как понять что внедренная поисковая система дает хороший релевантный результат?

Тестируя сам продукт ABBYY Intelligent Search, мы выполняем регулярное тестирование качества поиска. Для измерения качества мы используем размеченные коллекции текстов и подготовленные поисковые запросы, исходя из предполагаемых пользовательских сценариев. Текущий объем тестирования включает более 500 запросов по 9 различным коллекциям на русском и английском языках.


Для оценки работы мы используем такие метрики: точность (precision), полноту (recall) и F-меру (F-measure), поскольку они являются общепринятыми и показательными оценками эффективности поисковой системы.


Для расчета метрик по всей коллекции документов мы подсчитываем общее число релевантных документов во всей коллекции и количество найденных документов по каждому запросу.


Объем тестирования качества поиска в рамках конкретного проекта всегда определяется заказчиком.

1. Много лет назад я слышал нечто подобное про Finereader — особенно про постоянное улучшение качества. Вот только улучшения основной функции нет уже лет так 15… Преимущества нейросетей в последней версии как-то особенно незаметны…
2. Оценки релевантности простого запроса «Отчёт» у главного конструктора и главного бухгалтера будут разными. Вы на что ориентируетесь? (и как вариант новой функции — подстройка релевантности в зависимости от должности пользователя)
3. Ваша ОCR уже научилась более менее правильно расставлять блоки на сложных документах и распознавать и распознавать рукописный текст в старой КД? Не заметил. Скажите, где посмотреть?
4. Закрытость форматов ваших программ (словарей в OCR), традиционное отсутствие поддержки экспорта в предыдущие версии — серьёзная причина очень настороженно подходить к сотрудничеству с Вами.
5. Вторая причина — если память не изменяет — Abbyy — формально американская компания… При внедрении таких систем на важных предприятиях наверняка может произойти утечка данных… Какие гарантии её исключения? (особенно в свете свежей истории с Амазоном)
6. Не заметил про скорость (пере)индексирования.
7. Очень хотелось бы потом увидеть в финансовых цифрах реализацию целей Энергомаша с вменяемыми критериями оценки достижения целей в денежном выражении и сроками окупаемости, с учётом стоимости поддержки.
8. PS. Интересует вопрос устранения багов /допиливания заброшенного ABBYY Aligner в частном порядке. Люди, знающие концепцию программы и заложенные в ней алгоритмы, еще не посваливали в мир иной?

И последнее — о смысле: Слов — F — это показатель, а не мера; Текста — если объяснение не понятно даже ребёнку, значит сам автор не понимает то, о чём пишет.

ИМХО — преимуществ видимо два: 1) иностранцы работать с русским так хорошо, как русские, никогда не будут. 2) курс рубля к евро и доллару…
niccolo2019 Много лет назад я слышал нечто подобное про Finereader — особенно про постоянное улучшение качества. Вот только улучшения основной функции нет уже лет так 15… Преимущества нейросетей в последней версии как-то особенно незаметны…

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


Оценки релевантности простого запроса «Отчёт» у главного конструктора и главного бухгалтера будут разными. Вы на что ориентируетесь? (и как вариант новой функции — подстройка релевантности в зависимости от должности пользователя)

Так как подобные простые запросы возвращают множество релевантных результатов, их можно уточнить с помощью доступных фильтров: например, по источнику, по типу документа, по дате и т.п. Учет прав доступа пользователей, который реализован в нашем продукте, уменьшает число доступных для изучения результатов поиска, оставляя только те документы, которые имеют отношение к профессиональной деятельности пользователя. Использование бухгалтером и конструктором в своих запросах уточняющих слов – финансовый отчет, отчет об испытаниях – также позволяет определить объект поиска, так как ABBYY IntelligentSearch, в том числе, выполняет семантический анализ запроса.


Ваша ОCR уже научилась более менее правильно расставлять блоки на сложных документах и распознавать и распознавать рукописный текст в старой КД? Не заметил. Скажите, где посмотреть?

Про блоки мы рассказывали на Хабре. Наши технологии ОСR развиваются, в настоящий момент доступно распознавание документов на 192 языках на основе кириллицы, латиницы, греческого, армянского и арабского алфавитов, а также языках на основе иероглифического письма. В массовых сценариях задачи распознавания рукописного текста встречаются редко. Мы занимаемся развитием наших технологий и в этом направлении, но пока точных сроков назвать не можем.


Закрытость форматов ваших программ (словарей в OCR), традиционное отсутствие поддержки экспорта в предыдущие версии — серьёзная причина очень настороженно подходить к сотрудничеству с Вами.

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


Совместимость с предыдущими версиями, действительно, сложный вопрос с точки зрения развития продуктов. В рамках сотрудничества с клиентами и партнерами мы обсуждаем различные вопросы развития наших продуктов и реализации новых возможностей.


Вторая причина — если память не изменяет — Abbyy — формально американская компания… При внедрении таких систем на важных предприятиях наверняка может произойти утечка данных… Какие гарантии её исключения?

ABBYY Intelligent Search находится в едином реестре российских программ. Одно из ключевых преимуществ ABBYY IntelligentSearch – наличие встроенных инструментов, которые не требуют дополнительных настроек с доступом наших специалистов к контенту заказчика. OCR, учет прав доступа, семантический анализ – все это доступно сразу после установки продукта, и не требует изучения документов заказчика. И, как мы уже упоминали в посте, поисковое решение ABBYY развернуто на отдельном сервере во внутреннем контуре НПО Энергомаш.


Не заметил про скорость (пере)индексирования.

На время создания индекса влияют следующие факторы:
• Особенности исходных данных – объем исходных данных, языки документов, доля документов, требующих распознавание.
• Тип поиска по индексу – полнотекстовый или семантический.
• Конфигурация аппаратного обеспечения.


Так как сочетание этих факторов уникально, мы добавили в ABBYY Intelligent Search встроенные возможности для прогнозирования времени индексации. Самая ресурсоемкая операция – построение поискового индекса по всей коллекции документов или полная переиндексация коллекции. Поисковый индекс по коллекции из 1 млн 5-страничных документов на русском языке, в которой доля документов, требующих распознавание, составляет 30%, строится в течение 1,5 дней на восьми 8-ядерных серверах с 16 Гб оперативной памяти. Обогащение полученного индекса семантической информацией выполняется в фоновом режим в течение 14 дней. Для обновления поискового индекса требуются существенно меньшие ресурсы.

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

Правдивее было-бы написать — преимущества НИ будут заметны только отдельным пользователям, работающим со специфичными документами. Оставьте эту постоянную ересь про качество в профессиональном сообществе. Я слышу её постоянно, а потом как ниже читаю, что какая-то функция сломалась, не работает и её никто не собирается исправлять (вот кстати пример file.sampo.ru/s66qjn). Кстати — может дадите ссылку на набор документов, на котором FR демонстрирует стабильное повышение качества распознавания уже 1Х версий? О каких настройках с машинкой вы говорите, когда у Вас вообще одна настройка? Или предлОжите создать отдельные наборы глифов для всех машинок, которые тогда использовались для печати документов? Так даже эта работа была организована у Вас через одно место — подтверждать КАЖДЫЙ глиф(!!!). Может уже что-то изменилось, но что мешало создать библиотеку глифов по распознанному документу, которые бы пользователь мог просто сгруппировать по буквам.
Так как подобные простые запросы возвращают множество релевантных результатов...

2. Интересно, насколько дешевле было бы обучение пользователей хитростям построения запросов?
Про блоки мы рассказывали на Хабре. Наши технологии ОСR развиваются, в настоящий момент доступно распознавание документов на 192 языках на основе кириллицы, латиницы, греческого, армянского и арабского алфавитов, а также языках на основе иероглифического письма

Зачем рассказывать — если можно взять любую версию — подсунуть ей простой двухколоночный текст и на 200-400 страницах в зависимости от оформления найти 5-10-20 страниц с неверно расставленными или пронумерованными блоками… Подсунуть неразлинованную таблицу с многострочным текстом в ячейках и увидеть, как ФР разобъёт ячейки строками таблицы…
Проблема объединения слов, концы которых находятся в разных сегментах до сих пор не решена… Про то, что эти блоки могут быть разбиты номерами страниц/колонтитулами, или вклейками особо талантливых DTP-стов — вообще молчу… Полагаю — если в Энергомаше для поиска будут специально выбирать строки, части которых находятся в разных блоках распознавания, вам могут сделать очень больно…
Про распознавание разреженных чертежей и спецификаций — лучше промолчу. Но тут я не знаю пути решения кроме рук — разве может по непохожести картинок на буквы на уменьшенной копии изображения сразу отсекать графику и искать текст дальше…
Вы распознаёте простые глифы — по языкам их разносит простой просмотрщик набора глифов на алфавитах указанных пользователем языков по словарям — не самая передовая технология (помню баги сей простой системы на похожих словах — campana (it) — сатрапа (ru), car (EN) — саг (RU) и т.п. Алгоритм отчасти улучшен — но не идеален. НЕ ПРОЩЕ ЛИ СПРОСИТЬ У ПОЛЬЗОВАТЕЛЯ ПО ПОВОДУ ТАКИХ СЛОВ, если работа не на чистом автомате или выводить где-то в интерфейсе список предупреждений?..
Во всё остальном — КРОМЕ ДОБАВЛЕНИЯ ЯЗЫКОВ — НЕ ВИЖУ НИКАКИХ РЕЗУЛЬТАТОВ УКАЗАННОЙ РАБОТЫ.
В массовых сценариях задачи распознавания рукописного текста встречаются редко.

Это даже не смешно… Тут вон недавно про паспорта выписанные вручную говорили… О том, какое количество разных бланков, заполненных вручную, регулярно распознаётся, я вообще молчу…
Многие наши продукты поддерживают возможности кастомизации на стороне пользователей, в том числе, в части использования пользовательских словарей. Что касается вопроса открытости, недавно мы опубликовали на GitHub свою библиотеку машинного обучения с открытым кодом. Подробнее недавно рассказывали о ней на Хабре.

Принципы работы с пользовательскими словарями реализованы у вас отвратительно — я бы сравнил их с аналогией копания небольшого бассейна на даче игрушечным детским совочком. До сих пор не понимаю отсутствия функции — исправления неверно распознанного несловарного слова по всему документу/пакету FR (точно так же как и извлечения из пакета списка несловарных слов для проверки и обратного исправления по списку — если нужно быстро исправить текст)?
Касательно библиотеки — вообще перестаю понимать Абби — в потребительских продуктах — развитие в сторону для одноклеточных, а тут вдруг выкладываете библиотеку для пользования которой требуются хорошие навыки программирования и понимания принципов работы библиотеки (дай Бог, чтобы они были подробно задокументированы с примерами)…
Совместимость с предыдущими версиями, действительно, сложный вопрос с точки зрения развития продуктов. В рамках сотрудничества с клиентами и партнерами мы обсуждаем различные вопросы развития наших продуктов и реализации новых возможностей.

Автокад, судя по размеру, продукт более сложный, но тем не менее позволяющий сохранять в последней версии чертежи в форматах первых версий. Что Вам мешает — уже лет 10 не могу услышать конкретного ответа.

все это доступно сразу после установки продукта, и не требует изучения документов заказчика.

Я так понимаю — то, что работает без подстройки под реальные условия — обычно работает плохо или средне, крайне редко хорошо и никогда отлично. Это статья о том, что кто-то купил и поставил вашу программу/программно-аппаратный комплекс, или что тогда там делали ваши специалисты?

На время создания индекса влияют следующие факторы:

Каким образом контролируются операции? Учитывая то, что для нормального распознавания чертежей, сложноформатированного текста движку ФР до сих пор надо ВРУЧНУЮ РАЗМЕЧАТЬ ДОКУМЕНТЫ ИЛИ ИСПРАВЛЯТЬ БЛОКИ (тетрис-блоки на многоколоночном тексте, неверная нумерация блоков, захват колонтитулов и номеров страницы в блоки текста, проблема с разбивкой на ячейки таблиц — и это проблемы критичные для полноты поиска), ФР до сих пор отвратительно распознает в тех литературе курсивные обозначения на латинице и греческом (и НЕЛЬЗЯ НИГДЕ НАСТРОИТЬ, ЧТОБЫ КУРСИВ В ПЕРВУЮ ОЧЕРЕДЬ РАСПОЗНАВАЛСЯ ЛАТИНИЦЕЙ ИЛИ ГРЕЧЕСКИМ) результат может очень неприятно удивить заказчика.
И это я не трогаю пока дефекты сканирования…
Начните с ценника пожалуйста.

2PAE Стоимость поискового решения зависит от ряда параметров: количества индексируемых документов, числа подключаемых источников, используемых онтологий и т.д. Оценка подобных решений участниками рынка есть в статье газеты "Коммерсант".

Пару лет назад натравливал Finereader на старые документы, напечатанные на печатной машинке. Очень плохо распознавал.

А в архиве Энергомаша почти всё должно напечатано именно на машинках.

Причем я помню, что в 2000х finereader (вроде версии 6) отлично распознавал печатную машинку.

Javian Доля подобных документов за последние 20 лет существенно снизилась. В новых версиях наших продуктов для обработки таких документов нужно использовать дополнительные настройки.


Рекомендуем обратиться с вопросом в техподдержку с примерами ваших документов – вам порекомендуют настройки, которые предпочтительно выставить для получения результата распознавания наилучшего качества в случае документов, созданных на печатной машинке. Для начала можно выставить соответствующий тип документа в настройках — https://help.abbyy.com/ru-ru/finereader/15/user_guide/sourceimage#printtype»

Опция «Пишущая машинка» никак не помогла — это меня удивило и запомнилось.
НЛО прилетело и опубликовало эту надпись здесь

ivanych Коннекторы пишутся на языке Java. Для реализации коннектора требуется Java SE Development Kit 8 (JDK 8). В состав дистрибутива ABBYY IntelligentSearch включены коннекторы к файловой системе, порталу zakupki.gov.ru и Microsoft SharePoint вместе с исходным кодом. В документации к продукту подробно описывается устройство этих коннекторов.


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

Зарегистрируйтесь на Хабре , чтобы оставить комментарий