Intelligente Dokumentenverarbeitung mit AWS AI-Services: Teil 1 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Intelligente Dokumentenverarbeitung mit AWS AI-Services: Teil 1

Organisationen aus verschiedenen Branchen wie Gesundheitswesen, Finanzen und Kreditwesen, Rechtswesen, Einzelhandel und Fertigung müssen in ihren täglichen Geschäftsprozessen oft mit einer Vielzahl von Dokumenten umgehen. Diese Dokumente enthalten wichtige Informationen, die für eine rechtzeitige Entscheidungsfindung entscheidend sind, um ein Höchstmaß an Kundenzufriedenheit, ein schnelleres Onboarding von Kunden und eine geringere Kundenabwanderung aufrechtzuerhalten. In den meisten Fällen werden Dokumente manuell verarbeitet, um Informationen und Erkenntnisse zu extrahieren, was zeitaufwändig, fehleranfällig, teuer und schwierig zu skalieren ist. Heutzutage ist nur eine begrenzte Automatisierung verfügbar, um Informationen aus diesen Dokumenten zu verarbeiten und zu extrahieren. Die intelligente Dokumentenverarbeitung (IDP) mit AWS-Diensten für künstliche Intelligenz (KI) hilft bei der Automatisierung der Informationsextraktion aus Dokumenten unterschiedlicher Typen und Formate, schnell und mit hoher Genauigkeit, ohne dass Kenntnisse über maschinelles Lernen (ML) erforderlich sind. Eine schnellere Informationsextraktion mit hoher Genauigkeit hilft dabei, rechtzeitig qualitativ hochwertige Geschäftsentscheidungen zu treffen und gleichzeitig die Gesamtkosten zu senken.

Obwohl die Phasen in einem IDP-Workflow variieren und von Anwendungsfällen und Geschäftsanforderungen beeinflusst werden können, zeigt die folgende Abbildung die Phasen, die typischerweise Teil eines IDP-Workflows sind. Die Verarbeitung von Dokumenten wie Steuerformularen, Ansprüchen, medizinischen Notizen, Neukundenformularen, Rechnungen, rechtsgültigen Verträgen und mehr sind nur einige der Anwendungsfälle für IDP.

In dieser zweiteiligen Serie erörtern wir, wie Sie Dokumente mithilfe von AWS-KI-Services in großem Umfang automatisieren und intelligent verarbeiten können. In diesem Beitrag besprechen wir die ersten drei Phasen des IDP-Workflows. Im Teil 2besprechen wir die verbleibenden Workflow-Phasen.

Lösungsüberblick

Das folgende Architekturdiagramm zeigt die Phasen eines IDP-Workflows. Es beginnt mit einer Datenerfassungsphase, um verschiedene Dateiformate (PDF, JPEG, PNG, TIFF) und Layouts von Dokumenten sicher zu speichern und zusammenzufassen. Die nächste Stufe ist die Klassifizierung, bei der Sie Ihre Dokumente (z. B. Verträge, Antragsformulare, Rechnungen oder Quittungen) kategorisieren, gefolgt von der Dokumentenextraktion. In der Extraktionsphase können Sie aussagekräftige Geschäftsinformationen aus Ihren Dokumenten extrahieren. Diese extrahierten Daten werden häufig verwendet, um durch Datenanalyse Erkenntnisse zu gewinnen, oder an nachgelagerte Systeme wie Datenbanken oder Transaktionssysteme gesendet. Die folgende Phase ist die Anreicherung, in der Dokumente durch Schwärzen von geschützten Gesundheitsinformationen (PHI) oder personenbezogenen Daten (PII), benutzerdefinierte Extraktion von Geschäftsbegriffen usw. angereichert werden können. Schließlich können Sie in der Überprüfungs- und Validierungsphase eine menschliche Belegschaft für die Dokumentenüberprüfung einbeziehen, um sicherzustellen, dass das Ergebnis korrekt ist.

Intelligente Dokumentenverarbeitung mit AWS AI-Services: Teil 1 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Für die Zwecke dieses Beitrags betrachten wir eine Reihe von Musterdokumenten wie Kontoauszüge, Rechnungen und Quittungen. Die Dokumentbeispiele sowie Beispielcode finden Sie in unserer GitHub-Repository. In den folgenden Abschnitten führen wir Sie durch diese Codebeispiele zusammen mit echter praktischer Anwendung. Wir demonstrieren, wie Sie ML-Funktionen mit nutzen können Amazontext, Amazon verstehen und Amazon Augmented AI (Amazon A2I), um Dokumente zu verarbeiten und die daraus extrahierten Daten zu validieren.

Amazon Textract ist ein ML-Dienst, der automatisch Text, Handschrift und Daten aus gescannten Dokumenten extrahiert. Es geht über die einfache optische Zeichenerkennung (OCR) hinaus, um Daten aus Formularen und Tabellen zu identifizieren, zu verstehen und zu extrahieren. Amazon Textract verwendet ML, um jede Art von Dokument zu lesen und zu verarbeiten und Text, Handschriften, Tabellen und andere Daten ohne manuellen Aufwand präzise zu extrahieren.

Amazon Comprehend ist ein Dienst zur Verarbeitung natürlicher Sprache (NLP), der ML verwendet, um Einblicke in den Inhalt der Dokumente zu gewinnen. Amazon Comprehend kann kritische Elemente in Dokumenten identifizieren, einschließlich Verweise auf Sprache, Personen und Orte, und sie in relevante Themen oder Cluster einordnen. Es kann Stimmungsanalysen durchführen, um die Stimmung eines Dokuments in Echtzeit zu bestimmen, indem es einzelne Dokumente oder Batch-Erkennung verwendet. Beispielsweise kann es die Kommentare zu einem Blogbeitrag analysieren, um festzustellen, ob Ihren Lesern der Beitrag gefällt oder nicht. Amazon Comprehend erkennt auch PII wie Adressen, Bankkontonummern und Telefonnummern in Textdokumenten in Echtzeit und asynchrone Batch-Jobs. Es kann auch PII-Entitäten in asynchronen Batch-Jobs unkenntlich machen.

Amazon A2I ist ein ML-Service, der es einfach macht, die für die menschliche Überprüfung erforderlichen Workflows zu erstellen. Amazon A2I bietet allen Entwicklern eine menschliche Überprüfung und beseitigt die undifferenzierte Schwerstarbeit, die mit dem Aufbau menschlicher Überprüfungssysteme oder der Verwaltung einer großen Anzahl menschlicher Prüfer verbunden ist, unabhängig davon, ob es auf AWS läuft oder nicht. Amazon A2I integriert beides mit Amazontext und Amazon verstehen um Ihnen die Möglichkeit zu geben, menschliche Überprüfungsschritte in Ihren intelligenten Dokumentenverarbeitungs-Workflow einzuführen.

Datenerfassungsphase

Sie können Dokumente in einem hochskalierbaren und langlebigen Speicher wie z Amazon Simple Storage-Service (Amazon S3). Amazon S3 ist ein Objektspeicherdienst, der branchenführende Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung bietet. Amazon S3 ist für eine Lebensdauer von 11 9 ausgelegt und speichert Daten für Millionen von Kunden auf der ganzen Welt. Dokumente können in verschiedenen Formaten und Layouts vorliegen und aus verschiedenen Kanälen wie Webportalen oder E-Mail-Anhängen stammen.

Klassifizierungsphase

Im vorherigen Schritt haben wir Dokumente verschiedener Arten und Formate gesammelt. In diesem Schritt müssen wir die Dokumente kategorisieren, bevor wir eine weitere Extraktion durchführen können. Dafür verwenden wir Amazon Comprehend benutzerdefinierte Klassifizierung. Die Dokumentenklassifizierung ist ein zweistufiger Prozess. Zuerst trainieren Sie einen benutzerdefinierten Amazon Comprehend-Klassifikator, um die für Sie interessanten Klassen zu erkennen. Als Nächstes stellen Sie das Modell mit a bereit benutzerdefinierter Klassifikator-Echtzeit-Endpunkt und unbeschriftete Dokumente zur Klassifizierung an den Echtzeit-Endpunkt senden.

Die folgende Abbildung zeigt einen typischen Arbeitsablauf zur Dokumentenklassifizierung.

Klassifizierungsphase

Identifizieren Sie zum Trainieren des Klassifikators die Klassen, an denen Sie interessiert sind, und stellen Sie Beispieldokumente für jede Klasse als Schulungsmaterial bereit. Basierend auf den von Ihnen angegebenen Optionen erstellt Amazon Comprehend ein benutzerdefiniertes ML-Modell, das es basierend auf den von Ihnen bereitgestellten Dokumenten trainiert. Dieses benutzerdefinierte Modell (der Klassifikator) untersucht jedes von Ihnen übermittelte Dokument. Es gibt entweder die spezifische Klasse zurück, die den Inhalt am besten darstellt (wenn Sie den Multi-Class-Modus verwenden), oder die Gruppe von Klassen, die darauf zutreffen (wenn Sie den Multi-Label-Modus verwenden).

Trainingsdaten vorbereiten

Der erste Schritt besteht darin, Text aus Dokumenten zu extrahieren, die für den benutzerdefinierten Amazon Comprehend-Klassifikator erforderlich sind. Um die Rohtextinformationen für alle Dokumente in Amazon S3 zu extrahieren, verwenden wir den Amazon Textract detect_document_text() API. Wir kennzeichnen die Daten auch nach dem Dokumenttyp, der zum Trainieren eines benutzerdefinierten Amazon Comprehend-Klassifikators verwendet werden soll.

Der folgende Code wurde zur Vereinfachung gekürzt. Den vollständigen Code finden Sie auf GitHub Beispielcode für textract_extract_text(). Die Funktion call_textract() ist eine wr4apper-Funktion, die die Dokument analysieren API intern und die an die Methode übergebenen Parameter abstrahieren einige der Konfigurationen, die die API zum Ausführen der Extraktionsaufgabe benötigt.

def textract_extract_text(document, bucket=data_bucket):        
    try:
        print(f'Processing document: {document}')
        lines = ""
        row = []
        
        # using amazon-textract-caller
        response = call_textract(input_document=f's3://{bucket}/{document}') 
        # using pretty printer to get all the lines
        lines = get_string(textract_json=response, output_type=[Textract_Pretty_Print.LINES])
        
        label = [name for name in names if(name in document)]  
        row.append(label[0])
        row.append(lines)        
        return row
    except Exception as e:
        print (e)        

Trainieren Sie einen benutzerdefinierten Klassifikator

In diesem Schritt verwenden wir die benutzerdefinierte Amazon Comprehend-Klassifizierung, um unser Modell für die Klassifizierung der Dokumente zu trainieren. Wir benutzen das CreateDocumentClassifier API zum Erstellen eines Klassifikators, der ein benutzerdefiniertes Modell mit unseren beschrifteten Daten trainiert. Siehe folgenden Code:

create_response = comprehend.create_document_classifier(
        InputDataConfig={
            'DataFormat': 'COMPREHEND_CSV',
            'S3Uri': f's3://{data_bucket}/{key}'
        },
        DataAccessRoleArn=role,
        DocumentClassifierName=document_classifier_name,
        VersionName=document_classifier_version,
        LanguageCode='en',
        Mode='MULTI_CLASS'
    )

Stellen Sie einen Echtzeit-Endpunkt bereit

Um den benutzerdefinierten Amazon Comprehend-Klassifikator zu verwenden, erstellen wir einen Echtzeit-Endpunkt mit der CreateEndpoint API:

endpoint_response = comprehend.create_endpoint(
        EndpointName=ep_name,
        ModelArn=model_arn,
        DesiredInferenceUnits=1,    
        DataAccessRoleArn=role
    )
    ENDPOINT_ARN=endpoint_response['EndpointArn']
print(f'Endpoint created with ARN: {ENDPOINT_ARN}')  

Klassifizieren Sie Dokumente mit dem Echtzeit-Endpunkt

Nachdem der Amazon Comprehend-Endpunkt erstellt wurde, können wir den Echtzeit-Endpunkt verwenden, um Dokumente zu klassifizieren. Wir benutzen das comprehend.classify_document() Funktion mit dem extrahierten Dokumenttext und dem Inferenzendpunkt als Eingabeparameter:

response = comprehend.classify_document(
      Text= document,
      EndpointArn=ENDPOINT_ARN
      )

Amazon Comprehend gibt alle Klassen von Dokumenten mit einem Konfidenzwert zurück, der mit jeder Klasse in einem Array von Schlüssel-Wert-Paaren (Name-Wert) verknüpft ist. Wir wählen die Dokumentklasse mit dem höchsten Vertrauenswert aus. Der folgende Screenshot ist eine Beispielantwort.

Klassifizieren Sie Dokumente mit dem Echtzeit-Endpunkt

Wir empfehlen, den detaillierten Beispielcode für die Dokumentklassifizierung durchzugehen GitHub.

Extraktionsphase

Mit Amazon Textract können Sie Text- und strukturierte Dateninformationen mithilfe von Amazon Textract extrahieren DokumentText erkennen und Dokument analysieren APIs bzw. Diese APIs antworten mit JSON-Daten, die WORDS, LINES, FORMS, TABLES, Geometrie- oder Begrenzungsrahmeninformationen, Beziehungen usw. enthalten. Beide DetectDocumentText und AnalyzeDocument sind synchrone Operationen. Um Dokumente asynchron zu analysieren, verwenden Sie StartDocumentTextDetection.

Strukturierte Datenextraktion

Sie können strukturierte Daten wie Tabellen aus Dokumenten extrahieren und dabei die Datenstruktur und Beziehungen zwischen erkannten Elementen beibehalten. Du kannst den ... benutzen Dokument analysieren API mit dem FeatureType as TABLE um alle Tabellen in einem Dokument zu erkennen. Die folgende Abbildung veranschaulicht diesen Vorgang.

Strukturierte Datenextraktion

Siehe folgenden Code:

response = textract.analyze_document(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    },
    FeatureTypes=["TABLES"])

Wir führen die analyze_document() Methode mit der FeatureType as TABLES auf dem Mitarbeiterverlaufsdokument und erhalten Sie die Tabellenextraktion in den folgenden Ergebnissen.

Analysieren Sie die Antwort der Dokument-API für die Tabellenextraktion

Halbstrukturierte Datenextraktion

Sie können halbstrukturierte Daten wie Formulare oder Schlüssel-Wert-Paare aus Dokumenten extrahieren und dabei die Datenstruktur und die Beziehungen zwischen erkannten Elementen beibehalten. Du kannst den ... benutzen Dokument analysieren API mit dem FeatureType as FORMS um alle Formulare in einem Dokument zu erkennen. Das folgende Diagramm veranschaulicht diesen Vorgang.

Halbstrukturierte Datenextraktion

Siehe folgenden Code:

response = textract.analyze_document(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    },
    FeatureTypes=["FORMS"])

Hier führen wir die analyze_document() Methode mit der FeatureType as FORMS auf dem Mitarbeiterbewerbungsdokument und erhalten den Tabellenauszug in den Ergebnissen.

Intelligente Dokumentenverarbeitung mit AWS AI-Services: Teil 1 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Unstrukturierte Datenextraktion

Amazon Textract ist optimal für die Extraktion dichter Texte mit branchenführender OCR-Genauigkeit. Du kannst den ... benutzen DokumentText erkennen API zum Erkennen von Textzeilen und der Wörter, aus denen eine Textzeile besteht, wie in der folgenden Abbildung dargestellt.

Unstrukturierte Datenextraktion

Siehe folgenden Code:

response = textract.detect_document_text(Document={'Bytes': imageBytes})

# Print detected text
for item in response["Blocks"]:
	if item["BlockType"] == "LINE":
 		print (item["Text"])

Jetzt führen wir die detect_document_text() Methode auf dem Beispielbild und erhalten Rohtextextraktion in den Ergebnissen.

Intelligente Dokumentenverarbeitung mit AWS AI-Services: Teil 1 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Rechnungen und Quittungen

Amazon Textract bietet spezialisierte Unterstützung für die Verarbeitung von Rechnungen und Quittungen im großen Maßstab. Das Kosten analysieren Die API kann explizit gekennzeichnete Daten, implizite Daten und Einzelposten aus einer aufgeschlüsselten Liste von Waren oder Dienstleistungen aus fast jeder Rechnung oder Quittung ohne Vorlagen oder Konfiguration extrahieren. Die folgende Abbildung veranschaulicht diesen Vorgang.

Extrahieren von Rechnungen und Quittungen

Siehe folgenden Code:

response = textract.analyze_expense(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    })

Amazon Textract kann den Lieferantennamen auf einer Quittung finden, selbst wenn er nur innerhalb eines Logos auf der Seite ohne eine explizite Bezeichnung namens „Lieferant“ angegeben ist. Es kann auch Ausgabenposten, Mengen und Preise finden und extrahieren, die nicht mit Spaltenüberschriften für Einzelposten gekennzeichnet sind.

Analysieren Sie die Spesen-API-Antwort

Ausweisdokumente

Der Amazon Textract AnalyseID Die API kann Ihnen dabei helfen, automatisch Informationen aus Ausweisdokumenten wie Führerscheinen und Pässen zu extrahieren, ohne dass Vorlagen oder Konfigurationen erforderlich sind. Wir können spezifische Informationen wie Ablauf- und Geburtsdatum extrahieren sowie implizite Informationen wie Name und Adresse intelligent identifizieren und extrahieren. Das folgende Diagramm veranschaulicht diesen Vorgang.

Extraktion von Identitätsdokumenten

Siehe folgenden Code:

textract_client = boto3.client('textract')
j = call_textract_analyzeid(document_pages=["s3://amazon-textract-public-content/analyzeid/driverlicense.png"],boto3_textract_client=textract_client)

Wir verwenden tabulate um eine hübsch gedruckte Ausgabe zu erhalten:

from tabulate import tabulate

print(tabulate([x[1:3] for x in result]))

Intelligente Dokumentenverarbeitung mit AWS AI-Services: Teil 1 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Wir empfehlen, die detaillierte Dokumentenextraktion durchzugehen Beispielcode auf GitHub. Weitere Informationen zu den vollständigen Codebeispielen in diesem Beitrag finden Sie unter GitHub Repo.

Zusammenfassung

In diesem ersten Beitrag einer zweiteiligen Serie haben wir die verschiedenen Phasen von IDP und eine Lösungsarchitektur besprochen. Wir haben auch die Dokumentenklassifizierung mit einem benutzerdefinierten Amazon Comprehend-Klassifikator besprochen. Als Nächstes haben wir untersucht, wie Sie mit Amazon Textract Informationen aus unstrukturierten, halbstrukturierten, strukturierten und spezialisierten Dokumenttypen extrahieren können.

In Teil 2 dieser Serie setzen wir die Diskussion mit den Extraktions- und Abfragefunktionen von Amazon Textract fort. Wir sehen uns an, wie Sie vordefinierte und benutzerdefinierte Entitäten von Amazon Comprehend verwenden können, um wichtige Geschäftsbegriffe aus Dokumenten mit dichtem Text zu extrahieren, und wie Sie eine Amazon A2I Human-in-the-Loop-Überprüfung in Ihre IDP-Prozesse integrieren können.

Wir empfehlen, die Sicherheitsabschnitte der zu lesen Amazontext, Amazon verstehen und Amazon A2I Dokumentation und Einhaltung der bereitgestellten Richtlinien. Nehmen Sie sich auch einen Moment Zeit, um die Preise für zu überprüfen und zu verstehen Amazontext, Amazon verstehen und Amazon A2I.


Über die Autoren

Intelligente Dokumentenverarbeitung mit AWS AI-Services: Teil 1 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai. Suprakash Dutta ist Lösungsarchitekt bei Amazon Web Services. Er konzentriert sich auf Strategien zur digitalen Transformation, Anwendungsmodernisierung und -migration, Datenanalyse und maschinelles Lernen.

Intelligente Dokumentenverarbeitung mit AWS AI-Services: Teil 1 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Sonali Sahu leitet das Intelligent Document Processing AI/ML Solutions Architect-Team bei Amazon Web Services. Sie ist leidenschaftlich technikbegeistert und arbeitet gerne mit Kunden zusammen, um komplexe Probleme durch Innovation zu lösen. Ihre Kerngebiete sind künstliche Intelligenz und maschinelles Lernen für die intelligente Dokumentenverarbeitung.

Intelligente Dokumentenverarbeitung mit AWS AI-Services: Teil 1 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Anjan Biswas ist Senior AI Services Solutions Architect mit Schwerpunkt auf KI/ML und Datenanalyse. Anjan ist Teil des weltweiten KI-Serviceteams und arbeitet mit Kunden zusammen, um ihnen zu helfen, Geschäftsprobleme mit KI und ML zu verstehen und Lösungen für diese zu entwickeln. Anjan verfügt über mehr als 14 Jahre Erfahrung in der Arbeit mit globalen Lieferketten-, Fertigungs- und Einzelhandelsorganisationen und hilft Kunden aktiv beim Einstieg und bei der Skalierung von AWS-KI-Services.

Intelligente Dokumentenverarbeitung mit AWS AI-Services: Teil 1 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Chinmayee Rane ist AI/ML Specialist Solutions Architect bei Amazon Web Services. Sie interessiert sich leidenschaftlich für angewandte Mathematik und maschinelles Lernen. Sie konzentriert sich auf die Entwicklung intelligenter Dokumentenverarbeitungslösungen für AWS-Kunden. Außerhalb der Arbeit tanzt sie gerne Salsa und Bachata.

Zeitstempel:

Mehr von AWS Maschinelles Lernen