Даже в нашу цифровую эпоху, когда все больше и больше компаний переходят в облако и используют машинное обучение (ML) или технологии для улучшения бизнес-процессов, мы все еще видим, как огромное количество компаний обращаются к нам и спрашивают об обработке документов, особенно документов с рукописным вводом. Мы видим бланки занятости, табели учета рабочего времени и финансовые приложения с таблицами и формами, которые содержат рукописный текст в дополнение к печатной информации. Чтобы усложнить ситуацию, каждый документ может быть в разных форматах, и каждое учреждение в любой отрасли может иметь несколько разных форматов. Организации ищут простое решение, которое может обрабатывать сложные документы различных форматов, включая таблицы, формы и табличные данные.
Извлечение данных из этих документов, особенно когда у вас есть комбинация печатного и рукописного текста, подвержено ошибкам, требует много времени, дорого и не масштабируется. Текст, встроенный в таблицы и формы, усложняет извлечение и обработку. Амазонка Текст - это сервис AWS AI, который автоматически извлекает печатный текст, почерк и другие данные из отсканированных документов, что выходит за рамки простого оптического распознавания символов (OCR) для идентификации, понимания и извлечения данных из форм и таблиц.
После извлечения данных этап постобработки в рабочем процессе управления документами включает в себя проверку записей и внесение изменений в соответствии с требованиями последующих приложений обработки. Amazon увеличил AI (Amazon A2I) позволяет легко настроить проверку, выполненную человеком, в рабочий процесс машинного обучения. Это позволяет вам автоматически проверять конвейер машинного обучения, если результаты оказываются ниже указанного порога достоверности, настраивать рабочие процессы проверки и аудита и при необходимости изменять результаты прогнозов.
В этом посте мы покажем, как можно использовать функцию Amazon Textract Handwritten для извлечения табличных данных из документов и создания цикла проверки человеком с помощью Пользовательский тип задачи Amazon A2I чтобы убедиться, что прогнозы очень точны. Мы храним результаты в Amazon DynamoDB, которая представляет собой базу данных «ключ-значение» и документов, которая обеспечивает производительность в миллисекундах, измеряемую одной цифрой, в любом масштабе, делая данные доступными для последующей обработки.
Мы проведем вас через следующие шаги, используя Блокнот Jupyter:
- Используйте Amazon Textract для извлечения табличных данных из документа и проверки ответа.
- Настройте человеческий цикл Amazon A2I для просмотра и изменения ответа Amazon Textract.
- Оценка ответа Amazon A2I и сохранение его в DynamoDB для последующей обработки.
Предпосылки
Прежде чем начать, давайте настроим пошаговую инструкцию Jupyter Notebook с помощью AWS CloudFormation шаблон, а затем создайте частную рабочую силу Amazon A2I, которая необходима в записной книжке для настройки пользовательского рабочего процесса Amazon A2I.
Настройка записной книжки Jupyter
Мы развертываем шаблон CloudFormation, который выполняет большую часть работы по начальной настройке за вас, например, создание Управление идентификацией и доступом AWS (IAM) роль для Создатель мудреца Амазонки, создание экземпляра записной книжки SageMaker и клонирование репозитория GitHub в экземпляр записной книжки.
- Выберите Стек запуска для настройки ноутбука в регионе Восток США (Северная Вирджиния):
- Не вносите никаких изменений в имя или параметры стека.
- В Возможности раздел, выберите Я признаю, что AWS CloudFormation может создавать ресурсы IAM.
- Выберите Создать стек.
На следующем снимке экрана страницы сведений о стеке показано состояние стека: CREATE_IN_PROGRESS
, Изменение статуса до 20 минут CREATE_COMPLETE
.
- На консоли SageMaker выберите Экземпляры ноутбуков.
- Выберите Открытый Юпитер для
TextractA2INotebook
записную книжку, которую вы создали. - Откройте
textract-hand-written-a2i-forms.ipynb
и следуйте туда.
Настройка частной рабочей силы Amazon A2I
Для этого поста вы создаете частную рабочую команду и добавляете в нее только одного пользователя (вас). Инструкции см. Создание частной рабочей силы (консоль Amazon SageMaker). Когда пользователь (вы) принимает приглашение, вы должны добавить себя в рабочую силу. Инструкции см. В Добавить работника в рабочую команду в разделе Управление персоналом (консоль Amazon SageMaker).
После того, как вы создадите группу специалистов по маркировке, скопируйте ARN сотрудников и введите его в ячейку записной книжки, чтобы настроить команду для частного просмотра:
В следующих разделах мы расскажем, как использовать этот блокнот.
Получение табличных данных из документа и проверка ответа
В этом разделе мы проходим следующие шаги, используя пошаговая тетрадь:
- Просмотрите образцы данных, которые содержат как печатное, так и рукописное содержание.
- Настройте вспомогательные функции для анализа ответа Amazon Textract.
- Изучите и проанализируйте ответ Amazon Textract.
Просмотр выборки данных
Просмотрите образец данных, запустив следующую ячейку записной книжки:
Мы используем следующий образец документа, который содержит как печатное, так и рукописное содержимое в таблицах.
Используйте библиотеку парсера Amazon Textract для обработки ответа
Теперь мы импортируем Парсер ответов Amazon Textract библиотека для анализа и извлечения того, что нам нужно, из ответа Amazon Textract. Здесь есть две основные функции. Во-первых, мы извлечем данные формы (пары ключ-значение) из раздела заголовка документа. Во-вторых, мы проанализируем таблицу и ячейки, чтобы создать файл csv, содержащий табличные данные. В этой записной книжке мы будем использовать API синхронизации Amazon Textract для извлечения документов, АнализДокумент. Это принимает файлы изображений (png или jpeg) в качестве входных данных.
Вы можете использовать библиотеку анализатора ответов Amazon Textract, чтобы легко анализировать JSON, возвращаемый Amazon Textract. Библиотека анализирует JSON и предоставляет специфические для языка программирования конструкции для работы с различными частями документа. Для получения более подробной информации, пожалуйста, обратитесь к Библиотека парсеров Amazon Textract
Теперь, когда у нас есть необходимое содержимое изображения документа, давайте создадим CSV-файл для его хранения, а также будем использовать его для настройки человеческого цикла Amazon A2I для просмотра и модификации по мере необходимости.
Кроме того, если вы хотите изменить эту записную книжку для использования файла PDF или для пакетной обработки документов, используйте API StartDocumentAnalysis. StartDocumentAnalysis
возвращает идентификатор вакансии (JobId
), который вы используете для получения результатов операции. По завершении анализа текста Amazon Textract публикует статус завершения в теме Amazon Simple Notification Service (Amazon SNS), указанной вами в NotificationChannel
. Чтобы получить результаты операции анализа текста, сначала убедитесь, что значение статуса, опубликованное в теме Amazon SNS, УСПЕШНО. Если да, звоните GetDocumentAnalysis
, и передайте идентификатор задания (JobId
) от первоначального вызова до StartDocumentAnalysis
.
Проверка и анализ ответа Amazon Textract
Теперь мы загружаем элементы строк формы в Pandas DataFrame и очищаем его, чтобы обеспечить наличие соответствующих столбцов и строк, которые нужны последующим приложениям. Затем мы отправляем его в Amazon A2I для проверки человеком.
Запустите следующую ячейку записной книжки, чтобы проверить и проанализировать данные «ключ-значение» из ответа Amazon Textract:
На следующем снимке экрана показан наш результат.
Запустите следующую ячейку записной книжки, чтобы проверить и проанализировать табличные данные из ответа Amazon Textract:
На следующем снимке экрана показан наш результат.
Мы видим, что Amazon Textract обнаружил как печатный, так и рукописный контент из табличных данных.
Настройка человеческого цикла Amazon A2I
Amazon A2I поддерживает два встроенных типа задач: Извлечение пар "ключ-значение" в Amazon Textract и Модерация изображений Amazon RekognitionИ настраиваемый тип задачи которые вы можете использовать для интеграции цикла анализа, выполняемого человеком, в любой рабочий процесс машинного обучения. Вы можете использовать настраиваемый тип задачи для интеграции Amazon A2I с другими сервисами AWS, такими как Amazon Comprehend, Amazon транскрибироватькачества Amazon Translate, а также ваши собственные рабочие процессы машинного обучения. Чтобы узнать больше, см. Сценарии и примеры использования Amazon A2I.
В этом разделе мы покажем, как использовать настраиваемый тип задачи Amazon A2I для интеграции с таблицами Amazon Textract и парами «ключ-значение» через пошаговая тетрадь для оценок обнаружения с низким уровнем достоверности из ответов Amazon Textract. Он включает в себя следующие шаги:
- Создайте пользовательский интерфейс задач.
- Создайте определение рабочего процесса.
- Отправляйте прогнозы в человеческие петли Amazon A2I.
- Войдите на рабочий портал и комментируйте или проверяйте результаты Amazon Textract.
Создание пользовательского интерфейса задачи
Вы можете создать пользовательский интерфейс задачи для своих работников, создав шаблон рабочего задания. Шаблон задачи работника - это HTML-файл, который вы используете для отображения входных данных и инструкций, которые помогут работникам выполнить вашу задачу. Если вы создаете рабочий процесс проверки человеком для настраиваемого типа задачи, вы должны создать настраиваемый шаблон задачи рабочего с помощью HTML-кода. Для получения дополнительной информации см. Создать настраиваемый шаблон задачи рабочего.
Для этого поста мы создали пользовательский HTML-шаблон пользовательского интерфейса для отображения таблиц Amazon Textract и пар ключ-значение в записной книжке. Вы можете найти шаблон таблицы-keyvalue-sample.liquid.html в нашем репозитории GitHub и настройте его для вашего конкретного случая использования документа.
Этот шаблон используется всякий раз, когда требуется человеческий цикл. У нас есть более 70 встроенных пользовательских интерфейсов, доступных на GitHub. При желании вы можете создать это определение рабочего процесса на Amazon A2I консоль, Для получения инструкций см. Создайте рабочий процесс проверки человеком.
После создания этого настраиваемого шаблона с помощью HTML необходимо использовать этот шаблон для создания пользовательского интерфейса неавтоматизированной задачи Amazon A2I Имя ресурса Amazon (ARN). Этот ARN имеет следующий формат: arn:aws:sagemaker
:<aws-регион>:номер учетной записи aws>:human-task-u
я/Имя Шаблона>. Этот ARN связан с ресурсом шаблона рабочей задачи, который вы можете использовать в одном или нескольких рабочих процессах проверки людьми (определениях потоков). Создание ARN пользовательского интерфейса для неавтоматизированной задачи с использованием шаблона задачи исполнителя с помощью CreateHumanTaskUI Работа API, запустив следующую ячейку записной книжки:
Предыдущий код дает вам ARN в качестве вывода, который мы используем при настройке определений потока на следующем шаге:
Создание определения рабочего процесса
В этом разделе мы создаем определение потока. Определения потока позволяют нам указать следующее:
- Рабочая сила, на которую отправляются ваши задачи
- Инструкции, которые получает ваш персонал (шаблон задачи работника)
- Где хранятся ваши выходные данные
Для этого поста мы используем API в следующем коде:
При желании вы можете создать это определение рабочего процесса на Amazon A2I консоль, Для получения инструкций см. Создайте рабочий процесс проверки человеком.
Отправка прогнозов в человеческие петли Amazon A2I
Мы создаем список элементов из Pandas DataFrame, где у нас сохраняется вывод Amazon Textract. Запустите следующую ячейку записной книжки, чтобы создать список элементов, которые нужно отправить на проверку:
Вы получаете вывод всех строк и столбцов, полученных от Amazon Textract:
Запустите следующую ячейку записной книжки, чтобы получить список пар ключ-значение:
Выполните следующий код, чтобы создать ответ JSON для цикла Amazon A2I, объединив ключ-значение и список таблиц из предыдущих ячеек:
Запустите человеческий цикл, запустив следующую ячейку записной книжки:
Проверьте статус человеческого цикла с помощью следующего кода:
Вы получите следующий вывод, который показывает состояние цикла и целевого сегмента S3:
Аннотирование результатов через рабочий портал
Выполните шаги в записной книжке, чтобы проверить состояние петли человека. Вы можете использовать сопровождающий Блокнот SageMaker Jupyter чтобы следовать инструкциям в этом сообщении.
- Запустите следующую ячейку записной книжки, чтобы получить ссылку для входа на портал частной рабочей силы:
- Выберите ссылку для входа на портал частного работника.
- Выберите работу проверки человеком.
- Выберите Начать работать.
Вы будете перенаправлены на консоль Amazon A2I, где найдете исходный документ, вашу пару «ключ-значение», текстовые ответы, обнаруженные Amazon Textract, и ответы вашей таблицы.
Прокрутите вниз, чтобы найти форму исправления для пар ключ-значение и текста, где вы можете проверить результаты и сравнить ответ Amazon Textract с исходным документом. Вы также найдете пользовательский интерфейс для изменения рукописного и печатного табличного содержимого.
Вы можете изменить каждую ячейку на основе исходного ответа изображения, повторно ввести правильные значения и отправить свой ответ. Когда вы отправляете свои ответы, рабочий процесс маркировки завершается.
Оценка результатов
Когда работа над маркировкой завершена, ваши результаты должны быть доступны в пути вывода S3, указанном в определении рабочего процесса проверки человеком. Человеческие ответы возвращаются и сохраняются в файле JSON. Запустите ячейку записной книжки, чтобы получить результаты из Amazon S3:
В следующем коде показан фрагмент выходного JSON-файла аннотации Amazon A2I:
Сохранение аннотированных результатов Amazon A2I в DynamoDB
Теперь мы сохраняем форму с обновленным содержимым в таблице DynamoDB, чтобы последующие приложения могли ее использовать. Чтобы автоматизировать процесс, просто настройте AWS Lambda запускать с DynamoDB для автоматического извлечения и отправки информации конечным точкам API или приложениям. Для получения дополнительной информации см. Потоки DynamoDB и триггеры AWS Lambda.
Чтобы сохранить результаты, выполните следующие действия:
- Получите человеческие ответы на пары "ключ-значение" и текст в DataFrame, запуск следующей ячейки ноутбука:
- Получите проверенные человеком ответы на табличные данные в DataFrame, запустив следующую ячейку:
- Объедините DataFrames в один DataFrame для сохранения в таблице DynamoDB:
Создание таблицы DynamoDB
Создайте свою таблицу DynamoDB с помощью следующего кода:
Вы получите следующий вывод:
Загрузка содержимого DataFrame в таблицу DynamoDB
Загрузите содержимое DataFrame в таблицу DynamoDB с помощью следующего кода:
Примечание: При добавлении содержимого из нескольких документов в таблицу DynamoDB убедитесь, что вы добавили номер документа в качестве атрибута, чтобы различать документы. В приведенном ниже примере мы просто используем индекс как line_nr, потому что мы работаем с одним документом.
Чтобы проверить, были ли обновлены элементы, запустите следующий код, чтобы получить значение таблицы DynamoDB:
Кроме того, вы можете проверить таблицу в консоли DynamoDB, как показано на следующем снимке экрана.
Заключение
Этот пост продемонстрировал, насколько просто использовать сервисы на уровне AI в стеке AWS AI / ML, такие как Amazon Textract и Amazon A2I, для чтения и обработки табличных данных из рукописных форм и сохранения их в таблице DynamoDB для последующих приложений. использовать. Вы также можете отправить данные расширенной формы из Amazon A2I в корзину S3 для использования вашими аналитическими приложениями AWS.
Видеопрезентации, образцы записных книжек Jupyter или дополнительную информацию о вариантах использования, таких как обработка документов, модерация контента, анализ настроений, перевод текста и другие, см. В разделе Ресурсы искусственного интеллекта Amazon. Если этот пост поможет вам или вдохновит на решение проблемы, мы будем рады услышать об этом! Код этого решения доступен на Репо GitHub для использования и расширения. Пожертвования всегда приветствуются!
Об авторах
Прем Ранга является архитектором корпоративных решений из Атланты, штат Джорджия. Он является частью сообщества технических специалистов по машинному обучению и любит работать с клиентами на их пути к машинному обучению и искусственному интеллекту. Прем увлечен робототехникой, занимается исследованием автономных транспортных средств, а также построил контролируемые Alexa Beer Pours в Хьюстоне и других местах.
Мона Мона является специалистом по архитектуре решений AI / ML из Арлингтона, штат Вирджиния. Она работает с командой World Wide Public Sector и помогает клиентам широко внедрять машинное обучение. Она увлечена областями объяснимости NLP и ML в AI / ML.
Шрихарша М.С. является специалистом-архитектором решений AI / ML в группе специалистов по стратегическим вопросам Amazon Web Services. Он работает со стратегическими клиентами AWS, которые используют AI / ML для решения сложных бизнес-задач. Он предоставляет техническое руководство и советы по проектированию для масштабного внедрения приложений AI / ML. Его опыт охватывает архитектуру приложений, большие данные, аналитику и машинное обучение.