Automatisieren Sie die PDF-Vorbeschriftung für Amazon Comprehend | Amazon Web Services

Automatisieren Sie die PDF-Vorbeschriftung für Amazon Comprehend | Amazon Web Services

Amazon verstehen ist ein NLP-Dienst (Natural Language Processing), der vorab trainierte und benutzerdefinierte APIs bereitstellt, um Erkenntnisse aus Textdaten abzuleiten. Amazon Comprehend-Kunden können benutzerdefinierte NER-Modelle (Named Entity Recognition) trainieren, um relevante Entitäten wie Standort, Personenname und Datum zu extrahieren, die für ihr Unternehmen eindeutig sind.

Um ein benutzerdefiniertes Modell zu trainieren, bereiten Sie zunächst Trainingsdaten vor, indem Sie Entitäten in Dokumenten manuell mit Anmerkungen versehen. Dies kann mit dem erfolgen Verstehen Sie das Anmerkungstool für halbstrukturierte Dokumente, wodurch ein . entsteht Amazon Sagemaker Ground Truth Job mit einer benutzerdefinierten Vorlage, die es Annotatoren ermöglicht, Begrenzungsrahmen um die Elemente direkt in den PDF-Dokumenten zu zeichnen. Für Unternehmen mit vorhandenen tabellarischen Entitätsdaten in ERP-Systemen wie SAP kann die manuelle Annotation jedoch repetitiv und zeitaufwändig sein.

Um den Aufwand für die Vorbereitung von Trainingsdaten zu reduzieren, haben wir mit ein Pre-Labeling-Tool erstellt AWS Step-Funktionen Dadurch werden Dokumente automatisch vorab mit Anmerkungen versehen, indem vorhandene tabellarische Entitätsdaten verwendet werden. Dies verringert den manuellen Aufwand, der zum Trainieren präziser benutzerdefinierter Entitätserkennungsmodelle in Amazon Comprehend erforderlich ist, erheblich.

In diesem Beitrag führen wir Sie durch die Schritte zum Einrichten des Pre-Labeling-Tools und zeigen Beispiele dafür, wie es Dokumente aus einer Öffentlichkeit automatisch mit Anmerkungen versieht Datensatz Muster-Kontoauszüge im PDF-Format. Der vollständige Code ist auf der verfügbar GitHub Repo.

Lösungsüberblick

In diesem Abschnitt besprechen wir die Ein- und Ausgänge des Pre-Labeling-Tools und geben einen Überblick über die Lösungsarchitektur.

Eingänge und Ausgänge

Als Eingabe verwendet das Vorbeschriftungstool PDF-Dokumente, die mit Anmerkungen versehener Text enthalten. Für die Demo verwenden wir simulierte Kontoauszüge wie im folgenden Beispiel.

Automatisieren Sie die PDF-Vorbeschriftung für Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Das Tool benötigt außerdem eine Manifestdatei, die PDF-Dokumente den Entitäten zuordnet, die wir aus diesen Dokumenten extrahieren möchten. Entitäten bestehen aus zwei Dingen: dem expected_text aus dem Dokument extrahieren (z. B. AnyCompany Bank) und das entsprechende entity_type (zum Beispiel, bank_name). Später in diesem Beitrag zeigen wir, wie diese Manifestdatei aus einem CSV-Dokument wie im folgenden Beispiel erstellt wird.

Automatisieren Sie die PDF-Vorbeschriftung für Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Das Vorbeschriftungstool verwendet die Manifestdatei, um die Dokumente automatisch mit ihren entsprechenden Entitäten zu kommentieren. Wir können diese Annotationen dann direkt verwenden, um ein Amazon Comprehend-Modell zu trainieren.

Alternativ können Sie einen SageMaker Ground Truth-Beschriftungsauftrag zur menschlichen Überprüfung und Bearbeitung erstellen, wie im folgenden Screenshot gezeigt.

Automatisieren Sie die PDF-Vorbeschriftung für Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Wenn die Überprüfung abgeschlossen ist, können Sie die mit Anmerkungen versehenen Daten verwenden, um ein benutzerdefiniertes Entitätserkennungsmodell von Amazon Comprehend zu trainieren.

Architektur

Das Vorbeschriftungstool besteht aus mehreren AWS Lambda Funktionen, die von einer Schrittfunktions-Zustandsmaschine orchestriert werden. Es gibt zwei Versionen, die unterschiedliche Techniken zum Generieren von Voranmerkungen verwenden.

Die erste Technik ist Fuzzy Matching. Dies erfordert eine Vormanifestdatei mit den erwarteten Entitäten. Das Tool verwendet den Fuzzy-Matching-Algorithmus, um Voranmerkungen durch Vergleich der Textähnlichkeit zu generieren.

Beim Fuzzy-Matching wird im Dokument nach Zeichenfolgen gesucht, die den in der Prämanifestdatei aufgeführten erwarteten Entitäten ähnlich (aber nicht unbedingt identisch) sind. Es berechnet zunächst die Textähnlichkeitswerte zwischen dem erwarteten Text und den Wörtern im Dokument und gleicht dann alle Paare oberhalb eines Schwellenwerts ab. Auch wenn es keine genauen Übereinstimmungen gibt, können mit dem Fuzzy-Matching Varianten wie Abkürzungen und Rechtschreibfehler gefunden werden. Dadurch kann das Tool Dokumente vorab kennzeichnen, ohne dass die Entitäten wörtlich erscheinen müssen. Zum Beispiel, wenn 'AnyCompany Bank' als erwartete Entität aufgeführt ist, werden Vorkommen von Fuzzy Matching mit Anmerkungen versehen 'Any Companys Bank'. Dies bietet mehr Flexibilität als ein strikter String-Abgleich und ermöglicht es dem Vorbeschriftungstool, automatisch mehr Entitäten zu beschriften.

Das folgende Diagramm veranschaulicht die Architektur dieser Step Functions-Zustandsmaschine.

Automatisieren Sie die PDF-Vorbeschriftung für Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Die zweite Technik erfordert a vorab trainiertes Amazon Comprehend-Entitätserkennungsmodell. Das Tool generiert Voranmerkungen mithilfe des Amazon Comprehend-Modells und folgt dabei dem im folgenden Diagramm dargestellten Workflow.

Automatisieren Sie die PDF-Vorbeschriftung für Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Das folgende Diagramm veranschaulicht die vollständige Architektur.

Automatisieren Sie die PDF-Vorbeschriftung für Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

In den folgenden Abschnitten gehen wir die Schritte zur Implementierung der Lösung durch.

Stellen Sie das Voretikettierungstool bereit

Klonen Sie das Repository auf Ihren lokalen Computer:

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

Dieses Repository basiert auf dem Comprehend Semi-Structured Documents Annotation Tool und erweitert seine Funktionalitäten, indem es Ihnen ermöglicht, einen SageMaker Ground Truth-Beschriftungsauftrag mit Voranmerkungen zu starten, die bereits auf der SageMaker Ground Truth-Benutzeroberfläche angezeigt werden.

Das Vorbeschriftungstool umfasst sowohl die Ressourcen des Comprehend Semi-Structured Documents Annotation Tool als auch einige spezifische Ressourcen für das Vorbeschriftungstool. Sie können die Lösung mit bereitstellen AWS Serverless-Anwendungsmodell (AWS SAM), ein Open-Source-Framework, mit dem Sie serverlosen Anwendungsinfrastrukturcode definieren können.

Wenn Sie zuvor das Comprehend Semi-Structured Documents Annotation Tool bereitgestellt haben, lesen Sie den FAQ-Abschnitt in Pre_labeling_tool/README.md Anweisungen dazu, wie Sie nur die Ressourcen bereitstellen, die für das Voretikettierungstool spezifisch sind, finden Sie hier.

Wenn Sie das Tool noch nicht bereitgestellt haben und neu beginnen, gehen Sie wie folgt vor, um die gesamte Lösung bereitzustellen.

Ändern Sie das aktuelle Verzeichnis in den Annotation-Tool-Ordner:

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

Erstellen Sie die Lösung und stellen Sie sie bereit:

make ready-and-deploy-guided

Erstellen Sie die Pre-Manifest-Datei

Bevor Sie das Pre-Labeling-Tool verwenden können, müssen Sie Ihre Daten vorbereiten. Die Haupteingaben sind PDF-Dokumente und eine Pre-Manifest-Datei. Die Pre-Manifest-Datei enthält den Speicherort jedes PDF-Dokuments darunter 'pdf' und den Speicherort einer JSON-Datei mit erwarteten Entitäten, unter denen eine Beschriftung erfolgen soll 'expected_entities'.

Das Notebook generate_premanifest_file.ipynb zeigt, wie diese Datei erstellt wird. In der Demo zeigt die Pre-Manifest-Datei den folgenden Code:

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

Jede JSON-Datei, die in der Pre-Manifest-Datei aufgeführt ist (unter expected_entities) enthält eine Liste von Wörterbüchern, eines für jede erwartete Entität. Die Wörterbücher haben folgende Schlüssel:

  • „erwartete_Texte“ – Eine Liste möglicher Textzeichenfolgen, die zur Entität passen.
  • „entity_type“ – Der entsprechende Entitätstyp.
  • „ignore_list“ (optional) – Die Liste der Wörter, die bei der Übereinstimmung ignoriert werden sollen. Diese Parameter sollten verwendet werden, um zu verhindern, dass beim Fuzzy-Matching bestimmte Wortkombinationen gefunden werden, von denen Sie wissen, dass sie falsch sind. Dies kann nützlich sein, wenn Sie bei der Suche nach Namen einige Nummern oder E-Mail-Adressen ignorieren möchten.

So befasst sich beispielsweise die expected_entities Das zuvor gezeigte PDF sieht wie folgt aus:

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

Führen Sie das Vorbeschriftungstool aus

Starten Sie mit der Pre-Manifest-Datei, die Sie im vorherigen Schritt erstellt haben, die Ausführung des Pre-Labeling-Tools. Weitere Einzelheiten finden Sie im Notizbuch start_step_functions.ipynb.

Um das Vorbeschriftungstool zu starten, stellen Sie eine bereit event mit folgenden Schlüsseln:

  • Prämanifest – Ordnet jedes PDF-Dokument seinem zu expected_entities Datei. Dies sollte enthalten Amazon Simple Storage-Service (Amazon S3) Eimer (unter bucket) und der Schlüssel (unter key) der Datei.
  • Vorsilbe – Wird zum Erstellen des verwendet execution_id, der den S3-Ordner für die Ausgabespeicherung und den Namen des SageMaker Ground Truth-Beschriftungsauftrags benennt.
  • Entity_types – Wird in der Benutzeroberfläche angezeigt, damit Annotatoren sie beschriften können. Diese sollten alle Entitätstypen in den erwarteten Entitätsdateien enthalten.
  • Arbeitsteamname (optional) – Wird zum Erstellen des SageMaker Ground Truth-Beschriftungsauftrags verwendet. Es entspricht dem Einsatz privater Arbeitskräfte. Wenn es nicht bereitgestellt wird, wird anstelle eines SageMaker Ground Truth-Beschriftungsauftrags nur eine Manifestdatei erstellt. Sie können die Manifestdatei später verwenden, um einen SageMaker Ground Truth-Beschriftungsauftrag zu erstellen. Beachten Sie, dass Sie zum jetzigen Zeitpunkt keine externen Arbeitskräfte bereitstellen können, wenn Sie den Etikettierungsauftrag über das Notizbuch erstellen. Sie können den erstellten Job jedoch klonen und ihn auf der SageMaker Ground Truth-Konsole einer externen Belegschaft zuweisen.
  • comprehend_parameters (optional) – Parameter zum direkten Trainieren eines benutzerdefinierten Entitätserkennungsmodells von Amazon Comprehend. Wenn dieser Schritt weggelassen wird, wird er übersprungen.

Führen Sie den folgenden Python-Code aus, um die Zustandsmaschine zu starten:

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

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

Dadurch wird ein Lauf der Zustandsmaschine gestartet. Sie können den Fortschritt der Zustandsmaschine auf der Step Functions-Konsole überwachen. Das folgende Diagramm veranschaulicht den Workflow der Zustandsmaschine.

Automatisieren Sie die PDF-Vorbeschriftung für Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Wenn die Zustandsmaschine fertig ist, gehen Sie wie folgt vor:

  • Überprüfen Sie die folgenden Ausgaben, die im gespeichert sind prelabeling/ Ordner der comprehend-semi-structured-docs S3-Bucket:
    • Individuelle Anmerkungsdateien für jede Seite des Dokuments (eine pro Seite und Dokument) in temp_individual_manifests/
    • Ein Manifest für den SageMaker Ground Truth-Beschriftungsauftrag in consolidated_manifest/consolidated_manifest.manifest
    • Ein Manifest, das zum Trainieren eines benutzerdefinierten Amazon Comprehend-Modells verwendet werden kann consolidated_manifest/consolidated_manifest_comprehend.manifest
  • Öffnen Sie in der SageMaker-Konsole den Beschriftungsauftrag „SageMaker Ground Truth“, der erstellt wurde, um die Anmerkungen zu überprüfen
  • Untersuchen und testen Sie das trainierte benutzerdefinierte Amazon Comprehend-Modell

Wie bereits erwähnt, kann das Tool nur SageMaker Ground Truth-Kennzeichnungsaufträge für private Arbeitskräfte erstellen. Um den menschlichen Etikettierungsaufwand auszulagern, können Sie den Etikettierungsauftrag auf der SageMaker Ground Truth-Konsole klonen und beliebige Arbeitskräfte dem neuen Auftrag zuordnen.

Aufräumen

Um zusätzliche Kosten zu vermeiden, löschen Sie die von Ihnen erstellten Ressourcen und den bereitgestellten Stack mit dem folgenden Befehl:

make delete

Zusammenfassung

Das Pre-Labeling-Tool bietet Unternehmen eine leistungsstarke Möglichkeit, vorhandene Tabellendaten zu nutzen, um den Prozess des Trainings benutzerdefinierter Entitätserkennungsmodelle in Amazon Comprehend zu beschleunigen. Durch die automatische Vorannotation von PDF-Dokumenten wird der manuelle Aufwand im Etikettierungsprozess erheblich reduziert.

Das Tool verfügt über zwei Versionen: Fuzzy-Matching und Amazon Comprehend-basiert, was Flexibilität bei der Generierung der ersten Anmerkungen bietet. Nachdem Dokumente vorab beschriftet wurden, können Sie sie schnell in einem SageMaker Ground Truth-Beschriftungsauftrag überprüfen oder sogar die Überprüfung überspringen und direkt ein benutzerdefiniertes Amazon Comprehend-Modell trainieren.

Mit dem Pre-Labeling-Tool können Sie schnell den Wert Ihrer historischen Entitätsdaten erschließen und sie zum Erstellen benutzerdefinierter Modelle verwenden, die auf Ihre spezifische Domäne zugeschnitten sind. Durch die Beschleunigung des normalerweise arbeitsintensivsten Teils des Prozesses wird die Erkennung benutzerdefinierter Entitäten mit Amazon Comprehend einfacher denn je.

Weitere Informationen zum Beschriften von PDF-Dokumenten mit einem Beschriftungsauftrag von SageMaker Ground Truth finden Sie unter Benutzerdefinierte Dokumentanmerkung zum Extrahieren benannter Entitäten in Dokumenten mit Amazon Comprehend und Verwenden Sie Amazon SageMaker Ground Truth, um Daten zu kennzeichnen.


Über die Autoren

Automatisieren Sie die PDF-Vorbeschriftung für Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Oskar Schnaack ist angewandter Wissenschaftler am Generative AI Innovation Center. Seine Leidenschaft ist es, in die Wissenschaft hinter dem maschinellen Lernen einzutauchen, um es für Kunden zugänglich zu machen. Außerhalb der Arbeit fährt Oskar gerne Fahrrad und hält sich über Trends in der Informationstheorie auf dem Laufenden.

Automatisieren Sie die PDF-Vorbeschriftung für Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Romain Besombes ist Deep Learning Architect am Generative AI Innovation Center. Seine Leidenschaft gilt dem Aufbau innovativer Architekturen, um die Geschäftsprobleme der Kunden mit maschinellem Lernen anzugehen.

Zeitstempel:

Mehr von AWS Maschinelles Lernen