Automatisches Extrahieren von Inhalten aus PDF-Dateien mit Amazon Textract - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Automatisches Extrahieren von Inhalten aus PDF-Dateien mit Amazon Textract

Erstellt von Tianxia Jia (AWS)

Umgebung: Produktion

Technologien: Machine Learning und KI; Analytik; Big Data

AWS-Services: Amazon S3; Amazon Textract; Amazon SageMaker

Übersicht

Viele Organisationen müssen Informationen aus PDF-Dateien extrahieren, die in ihre Geschäftsanwendungen hochgeladen werden. Beispielsweise könnte eine Organisation Informationen aus Steuer- oder medizinischen PDF-Dateien zur Steueranalyse oder zur Bearbeitung von medizinischen Ansprüchen präzise extrahieren müssen.

In der Amazon Web Services (AWS) Cloud extrahiert Amazon Textract automatisch Informationen (z. B. gedruckten Text, Formularen und Tabellen) aus PDF-Dateien und erstellt eine JSON-formatierte Datei, die Informationen aus der ursprünglichen PDF-Datei enthält. Sie können Amazon Textract in der AWS-Managementkonsole oder durch die Implementierung von API-Aufrufen verwenden. Wir empfehlen, programmgesteuerte API-Aufrufe zu verwenden, um eine große Anzahl von PDF-Dateien zu skalieren und automatisch zu verarbeiten.

Wenn Amazon Textract eine Datei verarbeitet, erstellt es die folgende Liste von Block Objekten: Seiten, Zeilen und Textwörter, Formen (Schlüssel-Wert-Paare), Tabellen und Zellen sowie Auswahlelemente. Andere Objektinformationen sind ebenfalls enthalten, z. B. Begrenzungsrahmen , Konfidenzintervalle, IDs und Beziehungen. Amazon Textract extrahiert die Inhaltsinformationen als Zeichenfolgen. Korrekt identifizierte und transformierte Datenwerte sind erforderlich, da sie einfacher von Ihren Downstream-Anwendungen verwendet werden können. 

Dieses Muster beschreibt einen step-by-step Workflow für die Verwendung von Amazon Textract, um Inhalte automatisch aus PDF-Dateien zu extrahieren und in einer sauberen Ausgabe zu verarbeiten. Das Muster verwendet eine Vorlagenabgleichstechnik, um das erforderliche Feld, den Schlüsselnamen und die Tabellen korrekt zu identifizieren, und wendet dann Korrekturen nach der Verarbeitung auf jeden Datentyp an. Sie können dieses Muster verwenden, um verschiedene Arten von PDF-Dateien zu verarbeiten, und Sie können diesen Workflow dann skalieren und automatisieren, um PDF-Dateien mit einem identischen Format zu verarbeiten.   

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktives AWS-Konto.

  • Ein vorhandener Amazon Simple Storage Service (Amazon S3)-Bucket zum Speichern der PDF-Dateien, nachdem sie zur Verarbeitung durch Amazon Textract in das JPEG-Format konvertiert wurden. Weitere Informationen zu S3-Buckets finden Sie unter Bucket-Übersicht in der Amazon S3-Dokumentation.

  • Das Textract_PostProcessing.ipynb Jupyter Notebook (angefügt), installiert und konfiguriert. Weitere Informationen zu Jupyter-Notebooks finden Sie unter Erstellen eines Jupyter-Notebooks in der Amazon- SageMaker Dokumentation.

  • Vorhandene PDF-Dateien mit einem identischen Format.

  • Ein Verständnis von Python.

Einschränkungen

Architektur

Der Workflow dieses Musters führt zunächst Amazon Textract auf einer Beispiel-PDF-Datei aus (erstmalige Ausführung ) und führt es dann auf PDF-Dateien aus, die ein identisches Format wie das erste PDF haben (wiederholte Ausführung ). Das folgende Diagramm zeigt den kombinierten Workflow für Erst- und Wiederholungsausführung, der Inhalte automatisch und wiederholt aus PDF-Dateien mit identischen Formaten extrahiert.

Verwenden von Amazon Textract zum Extrahieren von Inhalten aus PDF-Dateien

Das Diagramm zeigt den folgenden Workflow für dieses Muster:

  1. Konvertieren Sie eine PDF-Datei in das JPEG-Format und speichern Sie sie in einem S3-Bucket. 

  2. Rufen Sie die Amazon-Textract-API auf und analysieren Sie die Amazon-Textract-Antwort-JSON-Datei. 

  3. Bearbeiten Sie die JSON-Datei, indem Sie das richtige KeyName:DataType Paar für jedes erforderliche Feld hinzufügen. Erstellen Sie eine TemplateJSON Datei für die Phase Wiederholen der Ausführung.

  4. Definieren Sie die Korrekturfunktionen nach der Verarbeitung für jeden Datentyp (z. B. Float, Ganzzahl und Datum).

  5. Bereiten Sie die PDF-Dateien vor, die ein identisches Format wie Ihre erste PDF-Datei haben.

  6. Rufen Sie die Amazon-Textract-API auf und analysieren Sie das Amazon-Textract-Antwort-JSON.

  7. Ordnen Sie die analysierte JSON-Datei der TemplateJSON Datei zu.

  8. Implementieren Sie Korrekturen nach der Verarbeitung.

Die endgültige JSON-Ausgabedatei enthält das richtige KeyName und Value für jedes erforderliche Feld.

Zieltechnologie-Stack

  • Amazon SageMaker 

  • Amazon S3 

  • Amazon Textract

Automatisierung und Skalierung

Sie können den Workflow „Wiederholungsausführung“ automatisieren, indem Sie eine AWS Lambda-Funktion verwenden, die Amazon Textract initiiert, wenn eine neue PDF-Datei zu Amazon S3 hinzugefügt wird. Amazon Textract führt dann die Verarbeitungsskripts aus und die endgültige Ausgabe kann an einem Speicherort gespeichert werden. Weitere Informationen dazu finden Sie unter Verwenden eines Amazon S3-Auslösers zum Aufrufen einer Lambda-Funktion in der Lambda-Dokumentation.

Tools

  • Amazon SageMaker ist ein vollständig verwalteter ML-Service, mit dem Sie ML-Modelle schnell und einfach erstellen und trainieren und sie dann direkt in einer produktionsbereiten gehosteten Umgebung bereitstellen können.

  • Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

  • Amazon Textract erleichtert das Hinzufügen von Texterkennung und -analyse zu Ihren Anwendungen.

Polen

AufgabeBeschreibungErforderliche Fähigkeiten

Konvertieren Sie die PDF-Datei.

Bereiten Sie die PDF-Datei für Ihre erste Ausführung vor, indem Sie sie in eine einzelne Seite aufteilen und in das JPEG-Format für die synchrone Amazon-Textract-Operation (Syn API) konvertieren.

Hinweis: Sie können auch die asynchrone Amazon Textract-Operation (Asyn API) für mehrseitige PDF-Dateien verwenden.

Datenwissenschaftler, Entwickler

Parsen Sie das Amazon Textract-Antwort-JSON.

Öffnen Sie das Textract_PostProcessing.ipynb Jupyter Notebook (angefügt) und rufen Sie die Amazon Textract API mit dem folgenden Code auf:

response = textract.analyze_document( Document={ 'S3Object': { 'Bucket': BUCKET, 'Name': '{}'.format(filename) } }, FeatureTypes=["TABLES", "FORMS"])

Parsen Sie den Antwort-JSON in ein Formular und eine Tabelle, indem Sie den folgenden Code verwenden:

parseformKV=form_kv_from_JSON(response) parseformTables=get_tables_fromJSON(response)
Datenwissenschaftler, Entwickler

Bearbeiten Sie die TemplateJSON-Datei.

Bearbeiten Sie den analysierten JSON-Code für jede KeyName und die entsprechenden Tabellenüberschriften DataType (z. B. Zeichenfolge, Gleitkommazahl, Ganzzahl oder Datum) und Tabellenüberschriften (z. B. ColumnNames und RowNames).

Diese Vorlage wird für jeden einzelnen PDF-Dateityp verwendet, was bedeutet, dass die Vorlage für PDF-Dateien mit einem identischen Format wiederverwendet werden kann.

Datenwissenschaftler, Entwickler

Definieren Sie die Korrekturfunktionen nach der Verarbeitung.

Die Werte in der Antwort von Amazon Textract für die TemplateJSON Datei sind Zeichenfolgen. Für Datum, Gleitkommazahl, Ganzzahl oder Währung gibt es keine Abhilfe. Diese Werte müssen in den richtigen Datentyp für Ihren nachgelagerten Anwendungsfall konvertiert werden. 

Korrigieren Sie jeden Datentyp entsprechend der TemplateJSON Datei mithilfe des folgenden Codes:

finalJSON=postprocessingCorrection(parsedJSON,templateJSON)
Datenwissenschaftler, Entwickler
AufgabeBeschreibungErforderliche Fähigkeiten

Bereiten Sie die PDF-Dateien vor.

Bereiten Sie die PDF-Dateien vor, indem Sie sie in eine einzelne Seite aufteilen und sie für die synchrone Amazon-Textract-Operation in das JPEG-Format konvertieren (Syn API).

Hinweis: Sie können auch die asynchrone Amazon Textract-Operation (Asyn API) für mehrseitige PDF-Dateien verwenden.

Datenwissenschaftler, Entwickler

Rufen Sie die Amazon Textract API auf.

Rufen Sie die Amazon Textract API mit dem folgenden Code auf:

response = textract.analyze_document( Document={ 'S3Object': { 'Bucket': BUCKET, 'Name': '{}'.format(filename) } }, FeatureTypes=["TABLES", "FORMS"])
Datenwissenschaftler, Entwickler

Parsen Sie das Amazon Textract-Antwort-JSON.

Parsen Sie den Antwort-JSON in ein Formular und eine Tabelle, indem Sie den folgenden Code verwenden:

parseformKV=form_kv_from_JSON(response) parseformTables=get_tables_fromJSON(response)
Datenwissenschaftler, Entwickler

Laden Sie die TemplateJSON-Datei und ordnen Sie sie dem analysierten JSON-Code zu.

Verwenden Sie die -TemplateJSONDatei, um die richtigen Schlüssel-Wert-Paare und die richtige Tabelle mit den folgenden Befehlen zu extrahieren:

form_kv_corrected=form_kv_correction(parseformKV,templateJSON) form_table_corrected=form_Table_correction(parseformTables, templateJSON) form_kv_table_corrected_final={**form_kv_corrected , **form_table_corrected}
Datenwissenschaftler, Entwickler

Korrekturen nach der Verarbeitung.

Verwenden Sie DataType in der TemplateJSON Datei und den Nachverarbeitungsfunktionen, um Daten mithilfe des folgenden Codes zu korrigieren: 

finalJSON=postprocessingCorrection(form_kv_table_corrected_final,templateJSON)
Datenwissenschaftler, Entwickler

Zugehörige Ressourcen

Anlagen

Um auf zusätzliche Inhalte zuzugreifen, die diesem Dokument zugeordnet sind, entpacken Sie die folgende Datei: attachment.zip