Интеллектуальное разделение пакетов документов разных форм с помощью Amazon Textract и Amazon Comprehend

Исходный узел: 1372716

Многие организации разных размеров и отраслевых вертикалей по-прежнему полагаются на большие объемы документов для выполнения своих повседневных операций. Чтобы решить эту бизнес-задачу, клиенты используют интеллектуальные сервисы обработки документов от AWS, такие как Амазонка Текст и Amazon Comprehend помочь с добыча и автоматизация процессов. Прежде чем вы сможете извлекать текст, пары «ключ-значение», таблицы и объекты, вам необходимо иметь возможность разбивать многостраничные PDF-документы, которые часто содержат разнородные типы форм. Например, при обработке ипотечного кредита брокеру или лицу, занимающемуся оформлением кредита, может потребоваться разделить объединенный пакет кредита в формате PDF, содержащий заявку на ипотеку (форма Fannie Mae 1003), W2, подтверждение дохода, налоговые формы 1040 и многое другое.

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

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

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

В этом посте мы используем набор стандартных форм заявок на ипотеку, чтобы продемонстрировать, как можно использовать Amazon Textract и Amazon Comprehend для создания интеллектуального разделителя документов, который является более надежным, чем предыдущие подходы. При обработке документов для ипотечных заявок заемщик отправляет многостраничный PDF-файл, состоящий из разнородных типов документов разной длины страниц; для извлечения информации пользователь (например, банк) должен разобрать этот PDF.

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

Мы используем Amazon Textract для извлечения данных из документа и создания набора данных, совместимого с Amazon Comprehend, для обучения модель классификации документов. Затем мы обучаем модель классификации и создаем конечную точку классификации, которая может выполнять анализ документов в реальном времени. Имейте в виду, что за конечные точки классификации Amazon Textract и Amazon Comprehend взимается плата, поэтому см. Цены на Amazon Textract и Цены на Amazon Comprehend за дополнительной информацией. Наконец, мы покажем, как мы можем классифицировать документы с помощью этой конечной точки и разделять документы на основе результатов классификации.

В этом решении используются следующие сервисы AWS:

Предпосылки

Для создания и развертывания этого решения необходимо выполнить следующие предварительные условия:

  1. Установите Питон 3.8.х.
  2. Установите jq.
  3. Установите интерфейс командной строки AWS SAM.
  4. Установите Docker.
  5. Убедитесь, что у вас есть пип установлен.
  6. Установка и настройка домен Интерфейс командной строки AWS (Интерфейс командной строки AWS).
  7. Настроить ваши учетные данные AWS.

Решение предназначено для оптимальной работы в us-east-1 и us-west-2 регионы, чтобы воспользоваться более высокими квотами по умолчанию для Amazon Textract. Для конкретных региональных рабочих нагрузок см. Конечные точки и квоты Amazon Textract. Убедитесь, что вы используете один регион для всего решения.

Клон репо

Для начала клонируйте репозиторий, выполнив следующую команду; затем мы переключаемся в рабочий каталог:

git clone https://github.com/aws-samples/aws-document-classifier-and-splitter.git
cd aws-document-classifier-and-splitter

Рабочие процессы решения

Решение состоит из трех рабочих процессов:

  • workflow1_endpointbuilder – Берет учебные документы и создает пользовательскую конечную точку классификации в Amazon Comprehend.
  • workflow2_docsplitter – Действует как служба разделения документов, где документы разделяются по классам. Он использует конечную точку классификации, созданную в workflow1.
  • рабочий процесс3_local – Предназначен для клиентов, которые работают в строго регулируемых отраслях и не могут сохранять данные в Amazon S3. Этот рабочий процесс содержит локальные версии workflow1 и workflow2.

Давайте подробно рассмотрим каждый рабочий процесс и то, как они работают.

Рабочий процесс 1. Создание классификатора Amazon Comprehend из документов PDF, JPG или PNG

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

Запустить workflow1, вам потребуется URI Amazon S3 папки, содержащей файлы набора обучающих данных (это могут быть изображения, одностраничные или многостраничные PDF-файлы). Структура папки должна быть следующей:

root dataset directory
---- class directory
-------- files

В качестве альтернативы структура может иметь дополнительные вложенные подкаталоги:

root dataset directory
---- class directory
-------- nested subdirectories
------------ files

Имена подкаталогов классов (второй уровень каталогов) становятся именами классов, используемых в пользовательской модели классификации Amazon Comprehend. Например, в следующей файловой структуре класс для form123.pdf is tax_forms:

training_dataset
---- tax_forms
-------- page_1
------------ form123.pdf

Чтобы запустить рабочий процесс, выполните следующие действия:

  1. Загрузите набор данных в корзину S3, которой вы владеете.

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

  1. Постройте sam-app выполнив следующие команды (при необходимости измените предоставленные команды):
cd workflow1_endpointbuilder/sam-app
sam build
sam deploy --guided
Stack Name [sam-app]: endpointbuilder
AWS Region []: us-east-1
#Shows you resources changes to be deployed and require a 'Y' to initiate deploy
Confirm changes before deploy [y/N]: n
#SAM needs permission to be able to create roles to connect to the resources in your template
Allow SAM CLI IAM role creation [Y/n]: y
Save arguments to configuration file [Y/n]: n Looking for resources needed for deployment:
Creating the required resources...
Successfully created!
Managed S3 bucket: {your_bucket}
#Managed repositories will be deleted when their functions are removed from the template and deployed
Create managed ECR repositories for all functions? [Y/n]: y

Результатом сборки является ARN для конечного автомата Step Functions.

  1. Когда сборка будет завершена, перейдите к Государственные машины на странице Step Functions console.
  2. Выберите созданный вами конечный автомат.
  3. Выберите Начать выполнение.
  4. Введите следующие обязательные входные параметры:
{
“folder_uri”: “s3://{your dataset}”
}

  1. Выберите Начать выполнение.

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

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

Вы можете перейти к консоли Amazon Comprehend, чтобы просмотреть развернутую конечную точку.

Теперь вы создали свой собственный классификатор, используя свои документы. Это знаменует собой конец workflow1.

Рабочий процесс 2: создание конечной точки

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

Запустить workflow2, мы строим sam-app. При необходимости измените предоставленные команды:

cd workflow2_docsplitter/sam-app
sam-app % sam build
Build Succeeded sam-app % sam deploy --guided
Configuring SAM deploy
=========================================
Stack Name [sam-app]: docsplitter
AWS Region []: us-east-1
#Shows you resources changes to be deployed and require a 'Y' to initiate deploy
Confirm changes before deploy [y/N]: n
#SAM needs permission to be able to create roles to connect to the resources in your template
Allow SAM CLI IAM role creation [Y/n]: y
Save arguments to configuration file [Y/n]: n Looking for resources needed for deployment:
Managed S3 bucket: {bucket_name}
#Managed repositories will be deleted when their functions are removed from the template and deployed
Create managed ECR repositories for all functions? [Y/n]: y

После создания стека вы получаете DNS Load Balancer на Выходы вкладку стека CloudFormation. Вы можете начать делать запросы к этой конечной точке.

Образец запроса доступен в workflow2_docsplitter/sample_request_folder/sample_s3_request.py файл. API принимает три параметра: имя корзины S3, URI документа Amazon S3 и ARN конечной точки классификации Amazon Comprehend. Workflow2 поддерживает только ввод PDF.

Для нашего теста мы используем 11-страничный ипотечный документ с пятью различными типами документов.

Ответом для API является URI Amazon S3 для ZIP-файла со всеми разделенными документами. Вы также можете найти этот файл в корзине, которую вы указали в вызове API.

Загрузите объект и просмотрите документы, разделенные по классам.

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

Рабочий процесс 3: Локальное разделение документа

Наш третий рабочий процесс преследует ту же цель, что и workflow1 и workflow2 для создания конечной точки Amazon Comprehend; однако вся обработка выполняется на вашем локальном компьютере для создания CSV-файла, совместимого с Amazon Comprehend. Этот рабочий процесс был создан для клиентов в строго регулируемых отраслях, где сохранение PDF-документов в Amazon S3 может оказаться невозможным. Следующая диаграмма архитектуры является визуальным представлением рабочего процесса локального построителя конечных точек.

Следующая диаграмма иллюстрирует архитектуру локального разделителя документов.

Весь код решения доступен в workflow3_local/local_endpointbuilder.py файл для создания конечной точки классификации Amazon Comprehend и workflow3_local/local_docsplitter.py отправить документы на разбивку.

Заключение

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

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


Об авторах

Адити Раджниш учится на первом курсе по разработке программного обеспечения в Университете Ватерлоо. Ее интересы включают компьютерное зрение, обработку естественного языка и граничные вычисления. Она также увлечена общественной деятельностью STEM и защитой интересов. В свободное время она занимается скалолазанием, игрой на пианино или учится печь идеальные лепешки.

Радж Патхак является архитектором решений и техническим консультантом для клиентов из списка Fortune 50 и среднего размера FSI (банковское дело, страхование, рынки капитала) в Канаде и США. Радж специализируется на машинном обучении с приложениями для извлечения документов, преобразования контакт-центра и компьютерного зрения.

Источник: https://aws.amazon.com/blogs/machine-learning/intelligently-split-multi-form-document-packages-with-amazon-texttract-and-amazon-comprehend/

Отметка времени:

Больше от Блог машинного обучения AWS