Технологии обнаружения объектов и извлечения текста на основе ИИ произвели революцию в области обработки документов

Краткий ответ на поставленный в заголовке вопрос — «много».

Чтобы подготовить почву для этой статьи, я хотел бы начать с примера. Предположим, вам поручили проанализировать отсканированную версию годового отчета компании (форма 10-к). Документ обычно содержит различные типы полей, такие как чистый текст, форма (имя, должность и вознаграждение офицеров), таблицы (например, отчет о прибылях и убытках, балансовый отчет) и даже изображения. Простого извлечения текстовых символов из документа недостаточно для проведения сколько-нибудь осмысленного анализа. Например, было бы идеально отделить таблицы и формы от обычных абзацев и перенести их содержимое в электронную таблицу. Точно так же чисто текстовые разделы; такое «Обсуждение руководства» может быть извлечено и передано в механизм «Анализ настроений», чтобы определить тон обсуждения. Методы обнаружения изображений и обработки языка, основанные на глубоком обучении, могут легко решить эту проблему.

Ограничение технологий оптического распознавания символов

Так почему бы не использовать для решения этой задачи традиционное оптическое распознавание символов (OCR)?

Технология OCR не является новой технологией и успешно используется уже много десятилетий. OCR прошел долгий путь и может отлично извлекать текст из отсканированного документа. Несмотря на свою зрелость, OCR (при отсутствии постобработки) не может различать различные типы полей в разнородном документе. Например, OCR рассматривает таблицу как набор слов и не может извлечь структурную информацию таблицы. То же самое и с формами. Он не может уловить связь между заголовком и содержимым данного поля. Более того, об обнаружении объекта во встроенном изображении не может быть и речи.

Именно здесь на помощь приходит технология обнаружения объектов и обработки языка на основе глубокого обучения.

Постановка задачи

Этот проект повлек за собой создание прототипа конвейера машинного обучения, способного принимать и обрабатывать поток сложных разнородных документов для извлечения и понимания составляющих их полей. Термин «гетерогенный» используется здесь для обозначения того, что типичный документ содержит чистый текст, таблицы, формы, изображения и рукописные заметки. Конкретным вариантом использования этого проекта является обработка форм клиентских приложений для сервисно-ориентированной компании. Тестовый документ (см. рис. 1) содержит один текстовый абзац, одну форму, одну таблицу, одно изображение, одно поле, содержащее рукописный текст, и наклонное текстовое поле. Цель заключается в следующем:

  1. Извлеките содержимое формы и таблицы и преобразуйте их в электронную таблицу (файл .csv).
  2. Извлеките текстовый абзац, расположенный в верхнем левом углу документа, исправьте опечатки и переведите результат на испанский язык.
  3. Восстановить наклонное текстовое поле
  4. Восстановить рукописное поле и преобразовать в текст
  5. Анализ изображения для обнаружения лиц, объектов, личностей (знаменитостей), знаков и многих других категорий.

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

Используемые инструменты

Нам повезло, так как нет недостатка в библиотеках глубокого обучения для решения основных задач этого проекта. Помимо библиотек с открытым исходным кодом, Amazon Web Services (AWS), Google Cloud Platform (GCP) и Microsoft (Azure) предлагают хорошо настроенные библиотеки для обработки текста, языка и изображений. По общему признанию, мой опыт использования всех этих ресурсов был в основном положительным, каждый из которых имеет определенные сильные и слабые стороны. В этом эксперименте использовались следующие основные инструменты: AWS Text, AWS Rekognition, AWS Comprehendв дополнение к нескольким библиотекам с открытым исходным кодом.

Результаты

На рисунке 2 показан результат извлечения формы и таблицы, восстановления наклонного текста и, наконец, преобразования рукописной заметки в текст. Я должен сказать, что извлечение таблиц и форм дало замечательные результаты независимо от того, как сильно я пытался его сломать. Однако в этой реализации возникли трудности с извлечением наклонного текста, особенно когда угол наклона превышал 30 градусов. Эту трудность можно преодолеть путем синтетического создания нескольких повернутых версий данного поля и выбора версии с наивысшей оценкой достоверности.

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

На рис. 3 представлены результаты извлечения, исправления и перевода текста. Полученные результаты были действительно превосходными. Однако, что касается обнаружения объектов, было несколько заметных ошибок, а именно не обнаружение третьей пары «джинсов» и «iPad». В производственных системах модели могут быть точно настроены для работы с конкретными предметными объектами, что неизменно дает лучшие результаты.

Не все хорошо

Если вы думаете, что можете получить отличные результаты, просто загрузив PDF-файл в модель и сделав несколько вызовов API, вы ужасно ошибаетесь. Мне всегда вспоминается Чип Хьюеннедавний твит, в котором говорилось, что Машинное обучение состоит на 10% из машинного обучения и на 90% из инженерии». Хотел бы я, чтобы она поделилась своим секретом, как ей удается тратить только 90% времени на инженерную часть. По общему признанию, использование библиотек, таких как AWS Comprehend и Textract, может облегчить нагрузку, но все же не обойтись без значительного объема подготовительной и чистовой работы.

Можем ли мы сделать лучше?

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

  1. Разделение документов и использование пакетной обработки для обработки одинаковых полей нескольких документов.
  2. Переход к сценарию распределенной обработки вместо циклического метода
  3. Такие сервисы, как AWS Comprehend и Textract, предлагают как синхронные, так и асинхронные вызовы, где последние демонстрируют гораздо лучшие результаты. В синхронном режиме (используемом в этом эксперименте) следующий вызов библиотеки не может быть выполнен до завершения предыдущего.