Настройте Amazon Textract с помощью специализированных запросов для бизнес-документов

Оптимизируйте использование Amazon Textract с помощью специальных запросов для бизнес-документов

Amazon Textract – это сервис машинного обучения (ML), который автоматически извлекает текст, почерк и данные из отсканированных документов. Queries – это функция, которая позволяет извлекать конкретные части информации из различных сложных документов с использованием естественного языка. Custom Queries предоставляет возможность настроить функцию Queries для вашего бизнес-специфичных документов, таких как автокредитные контракты, чеки и платежные ведомости. Настраивая функцию на уникальные термины, структуры и ключевую информацию, специфичную для этих типов документов, вы можете удовлетворить свои потребности в дальнейшей обработке с большей точностью и минимальным вмешательством человека. Custom Queries легко интегрируется в вашу существующую Textract-программу и вы продолжаете пользоваться полностью управляемыми функциями интеллектуальной обработки документов Amazon Textract, не вкладывая средства в экспертизу по ML или управление инфраструктурой.

В этом посте мы покажем, как Custom Queries может точно извлекать данные из чеков, являющихся сложными документами ненормативного формата. Кроме того, мы обсудим преимущества Custom Queries и поделимся bewst practices для эффективного использования этой функции.

Обзор решения

При работе с новым случаем использования вы можете оценить, как Textract Queries выполняет работу над вашими документами, перейдя в консоль Textract и использовав демонстрационный инструмент Analyze Document Demo или Bulk Document Uploader. Смотрите рекомендации по использованию Queries для составления запросов, применимых к вашему случаю использования. Если вы обнаружите ошибки в ответах на запросы из-за особенностей ваших деловых документов, вы можете использовать Custom Queries для повышения точности. В течение нескольких часов вы можете аннотировать образцы ваших документов с помощью консоли управления AWS и обучить адаптер. Адаптеры – это компоненты, которые подключаются к предварительно обученной модели глубинного обучения Amazon Textract, настраивая ее вывод на основе ваших аннотированных документов. Вы можете использовать адаптер для вывода путем передачи идентификатора адаптера в качестве дополнительного параметра в API-запросе Analyze Document Queries.

Рассмотрим, как Custom Queries позволяет повысить точность извлечения данных в сложном реальном сценарии, таком как извлечение данных из чеков. Основной сложностью при обработке чеков является их большое разнообразие, в зависимости от типа (например, чеки физических лиц или кассировские чеки), финансового учреждения и страны (например, формат строки MICR). Это разнообразие может включать размещение имени получателя, суммы числами и словами, даты и подписи. Распознавание и адаптация к этим отличиям может быть сложной задачей при извлечении данных. Для улучшения извлечения данных организации часто используют процессы ручной проверки и валидации, что увеличивает стоимость и время извлечения данных.

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

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

Рассмотрим процесс создания адаптера (компонента, настраивающего вывод) для обработки чеков. Адаптеры могут быть созданы через консоль или программно через API. В этом посте подробно описана работа с консолью, но если вы хотите создать адаптер программно, обратитесь к образцам кода в блокноте Jupyter custom-queries-checks-blog.ipynb (Опция 2).

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

Создание адаптера

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

После создания адаптера вы увидите страницу с подробностями адаптера со списком шагов в разделе Как это работает. Этот раздел активирует следующие шаги по мере их последовательного выполнения.

Загрузка образцовых документов

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

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

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

Аннотация образцовых документов

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

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

  • Кто является получателем платежа?
  • Какой номер чека?
  • Какой адрес получателя?
  • Какая дата?
  • Какой номер счета?
  • Какая сумма чека словами?
  • Какое имя учетной записи/плательщика/выписывателя?
  • Какая сумма в долларах?
  • Какое название банка/плательщика?
  • Какой номер маршрутизации банка?
  • Что такое MICR-строка?
  • Что такое примечание?

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

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

Для ускорения прохождения обучения мы уже предварительно аннотировали образцы чеков, которые вы можете скопировать в свою учетную запись AWS. Запустите блокнот Jupyter custom-queries-checks-blog.ipynb в библиотеке примеры кода Amazon Textract для автоматического обновления аннотаций.

Обучите адаптер

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

Оцените метрики производительности

После завершения обучения адаптера вы можете оценить его производительность, изучив метрики оценки, такие как F1-мера, точность и полнота. Вы можете анализировать эти метрики как в совокупности, так и на основе отдельных документов. Используя наш набор данных образцов чеков, вы увидите улучшение метрики точности (F1-меры) с 68% до 92% с использованием обученного адаптера.

Кроме того, вы можете протестировать вывод адаптера на новых документах, выбрав Попробовать адаптер.

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

Программное тестирование адаптера

С успешным завершением обучения вы теперь можете использовать адаптер в своих вызовах API AnalyzeDocument. Запрос API аналогичен запросу API Amazon Textract Queries, за исключением объекта AdaptersConfig, который добавляется.

Вы можете запустить следующий пример кода или выполнить его непосредственно в блокноте Jupyter custom-queries-checks-blog.ipynb. В примере блокнота также предоставляется код для сравнения результатов между запросами Amazon Textract и пользовательскими запросами Amazon Textract.

Создайте объект AdaptersConfig с идентификатором адаптера и версией адаптера, и при необходимости включите страницы, к которым вы хотите применить адаптер:

!python -m pip install amazon-textract-caller --upgrade!python -m pip install amazon-textract-response-parser –upgradeimport boto3from textractcaller.t_call import call_textract, Textract_Features, Query, QueriesConfig, Adapter, AdaptersConfigimport trp.trp2 as t2from tabulate import tabulate# Создание AdaptersConfigadapter1 = Adapter(adapter_id=”111111111”, version="1", pages=["*"])adapters_config = AdaptersConfig(adapters=[adapter1])

Создайте объект QueriesConfig с запросами, на которых вы обучили адаптер, и вызовите API Amazon Textract. Обратите внимание, что вы также можете включить дополнительные запросы, на которых адаптер не был обучен. Amazon Textract автоматически будет использовать функцию Запросы для этих вопросов, а не Пользовательские Запросы, предоставляя вам гибкость использовать Пользовательские Запросы только там, где это необходимо.

# Создание QueriesConfigqueries = []queries.append(Query(text="What is the check#?", alias="CHECK_NUMBER", pages=["*"]))queries.append(Query(text="What is the date?", alias="DATE", pages=["*"]))queries.append(Query(text="What is the check amount in words?", alias="CHECK_AMOUNT_WORDS", pages=["*"]))queries.append(Query(text="What is the dollar amount?", alias="DOLLAR_AMOUNT", pages=["*"]))queries.append(Query(text="Who is the payee?", alias="PAYEE_NAME", pages=["*"]))queries.append(Query(text="What is the customer account#", alias="ACCOUNT_NUMBER", pages=["*"]))queries.append(Query(text="what is the payee address?", alias="PAYEE_ADDRESS", pages=["*"]))queries.append(Query(text="What is the bank routing number?", alias="BANK_ROUTING_NUMBER", pages=["*"]))queries.append(Query(text="What is the memo", alias="MEMO", pages=["*"]))queries.append(Query(text="What is the account name/payer/drawer name?", alias="ACCOUNT_NAME", pages=["*"]))queries.append(Query(text="What is the bank name/drawee name?", alias="BANK_NAME", pages=["*"]))queries_config = QueriesConfig(queries=queries)document_name = "<image_name>"textract_json_with_adapter = call_textract(input_document=document_name,                  boto3_textract_client=textract_client,                  features=[Textract_Features.QUERIES],                  queries_config=queries_config,                  adapters_config=adapters_config)

Наконец, мы представляем результаты в виде таблицы для лучшей читаемости:

def tabulate_query_answers(textract_json):    d = t2.TDocumentSchema().load(textract_json)    for page in d.pages:        query_answers = d.get_query_answers(page=page)        print(tabulate(query_answers, tablefmt="github"))tabulate_query_answers(textract_json_with_adapter)

Удаление

Для удаления ресурсов выполните следующие действия:

  1. На консоли Amazon Textract выберите Custom Queries в панели навигации.
  2. Выберите адаптер, который вы хотите удалить.
  3. Выберите Удалить.

Управление адаптером

Вы можете регулярно улучшать свои адаптеры, создавая новые версии ранее сгенерированного адаптера. Чтобы создать новую версию адаптера, добавьте новые образцы документов к существующему адаптеру, пометьте документы и выполните обучение. Вы можете одновременно поддерживать несколько версий адаптера для использования в ваших разработочных процессах. Чтобы обновлять адаптеры без проблем, не вносите изменения в или не удаляйте свой Amazon Simple Storage Service (Amazon S3), где хранятся файлы, необходимые для генерации адаптера.

Лучшие практики

При использовании пользовательских запросов в документах обратитесь к лучшим практикам использования пользовательских запросов Amazon Textract для дополнительных соображений и лучших практик.

Преимущества пользовательских запросов

Пользовательские запросы предоставляют следующие преимущества:

  • Улучшение понимания документов – Благодаря своей способности извлекать и нормализовывать данные с высокой точностью Custom Queries снижает зависимость от ручных проверок и аудитов, и позволяет вам создавать более надежную автоматизацию для вашего интеллектуального обработки документов.
  • Быстрое достижение цели – Когда вы сталкиваетесь с новыми типами документов, требующими большей точности, вы можете использовать Custom Queries, чтобы создать адаптер самостоятельно за несколько часов. Вам не нужно ждать обновления предварительно обученной модели при обработке новых типов документов или их вариаций в вашем рабочем процессе. Вы имеете полный контроль над своим конвейером и не зависите от Amazon Textract, чтобы поддержать ваши новые типы документов.
  • Конфиденциальность данных – Пользовательские запросы не сохраняют и не используют данные, используемые для создания адаптеров, чтобы улучшить предварительно обученные модели, доступные для всех клиентов. Адаптер ограничен учетной записью клиента или другими явно указанными клиентом учетными записями, обеспечивая доступ к улучшениям, основанным на данных клиента, только этим учетным записям.
  • Удобство использования – Custom Queries предоставляет полностью управляемый опыт вывода, подобный запросам. Обучение адаптера бесплатно, и вы платите только за вывод. Custom Queries позволяет вам экономить время и деньги на обучении и эксплуатации пользовательских моделей.

Заключение

В этой статье мы рассмотрели преимущества пользовательских запросов, показали, как Custom Queries может точно извлекать данные из чеков и поделились лучшими практиками для эффективного использования этой функции. За несколько часов вы можете создать адаптер, используя консоль, и использовать его в API AnalyzeDocument для ваших потребностей в извлечении данных. Дополнительную информацию вы можете найти по ссылке Пользовательские запросы.