Zautomatyzuj wstępne etykietowanie plików PDF dla Amazon Comrehend | Usługi internetowe Amazona

Zautomatyzuj wstępne etykietowanie plików PDF dla Amazon Comrehend | Usługi internetowe Amazona

Amazon Comprehend to usługa przetwarzania języka naturalnego (NLP), która udostępnia wstępnie przeszkolone i niestandardowe interfejsy API umożliwiające wyciąganie wniosków z danych tekstowych. Klienci Amazon Comprehend mogą trenować niestandardowe modele rozpoznawania nazwanych jednostek (NER), aby wyodrębnić interesujące ich jednostki, takie jak lokalizacja, imię i nazwisko osoby i data, które są unikalne dla ich firmy.

Aby wytrenować model niestandardowy, należy najpierw przygotować dane szkoleniowe, ręcznie dodając adnotacje do encji w dokumentach. Można to zrobić za pomocą Narzędzie do adnotacji w dokumentach półstrukturalnych, który tworzy Amazon SageMaker Ground Prawda zadanie z niestandardowym szablonem, umożliwiającym adnotatorom rysowanie ramek ograniczających wokół elementów bezpośrednio w dokumentach PDF. Jednak w przypadku firm posiadających istniejące dane tabelaryczne w systemach ERP, takich jak SAP, ręczne dodawanie adnotacji może być powtarzalne i czasochłonne.

Aby zmniejszyć wysiłek związany z przygotowaniem danych szkoleniowych, zbudowaliśmy narzędzie do wstępnego etykietowania za pomocą Funkcje kroków AWS który automatycznie dodaje adnotacje do dokumentów przy użyciu istniejących danych elementów tabelarycznych. To znacznie zmniejsza ilość pracy ręcznej potrzebnej do wytrenowania dokładnych modeli rozpoznawania encji niestandardowych w Amazon Comprehend.

W tym poście przeprowadzimy Cię przez etapy konfigurowania narzędzia do wstępnego etykietowania i pokażemy przykłady automatycznego dodawania adnotacji do dokumentów z publicznego źródła zestaw danych przykładowych wyciągów bankowych w formacie PDF. Pełny kod dostępny jest na stronie GitHub repo.

Omówienie rozwiązania

W tej sekcji omawiamy dane wejściowe i wyjściowe narzędzia do wstępnego etykietowania oraz przedstawiamy przegląd architektury rozwiązania.

Wejścia i wyjścia

Jako dane wejściowe narzędzie do wstępnego etykietowania pobiera dokumenty PDF zawierające tekst, który ma zostać opatrzony adnotacjami. W wersji demonstracyjnej używamy symulowanych wyciągów bankowych, jak w poniższym przykładzie.

Zautomatyzuj wstępne etykietowanie plików PDF dla Amazon Comrehend | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Narzędzie pobiera również plik manifestu, który odwzorowuje dokumenty PDF na podmioty, które chcemy z tych dokumentów wyodrębnić. Jednostki składają się z dwóch rzeczy: expected_text wyodrębnić z dokumentu (np. AnyCompany Bank) i odpowiadające entity_type (na przykład, bank_name). W dalszej części tego posta pokażemy, jak skonstruować ten plik manifestu z dokumentu CSV, jak w poniższym przykładzie.

Zautomatyzuj wstępne etykietowanie plików PDF dla Amazon Comrehend | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Narzędzie do wstępnego etykietowania wykorzystuje plik manifestu do automatycznego dodawania adnotacji do dokumentów odpowiadających im jednostek. Następnie możemy użyć tych adnotacji bezpośrednio do uczenia modelu Amazon Comprehend.

Alternatywnie możesz utworzyć zadanie etykietowania w programie SageMaker Ground Truth w celu sprawdzenia i edycji przez człowieka, jak pokazano na poniższym zrzucie ekranu.

Zautomatyzuj wstępne etykietowanie plików PDF dla Amazon Comrehend | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Po zakończeniu przeglądu możesz użyć danych z adnotacjami do wyszkolenia modelu rozpoznawania encji niestandardowych Amazon Comprehend.

Architektura

Narzędzie do wstępnego etykietowania składa się z wielu AWS Lambda funkcje koordynowane przez maszynę stanu Step Functions. Ma dwie wersje, które wykorzystują różne techniki generowania adnotacji wstępnych.

Pierwsza technika to rozmyte dopasowanie. Wymaga to pliku wstępnego manifestu z oczekiwanymi jednostkami. Narzędzie wykorzystuje algorytm dopasowywania rozmytego do generowania adnotacji wstępnych poprzez porównywanie podobieństwa tekstów.

Dopasowanie rozmyte wyszukuje w dokumencie ciągi znaków podobne (ale niekoniecznie identyczne) do oczekiwanych jednostek wymienionych w pliku przed manifestem. Najpierw oblicza wyniki podobieństwa tekstu między oczekiwanym tekstem a słowami w dokumencie, a następnie dopasowuje wszystkie pary powyżej progu. Dlatego nawet jeśli nie ma dokładnych dopasowań, dopasowanie rozmyte może znaleźć warianty, takie jak skróty i błędy ortograficzne. Dzięki temu narzędzie może wstępnie etykietować dokumenty bez konieczności dosłownego pojawiania się jednostek. Na przykład, jeśli 'AnyCompany Bank' jest wymieniony jako oczekiwany element, funkcja Fuzzy Matching wyświetli adnotację o jego wystąpieniu 'Any Companys Bank'. Zapewnia to większą elastyczność niż ścisłe dopasowywanie ciągów i umożliwia narzędziu do wstępnego etykietowania automatyczne oznaczanie większej liczby jednostek.

Poniższy diagram ilustruje architekturę tej maszyny stanu funkcji kroku.

Zautomatyzuj wstępne etykietowanie plików PDF dla Amazon Comrehend | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Druga technika wymaga a wstępnie wyszkolony model rozpoznawania jednostek Amazon Comrehend. Narzędzie generuje wstępne adnotacje w oparciu o model Amazon Comprehend, zgodnie z przepływem pracy pokazanym na poniższym diagramie.

Zautomatyzuj wstępne etykietowanie plików PDF dla Amazon Comrehend | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Poniższy diagram ilustruje pełną architekturę.

Zautomatyzuj wstępne etykietowanie plików PDF dla Amazon Comrehend | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

W poniższych sekcjach omówimy kroki wdrożenia rozwiązania.

Wdróż narzędzie do wstępnego etykietowania

Sklonuj repozytorium na komputer lokalny:

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

To repozytorium zostało zbudowane na bazie narzędzia do adnotacji dokumentów półstrukturalnych Comprehend i rozszerza jego funkcjonalność, umożliwiając rozpoczęcie zadania etykietowania SageMaker Ground Truth z wstępnymi adnotacjami już wyświetlonymi w interfejsie użytkownika SageMaker Ground Truth.

Narzędzie do wstępnego etykietowania obejmuje zarówno zasoby narzędzia do adnotacji w dokumencie Comrehend Semi-Structured Documents, jak i niektóre zasoby specyficzne dla narzędzia do wstępnego etykietowania. Możesz wdrożyć rozwiązanie za pomocą AWS Serverless Model aplikacji (AWS SAM), platforma typu open source, której można używać do definiowania kodu infrastruktury aplikacji bezserwerowych.

Jeśli wcześniej wdrożyłeś narzędzie do adnotacji w dokumencie Comrehend Semi-Structured Documents, zapoznaj się z sekcją Często zadawane pytania w Pre_labeling_tool/README.md aby uzyskać instrukcje dotyczące wdrażania wyłącznie zasobów specyficznych dla narzędzia do wstępnego etykietowania.

Jeśli nie wdrażałeś wcześniej tego narzędzia i zaczynasz od nowa, wykonaj poniższe czynności, aby wdrożyć całe rozwiązanie.

Zmień bieżący katalog na folder narzędzia adnotacji:

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

Kompiluj i wdrażaj rozwiązanie:

make ready-and-deploy-guided

Utwórz plik przed manifestem

Zanim będziesz mógł skorzystać z narzędzia do wstępnego etykietowania, musisz przygotować swoje dane. Głównymi danymi wejściowymi są dokumenty PDF i plik przed manifestem. Plik manifestu wstępnego zawiera lokalizację każdego dokumentu PDF w sekcji 'pdf' oraz lokalizację pliku JSON z oczekiwanymi elementami do oznaczenia 'expected_entities'.

Notatnik generuj_plik_premanifestu.ipynb pokazuje, jak utworzyć ten plik. W wersji demonstracyjnej plik przed manifestem zawiera następujący kod:

[ { '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' }, ...
]

Każdy plik JSON wymieniony w pliku przed manifestem (w pliku expected_entities) zawiera listę słowników, po jednym dla każdego oczekiwanego obiektu. Słowniki posiadają następujące klucze:

  • „oczekiwane_teksty” – Lista możliwych ciągów tekstowych pasujących do encji.
  • 'typ encji' – Odpowiedni typ jednostki.
  • „lista_ignore” (opcjonalnie) – Lista słów, które należy zignorować w dopasowaniu. Tych parametrów należy używać, aby zapobiec dopasowywaniu rozmytemu konkretnych kombinacji słów, o których wiesz, że są błędne. Może to być przydatne, jeśli chcesz zignorować niektóre numery lub adresy e-mail podczas przeglądania nazwisk.

Na przykład, expected_entities pokazanego wcześniej pliku PDF wygląda następująco:

[ { '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': [] }, ...
]

Uruchom narzędzie do wstępnego etykietowania

Mając plik manifestu wstępnego utworzony w poprzednim kroku, rozpocznij uruchamianie narzędzia do wstępnego etykietowania. Więcej szczegółów znajdziesz w notatniku start_step_functions.ipynb.

Aby uruchomić narzędzie do wstępnego etykietowania, podaj plik event z następującymi kluczami:

  • Premanifest – Mapuje każdy dokument PDF na swój plik expected_entities plik. To powinno zawierać Usługa Amazon Simple Storage (Amazon S3) łyżka (pod bucket) i klucz (pod key) pliku.
  • Prefiks – Służy do tworzenia execution_id, który określa folder S3 do przechowywania danych wyjściowych i nazwę zadania etykietowania SageMaker Ground Truth.
  • typy_encji – Wyświetlane w interfejsie użytkownika, aby adnotatorzy mogli je oznaczyć. Powinny one obejmować wszystkie typy jednostek w oczekiwanych plikach jednostek.
  • nazwa_zespołu roboczego (opcjonalnie) – Służy do tworzenia zadania etykietowania Ground Truth w programie SageMaker. Odpowiada to prywatnej sile roboczej do wykorzystania. Jeśli nie zostanie podany, zamiast zadania etykietowania Ground Truth w programie SageMaker zostanie utworzony jedynie plik manifestu. Możesz użyć pliku manifestu, aby później utworzyć zadanie etykietowania w programie SageMaker Ground Truth. Należy pamiętać, że w chwili pisania tego tekstu nie można zapewnić personelu zewnętrznego podczas tworzenia zadania etykietowania z notatnika. Możesz jednak sklonować utworzone zadanie i przypisać je zewnętrznemu pracownikowi w konsoli SageMaker Ground Truth.
  • pojęcie_parametrów (opcjonalnie) – Parametry do bezpośredniego uczenia modelu rozpoznawania encji niestandardowych Amazon Comprehend. W przypadku pominięcia ten krok zostanie pominięty.

Aby uruchomić maszynę stanów, uruchom następujący kod Pythona:

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

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

Spowoduje to rozpoczęcie działania maszyny stanu. Możesz monitorować postęp maszyny stanu w konsoli Step Functions. Poniższy diagram ilustruje przepływ pracy automatu stanów.

Zautomatyzuj wstępne etykietowanie plików PDF dla Amazon Comrehend | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Gdy automat stanów będzie gotowy, wykonaj następujące czynności:

  • Sprawdź następujące dane wyjściowe zapisane w pliku prelabeling/ folder pliku comprehend-semi-structured-docs Łyżka S3:
    • Indywidualne pliki adnotacji dla każdej strony dokumentów (po jednej na stronę w dokumencie) w formacie temp_individual_manifests/
    • Manifest dotyczący zadania etykietowania Ground Truth w SageMaker w consolidated_manifest/consolidated_manifest.manifest
    • Manifest, którego można użyć do uczenia niestandardowego modelu Amazon Comrehend consolidated_manifest/consolidated_manifest_comprehend.manifest
  • W konsoli SageMaker otwórz zadanie etykietowania SageMaker Ground Truth, które zostało utworzone w celu przejrzenia adnotacji
  • Sprawdź i przetestuj niestandardowy model Amazon Comprehend, który został przeszkolony

Jak wspomniano wcześniej, narzędzie może tworzyć zadania etykietowania SageMaker Ground Truth wyłącznie dla prywatnych pracowników. Aby zlecić prace związane z etykietowaniem przez ludzi, możesz sklonować zadanie etykietowania w konsoli SageMaker Ground Truth i przyłączyć dowolnego pracownika do nowego zadania.

Sprzątać

Aby uniknąć dodatkowych opłat, usuń utworzone zasoby i wdrożony stos za pomocą następującego polecenia:

make delete

Wnioski

Narzędzie do wstępnego etykietowania zapewnia firmom skuteczny sposób wykorzystania istniejących danych tabelarycznych w celu przyspieszenia procesu uczenia niestandardowych modeli rozpoznawania jednostek w Amazon Comprehend. Dzięki automatycznemu wstępnemu dodawaniu adnotacji do dokumentów PDF znacznie zmniejsza się wysiłek ręczny wymagany w procesie etykietowania.

Narzędzie ma dwie wersje: dopasowywanie rozmyte i opartą na Amazon Comrehend, co zapewnia elastyczność w zakresie generowania początkowych adnotacji. Po wstępnym oznakowaniu dokumentów możesz szybko je przejrzeć w zadaniu etykietowania Ground Truth w SageMaker lub nawet pominąć przeglądanie i bezpośrednio wytrenować niestandardowy model Amazon Comprehend.

Narzędzie do wstępnego etykietowania umożliwia szybkie odblokowanie wartości historycznych danych podmiotu i wykorzystanie ich do tworzenia niestandardowych modeli dostosowanych do konkretnej domeny. Przyspieszając zazwyczaj najbardziej pracochłonną część procesu, sprawia, że ​​rozpoznawanie niestandardowych jednostek za pomocą Amazon Comrehend jest bardziej dostępne niż kiedykolwiek.

Aby uzyskać więcej informacji na temat etykietowania dokumentów PDF przy użyciu zadania etykietowania SageMaker Ground Truth, zobacz Niestandardowe adnotacje do dokumentów do wyodrębniania nazwanych jednostek w dokumentach za pomocą Amazon Comprehend i Użyj Amazon SageMaker Ground Truth do etykietowania danych.


O autorach

Zautomatyzuj wstępne etykietowanie plików PDF dla Amazon Comrehend | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Oskara Schnaacka jest naukowcem stosowanym w Centrum Innowacji Generative AI. Jego pasją jest zgłębianie wiedzy leżącej u podstaw uczenia maszynowego, aby uczynić je dostępnym dla klientów. Poza pracą Oskar lubi jeździć na rowerze i śledzić trendy w teorii informacji.

Zautomatyzuj wstępne etykietowanie plików PDF dla Amazon Comrehend | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Romaina Besomesa jest architektem głębokiego uczenia się w Centrum Innowacji Generative AI. Pasjonuje się budowaniem innowacyjnych architektur rozwiązujących problemy biznesowe klientów za pomocą uczenia maszynowego.

Znak czasu:

Więcej z Uczenie maszynowe AWS