Автоматизуйте попереднє маркування PDF для Amazon Comprehend | Веб-сервіси Amazon

Автоматизуйте попереднє маркування PDF для Amazon Comprehend | Веб-сервіси Amazon

«Амазонка» це служба обробки природної мови (NLP), яка надає попередньо підготовлені та спеціальні API для отримання інформації з текстових даних. Клієнти Amazon Comprehend можуть навчати спеціальні моделі розпізнавання іменованих об’єктів (NER), щоб отримувати унікальні для їхнього бізнесу об’єкти, які їх цікавлять, як-от місцезнаходження, ім’я особи та дата.

Щоб навчити спеціальну модель, ви спочатку підготуєте дані навчання, додавши вручну анотації до сутностей у документах. Це можна зробити за допомогою Зрозумійте інструмент анотації напівструктурованих документів, що створює Основна правда Amazon SageMaker із спеціальним шаблоном, що дозволяє анотаторам малювати обмежувальні рамки навколо об’єктів безпосередньо на документах PDF. Однак для компаній із наявними табличними даними в системах ERP, таких як SAP, анотування вручну може повторюватись і займати багато часу.

Щоб зменшити зусилля з підготовки навчальних даних, ми створили інструмент попереднього маркування за допомогою Функції кроку AWS який автоматично попередньо анотує документи, використовуючи наявні дані табличної сутності. Це значно зменшує ручну роботу, необхідну для навчання точних користувацьких моделей розпізнавання об’єктів в Amazon Comprehend.

У цій публікації ми проведемо вас через кроки налаштування інструмента попереднього маркування та покажемо приклади того, як він автоматично анотує документи з загальнодоступних набору даних зразків банківських виписок у форматі PDF. Повний код доступний на GitHub репо.

Огляд рішення

У цьому розділі ми обговорюємо вхідні та вихідні дані інструменту попереднього маркування та надаємо огляд архітектури рішення.

Входи та виходи

Як вхідні дані інструмент попереднього маркування приймає PDF-документи, які містять текст, який потрібно анотувати. Для демонстрації ми використовуємо змодельовані банківські виписки, як у наступному прикладі.

Автоматизуйте попереднє маркування PDF для Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Інструмент також отримує файл маніфесту, який зіставляє PDF-документи з об’єктами, які ми хочемо витягти з цих документів. Сутності складаються з двох речей: expected_text витягти з документа (наприклад, AnyCompany Bank) і відповідні entity_type (наприклад, bank_name). Далі в цій публікації ми покажемо, як створити цей файл маніфесту з документа CSV, як у наступному прикладі.

Автоматизуйте попереднє маркування PDF для Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Інструмент попереднього маркування використовує файл маніфесту для автоматичного анотування документів із відповідними об’єктами. Потім ми можемо використовувати ці анотації безпосередньо для навчання моделі Amazon Comprehend.

Крім того, ви можете створити завдання маркування SageMaker Ground Truth для перегляду та редагування людьми, як показано на наступному знімку екрана.

Автоматизуйте попереднє маркування PDF для Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Після завершення перегляду ви можете використати анотовані дані для навчання користувацької моделі розпізнавання сутностей Amazon Comprehend.

архітектура

Інструмент попереднього маркування складається з кількох AWS Lambda функції, керовані кінцевим автоматом Step Functions. Він має дві версії, які використовують різні методи для створення попередніх анотацій.

Перша техніка нечітка відповідність. Для цього потрібен файл попереднього маніфесту з очікуваними сутностями. Інструмент використовує алгоритм нечіткої відповідності для створення попередніх анотацій шляхом порівняння подібності тексту.

Нечітка відповідність шукає рядки в документі, які схожі (але не обов’язково ідентичні) на очікувані сутності, перелічені у файлі попереднього маніфесту. Спочатку обчислюється оцінка схожості тексту між очікуваним текстом і словами в документі, а потім збігається з усіма парами, що перевищують порогове значення. Таким чином, навіть якщо немає точних відповідностей, нечітка відповідність може знайти такі варіанти, як абревіатури та орфографічні помилки. Це дозволяє інструменту попередньо маркувати документи, не вимагаючи дослівного відображення сутностей. Наприклад, якщо 'AnyCompany Bank' вказано як очікувану сутність, нечітка відповідність коментуватиме випадки 'Any Companys Bank'. Це забезпечує більшу гнучкість, ніж суворе зіставлення рядків, і дозволяє інструменту попереднього позначення автоматично позначати більше об’єктів.

Наступна діаграма ілюструє архітектуру цього кінцевого автомата Step Functions.

Автоматизуйте попереднє маркування PDF для Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Друга техніка вимагає a попередньо підготовлена ​​модель розпізнавання сутностей Amazon Comprehend. Інструмент створює попередні анотації за допомогою моделі Amazon Comprehend, дотримуючись робочого процесу, показаного на наступній діаграмі.

Автоматизуйте попереднє маркування PDF для Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Наступна діаграма ілюструє повну архітектуру.

Автоматизуйте попереднє маркування PDF для Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

У наступних розділах ми розглянемо кроки впровадження рішення.

Розгорніть інструмент попереднього маркування

Клонуйте репозиторій на локальну машину:

git clone https://github.com/aws-samples/amazon-comprehend-automated-pdf-prelabeling-tool.git

Це сховище було створено на основі інструмента анотації Comprehend Semi-Structured Documents Tool і розширює його функціональні можливості, дозволяючи вам розпочинати завдання маркування SageMaker Ground Truth із попередніми анотаціями, які вже відображаються в інтерфейсі користувача SageMaker Ground Truth.

Інструмент попереднього маркування включає ресурси Інструмента анотації Comprehend Semi-Structured Documents, а також деякі ресурси, специфічні для інструменту попереднього маркування. Ви можете розгорнути рішення за допомогою Модель безсерверного додатка AWS (AWS SAM), фреймворк з відкритим кодом, який можна використовувати для визначення коду безсерверної інфраструктури програми.

Якщо ви раніше розгортали інструмент анотації Comprehend Semi-Structured Documents, зверніться до розділу поширених запитань у Pre_labeling_tool/README.md для інструкцій щодо розгортання лише ресурсів, специфічних для інструменту попереднього маркування.

Якщо ви раніше не розгортали інструмент і починаєте заново, виконайте наведені нижче дії, щоб розгорнути все рішення.

Змініть поточний каталог на папку інструмента анотації:

cd amazon-comprehend-semi-structured-documents-annotation-tools

Створіть і розгорніть рішення:

make ready-and-deploy-guided

Створіть файл попереднього маніфесту

Перш ніж використовувати інструмент попереднього маркування, потрібно підготувати дані. Основними вхідними даними є документи PDF і файл попереднього маніфесту. Файл попереднього маніфесту містить розташування кожного документа PDF 'pdf' і розташування файлу JSON з очікуваними об’єктами, які потрібно позначити 'expected_entities'.

Зошит generate_premanifest_file.ipynb показує, як створити цей файл. У демонстраційному файлі попереднього маніфесту показано такий код:

[ { 'pdf': 's3://<bucket>/data_aws_idp_workshop_data/bank_stmt_0.pdf', 'expected_entities': 's3://<bucket>/prelabeling-inputs/expected-entities/example-demo/fuzzymatching_version/file_bank_stmt_0.json' }, ...
]

Кожен файл JSON, указаний у файлі попереднього маніфесту (під expected_entities) містить список словників, по одному для кожної очікуваної сутності. Словники мають такі ключі:

  • 'expected_texts' – Список можливих текстових рядків, які відповідають сутності.
  • 'entity_type' – Відповідний тип сутності.
  • 'ignore_list' (необов'язково) – Список слів, які слід ігнорувати під час матчу. Ці параметри слід використовувати, щоб запобігти нечіткому зіставленню певних комбінацій слів, які, як ви знаєте, є неправильними. Це може бути корисно, якщо ви хочете ігнорувати деякі номери чи адреси електронної пошти під час перегляду імен.

Наприклад, expected_entities зображеного раніше PDF-файлу виглядає так:

[ { 'expected_texts': ['AnyCompany Bank'], 'entity_type': 'bank_name', 'ignore_list': [] }, { 'expected_texts': ['JANE DOE'], 'entity_type': 'customer_name', 'ignore_list': ['JANE.DOE@example_mail.com'] }, { 'expected_texts': ['003884257406'], 'entity_type': 'checking_number', 'ignore_list': [] }, ...
]

Запустіть інструмент попереднього маркування

За допомогою файлу попереднього маніфесту, який ви створили на попередньому кроці, запустіть інструмент попереднього маркування. Детальніше дивіться в зошиті start_step_functions.ipynb.

Щоб запустити інструмент попереднього маркування, надайте event з такими ключами:

  • Преманіфест – зіставляє кожен PDF-документ із своїм expected_entities файл. Це повинно містити Служба простого зберігання Amazon (Amazon S3) відро (під bucket) і ключ (під key) файлу.
  • префікс – Використовується для створення execution_id, яка називає папку S3 для зберігання вихідних даних і назву завдання маркування SageMaker Ground Truth.
  • типи_сутностей – Відображається в інтерфейсі користувача для позначення анотаторів. Вони повинні містити всі типи об’єктів у очікуваних файлах об’єктів.
  • назва робочої групи (необов'язково) – Використовується для створення завдання маркування SageMaker Ground Truth. Це відповідає приватній робочій силі для використання. Якщо його не надано, замість завдання маркування SageMaker Ground Truth буде створено лише файл маніфесту. Ви можете використати файл маніфесту, щоб пізніше створити завдання маркування SageMaker Ground Truth. Зауважте, що на момент написання цієї статті ви не можете надати зовнішню робочу силу під час створення завдання маркування із блокнота. Однак ви можете клонувати створене завдання та призначити його зовнішнім працівникам на консолі SageMaker Ground Truth.
  • comprehend_parameters (необов'язковий) – Параметри для безпосереднього навчання користувацької моделі розпізнавання сутностей Amazon Comprehend. Якщо цей крок пропущено, цей крок буде пропущено.

Щоб запустити кінцевий автомат, запустіть наступний код Python:

import boto3
stepfunctions_client = boto3.client('stepfunctions')

response = stepfunctions_client.start_execution(
stateMachineArn=fuzzymatching_prelabeling_step_functions_arn,
input=json.dumps(<event-dict>)
)

Це почне роботу кінцевої машини. Ви можете стежити за прогресом кінцевого автомата на консолі Step Functions. Наступна діаграма ілюструє робочий процес кінцевого автомата.

Автоматизуйте попереднє маркування PDF для Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Після завершення кінцевого автомата виконайте такі дії:

  • Перевірте наступні результати, збережені в prelabeling/ папка comprehend-semi-structured-docs Відро S3:
    • Окремі файли анотацій для кожної сторінки документів (по одному на сторінку на документ) у temp_individual_manifests/
    • Маніфест для завдання маркування SageMaker Ground Truth у consolidated_manifest/consolidated_manifest.manifest
    • Маніфест, який можна використовувати для навчання спеціальної моделі Amazon Comprehend consolidated_manifest/consolidated_manifest_comprehend.manifest
  • На консолі SageMaker відкрийте завдання маркування SageMaker Ground Truth, створене для перегляду анотацій
  • Перевірте та протестуйте спеціальну модель Amazon Comprehend, яка пройшла навчання

Як згадувалося раніше, інструмент може створювати завдання маркування SageMaker Ground Truth лише для приватних працівників. Щоб виконати роботу з маркування людьми, ви можете клонувати завдання з маркування на консолі SageMaker Ground Truth і приєднати будь-яку робочу силу до нового завдання.

Прибирати

Щоб уникнути додаткових витрат, видаліть ресурси, які ви створили, і стек, який ви розгорнули за допомогою такої команди:

make delete

Висновок

Інструмент попереднього маркування надає компаніям потужний спосіб використовувати існуючі табличні дані для прискорення процесу навчання користувацьких моделей розпізнавання об’єктів в Amazon Comprehend. Автоматичне попереднє анотування PDF-документів значно зменшує ручні зусилля, необхідні для процесу маркування.

Інструмент має дві версії: нечітку відповідність і на основі Amazon Comprehend, що забезпечує гнучкість створення початкових анотацій. Після того, як документи попередньо позначені, ви можете швидко переглянути їх під час завдання маркування SageMaker Ground Truth або навіть пропустити перегляд і безпосередньо навчити спеціальну модель Amazon Comprehend.

Інструмент попереднього маркування дає змогу швидко розблокувати значення ваших історичних даних сутності та використовувати їх для створення користувацьких моделей, адаптованих до вашого конкретного домену. Завдяки пришвидшенню того, що зазвичай є найбільш трудомісткою частиною процесу, розпізнавання особливих об’єктів за допомогою Amazon Comprehend стає доступнішим, ніж будь-коли.

Щоб отримати додаткові відомості про те, як маркувати PDF-документи за допомогою завдання маркування SageMaker Ground Truth, див Спеціальна анотація документа для вилучення іменованих об’єктів у документах за допомогою Amazon Comprehend та Використовуйте Amazon SageMaker Ground Truth для маркування даних.


Про авторів

Автоматизуйте попереднє маркування PDF для Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Оскар Шнак є прикладним науковцем у Центрі інновацій Generative AI. Він із захопленням занурюється в науку машинного навчання, щоб зробити її доступною для клієнтів. Поза роботою Оскар любить їздити на велосипеді та стежити за тенденціями в теорії інформації.

Автоматизуйте попереднє маркування PDF для Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Ромен Бесомб є архітектором глибокого навчання в Центрі інновацій Generative AI. Він захоплений створенням інноваційних архітектур для вирішення бізнес-проблем клієнтів за допомогою машинного навчання.

Часова мітка:

Більше від AWS Машинне навчання