Интеллектуальная обработка документов с помощью сервисов AWS AI: часть 2 PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Интеллектуальная обработка документов с помощью сервисов AWS AI: часть 2

Интеллектуальная обработка документов (IDP) Amazon помогает ускорить цикл принятия бизнес-решений и сократить расходы. В различных отраслях клиентам необходимо обрабатывать миллионы документов в год в ходе своей деятельности. Для клиентов, которые обрабатывают миллионы документов, это критически важный аспект для удобства конечных пользователей и главный приоритет цифровой трансформации. Из-за разнообразия форматов большинство фирм вручную обрабатывают такие документы, как W2, заявки, документы, удостоверяющие личность, счета-фактуры и юридические контракты, или используют устаревшие решения OCR (оптическое распознавание символов), которые отнимают много времени, подвержены ошибкам и являются дорогостоящими. Конвейер IDP с сервисами AWS AI позволяет вам выйти за рамки OCR благодаря более точному и универсальному извлечению информации, быстрее обрабатывать документы, экономить деньги и перенаправлять ресурсы на более важные задачи.

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

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

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

В следующей эталонной архитектуре показано, как можно использовать такие сервисы AWS AI, как Амазонка Текст и Amazon Comprehendвместе с другими сервисами AWS для реализации рабочего процесса IDP. В части 1 мы описали этапы сбора данных и классификации документов, на которых мы классифицировали и помечали документы, такие как банковские выписки, счета-фактуры и квитанции. Мы также обсудили этап извлечения, на котором вы можете извлечь важную деловую информацию из своих документов. В этом посте мы расширяем конвейер IDP, рассматривая стандартные и настраиваемые объекты Amazon Comprehend на этапе извлечения, выполняем обогащение документов, а также кратко рассмотрим возможности Amazon увеличил AI (Amazon A2I), чтобы включить персонал для проверки на этапе проверки и проверки.

Интеллектуальная обработка документов с помощью сервисов AWS AI: часть 2 PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Мы также используем Amazon Comprehend Medical как часть этого решения, которое представляет собой службу для точного и быстрого извлечения информации из неструктурированного медицинского текста и выявления взаимосвязей между извлеченной информацией о здоровье и связи с медицинскими онтологиями, такими как ICD-10-CM, RxNorm и SNOMED CT.

Amazon A2I — это сервис машинного обучения (ML), который упрощает создание рабочих процессов, необходимых для проверки человеком. Amazon A2I предоставляет всем разработчикам проверку вручную, избавляя от недифференцированной тяжелой работы, связанной с созданием систем проверки людьми или управлением большим количеством рецензентов независимо от того, работает ли он на AWS или нет. Amazon A2I интегрируется с Амазонка Текст и Amazon Comprehend чтобы предоставить вам возможность ввести этапы проверки человеком в рабочий процесс IDP.

Предпосылки

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

Фаза экстракции

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

Распознавание именованных объектов

Распознавание именованных сущностей (NER) — это подзадача обработки естественного языка (NLP), которая включает в себя просеивание текстовых данных для поиска словосочетаний с существительными, называемых именованными сущностями, и классификацию каждой из них с помощью метки, такой как бренд, дата, событие, местоположение, организации. , лицо, количество или название. Например, в заявлении «Я недавно подписался на Amazon Prime» Amazon Prime является именованным объектом и может быть классифицирован как бренд.

Amazon Comprehend позволяет обнаруживать такие настраиваемые объекты в документе. Каждая сущность также имеет оценку уровня достоверности, которую Amazon Comprehend возвращает для каждого типа сущности. Следующая диаграмма иллюстрирует процесс распознавания объектов.

Распознавание именованных объектов с помощью Amazon Comprehend

Чтобы получить объекты из текстового документа, мы вызываем метод comprehend.detect_entities() и настройте код языка и текст в качестве входных параметров:

def get_entities(text):
    try:
        #detect entities
        entities = comprehend.detect_entities(LanguageCode="en", Text=text)  
        df = pd.DataFrame(entities["Entities"], columns = ['Text', 'Type'])
        display(HTML(df.to_html(index=False)))
    except Exception as e:
        print(e)

Мы запускаем get_entities() в банковском документе и получить список сущностей в результатах.

Ответ от метода get_entities из Comprehend.

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

Обучение пользовательской модели распознавания сущностей Amazon Comprehend

Для обнаружения конкретных сущностей, которые нас интересуют, из банковской выписки клиента, мы обучаем пользовательский распознаватель сущностей с двумя настраиваемыми сущностями: SAVINGS_AC и CHECKING_AC.

Затем мы обучаем пользовательскую модель распознавания сущностей. Мы можем выбрать один из двух способов предоставления данных в Amazon Comprehend: аннотации или списки сущностей.

Метод аннотаций часто может привести к более точным результатам для файлов изображений, PDF-файлов или документов Word, поскольку вы обучаете модель, отправляя более точный контекст в виде аннотаций вместе с вашими документами. Однако метод аннотаций может отнимать много времени и сил. Для простоты этого сообщения в блоге мы используем метод списков сущностей, который вы можете использовать только для простых текстовых документов. Этот метод дает нам файл CSV, который должен содержать обычный текст и соответствующий ему тип объекта, как показано в предыдущем примере. Сущности в этом файле будут соответствовать потребностям нашего бизнеса (номера сберегательных и расчетных счетов).

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

На следующем снимке экрана показан пример нашего списка сущностей.

Моментальный снимок списка сущностей.

Создайте пользовательскую конечную точку NER в реальном времени для Amazon Comprehend.

Затем мы создаем пользовательскую конечную точку распознавателя сущностей в реальном времени, используя обученную модель. Мы используем Создать конечную точку API через comprehend.create_endpoint() метод для создания конечной точки в реальном времени:

#create comprehend endpoint
model_arn = entity_recognizer_arn
ep_name = 'idp-er-endpoint'

try:
    endpoint_response = comprehend.create_endpoint(
        EndpointName=ep_name,
        ModelArn=model_arn,
        DesiredInferenceUnits=1,    
        DataAccessRoleArn=role
    )
    ER_ENDPOINT_ARN=endpoint_response['EndpointArn']
    print(f'Endpoint created with ARN: {ER_ENDPOINT_ARN}')
    %store ER_ENDPOINT_ARN
except Exception as error:
    if error.response['Error']['Code'] == 'ResourceInUseException':
        print(f'An endpoint with the name "{ep_name}" already exists.')
        ER_ENDPOINT_ARN = f'arn:aws:comprehend:{region}:{account_id}:entity-recognizer-endpoint/{ep_name}'
        print(f'The classifier endpoint ARN is: "{ER_ENDPOINT_ARN}"')
        %store ER_ENDPOINT_ARN
    else:
        print(error)

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

Фаза обогащения

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

Этап обогащения документа.

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

Отредактированный образец банковской выписки.

Традиционные OCR-решения с трудом извлекают данные из большинства неструктурированных и частично структурированных документов из-за значительных различий в том, как данные расположены в различных версиях и форматах этих документов. Затем вам может потребоваться реализовать пользовательскую логику предварительной обработки или даже вручную извлечь информацию из этих документов. В этом случае конвейер IDP поддерживает две функции, которые вы можете использовать: пользовательские запросы NER Amazon Comprehend и запросы Amazon Textract. Обе эти службы используют NLP для извлечения информации о содержании документов.

Извлечение с помощью запросов Amazon Text

При обработке документа с помощью Amazon Textract вы можете добавить в свой анализ новую функцию запросов, чтобы указать, какая информация вам нужна. Это включает в себя передачу вопроса НЛП, например: «Какой у клиента номер социального страхования?» к тексту Амазонки. Amazon Textract находит в документе информацию для этого вопроса и возвращает ее в структуре ответа отдельно от остальной информации документа. Запросы могут обрабатываться отдельно или в сочетании с любым другим FeatureType, Такие, как Tables or Forms.

Извлечение на основе запросов с использованием Amazon Text.

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

Чтобы продемонстрировать функцию запросов, мы извлекаем ценную информацию, такую ​​как имя и фамилия пациента, производитель дозы и т. д., из таких документов, как карта вакцинации против COVID-19.

Образец карты вакцинации.

Мы используем textract.analyze_document() функцию и укажите FeatureType as QUERIES а также добавлять запросы в виде вопросов на естественном языке в QueriesConfig.

Следующий код был урезан для упрощения. Полный код см. на GitHub. образец кода для analyze_document().

response = None
with open(image_filename, 'rb') as document:
    imageBytes = bytearray(document.read())

# Call Textract
response = textract.analyze_document(
    Document={'Bytes': imageBytes},
    FeatureTypes=["QUERIES"],
    QueriesConfig={
            "Queries": [{
                "Text": "What is the date for the 1st dose covid-19?",
                "Alias": "COVID_VACCINATION_FIRST_DOSE_DATE"
            },
# code trimmed down for simplification
#..
]
}) 

Для функции запросов textract.analyze_document() Функция выводит все СЛОВА и ЛИНИИ OCR, информацию о геометрии и оценки достоверности в ответе JSON. Однако мы можем просто распечатать запрашиваемую информацию.

Document — это функция-оболочка, используемая для анализа ответа JSON от API. Он обеспечивает абстракцию высокого уровня и делает вывод API итерируемым, из которого легко извлекать информацию. Для получения дополнительной информации см. Парсер текстовых ответов и Текстрактор Репозитории GitHub. После обработки ответа мы получаем следующую информацию, как показано на скриншоте.

import trp.trp2 as t2
from tabulate import tabulate

d = t2.TDocumentSchema().load(response)
page = d.pages[0]

query_answers = d.get_query_answers(page=page)

print(tabulate(query_answers, tablefmt="github"))

Ответ от извлечения запросов.

Этап проверки и проверки

Это последний этап нашего конвейера IDP. На этом этапе мы можем использовать наши бизнес-правила для проверки полноты документа. Например, из документа страховых требований идентификатор требования извлекается точно и успешно. Мы можем использовать бессерверные технологии AWS, такие как AWS Lambda для дальнейшей автоматизации этих бизнес-правил. Кроме того, мы можем привлечь людей для проверки документов, чтобы гарантировать точность прогнозов. Amazon A2I ускоряет создание рабочих процессов, необходимых для проверки прогнозов машинного обучения человеком.

С помощью Amazon A2I вы можете позволить проверяющим вмешиваться, когда модель не может сделать прогноз с высокой достоверностью или постоянно проверять свои прогнозы. Цель IDP-конвейера — уменьшить объем человеческого участия, необходимого для получения точной информации в ваших системах принятия решений. С помощью IDP вы можете уменьшить объем человеческого участия в процессах обработки документов, а также общую стоимость обработки документов.

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

Этап проверки и проверки человеком.

Для получения дополнительной информации о том, как создать рабочий процесс Amazon A2I, следуйте инструкциям на Подготовка к модулю 4 шаг в конце 03-idp-document-enrichment.ipynb в нашем Репо GitHub.

Убирать

Чтобы предотвратить взимание платы с вашей учетной записи AWS в будущем, удалите ресурсы, которые мы подготовили при настройке репозитория, перейдя к Раздел очистки в нашем репозитории.

Заключение

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

Дополнительные сведения о полных примерах кода в этом сообщении см. Репо GitHub.

Мы рекомендуем вам ознакомиться с разделами безопасности Амазонка Текст, Amazon Comprehendи Амазон А2И документации и следуйте приведенным инструкциям. Кроме того, найдите время, чтобы просмотреть и понять цены на Амазонка Текст, Amazon Comprehendи Амазон А2И.


Об авторах

Интеллектуальная обработка документов с помощью сервисов AWS AI: часть 2 PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай. Чин Ране является специалистом по архитектуре решений AI/ML в Amazon Web Services. Увлекается прикладной математикой и машинным обучением. Она занимается разработкой интеллектуальных решений для обработки документов для клиентов AWS. Вне работы она любит танцевать сальсу и бачату.

Интеллектуальная обработка документов с помощью сервисов AWS AI: часть 2 PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Сонали Саху возглавляет команду архитекторов решений AI/ML для интеллектуальной обработки документов в Amazon Web Services. Она страстный технофил и любит работать с клиентами для решения сложных проблем с использованием инноваций. Ее основные направления — искусственный интеллект и машинное обучение для интеллектуальной обработки документов.

Интеллектуальная обработка документов с помощью сервисов AWS AI: часть 2 PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Анжан Бисвас является специалистом по искусственному интеллекту и машинному обучению, старшим архитектором решений. Анджан работает с корпоративными клиентами и увлечен разработкой, развертыванием и объяснением решений AI/ML, анализа данных и больших данных. Анджан имеет более чем 14-летний опыт работы с глобальными цепочками поставок, производственными и розничными организациями и активно помогает клиентам начать работу с AWS и масштабироваться.

Интеллектуальная обработка документов с помощью сервисов AWS AI: часть 2 PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Супракаш Дутта работает архитектором решений в Amazon Web Services. Он занимается стратегией цифровой трансформации, модернизацией и миграцией приложений, аналитикой данных и машинным обучением. Он является частью сообщества AI/ML в AWS и разрабатывает интеллектуальные решения для обработки документов.

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

Больше от Машинное обучение AWS