Intelligente documentverwerking met AWS AI-services: Deel 1 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Intelligente documentverwerking met AWS AI-services: deel 1

Organisaties in verschillende sectoren, zoals de gezondheidszorg, financiën en kredietverlening, juridische zaken, detailhandel en productie, hebben in hun dagelijkse bedrijfsprocessen vaak te maken met veel documenten. Deze documenten bevatten kritieke informatie die essentieel is om op tijd beslissingen te nemen om de hoogste niveaus van klanttevredenheid, snellere onboarding van klanten en minder klantverloop te behouden. In de meeste gevallen worden documenten handmatig verwerkt om informatie en inzichten te extraheren, wat tijdrovend, foutgevoelig, duur en moeilijk schaalbaar is. Er is tegenwoordig beperkte automatisering beschikbaar om informatie uit deze documenten te verwerken en te extraheren. Intelligente documentverwerking (IDP) met AWS-services voor kunstmatige intelligentie (AI) helpt bij het automatiseren van informatie-extractie uit documenten van verschillende soorten en formaten, snel en met hoge nauwkeurigheid, zonder dat machine learning (ML)-vaardigheden nodig zijn. Snellere informatie-extractie met hoge nauwkeurigheid helpt bij het tijdig nemen van hoogwaardige zakelijke beslissingen, terwijl de totale kosten worden verlaagd.

Hoewel de stadia in een IDP-workflow kunnen variëren en kunnen worden beïnvloed door gebruiksscenario's en zakelijke vereisten, toont de volgende afbeelding de stadia die doorgaans deel uitmaken van een IDP-workflow. Het verwerken van documenten zoals belastingformulieren, claims, medische notities, formulieren voor nieuwe klanten, facturen, juridische contracten en meer zijn slechts enkele van de use cases voor IDP.

In deze tweedelige serie bespreken we hoe u documenten op schaal kunt automatiseren en intelligent kunt verwerken met behulp van AWS AI-services. In dit bericht bespreken we de eerste drie fasen van de IDP-workflow. In deel 2bespreken we de resterende workflowfasen.

Overzicht oplossingen

Het volgende architectuurdiagram toont de stadia van een IDP-workflow. Het begint met een data capture-fase om verschillende bestandsindelingen (PDF, JPEG, PNG, TIFF) en lay-outs van documenten veilig op te slaan en samen te voegen. De volgende fase is classificatie, waarbij u uw documenten (zoals contracten, claimformulieren, facturen of kwitanties) categoriseert, gevolgd door documentextractie. In de extractiefase kunt u zinvolle bedrijfsinformatie uit uw documenten halen. Deze geëxtraheerde gegevens worden vaak gebruikt om inzichten te verzamelen via gegevensanalyse, of worden verzonden naar downstream-systemen zoals databases of transactiesystemen. De volgende fase is verrijking, waarbij documenten kunnen worden verrijkt door het redigeren van beschermde gezondheidsinformatie (PHI) of persoonlijk identificeerbare informatie (PII) gegevens, aangepaste zakelijke termextractie, enzovoort. Ten slotte kunt u in de beoordelings- en validatiefase een personeelsbestand inschakelen voor documentbeoordelingen om ervoor te zorgen dat de uitkomst nauwkeurig is.

Intelligente documentverwerking met AWS AI-services: Deel 1 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Voor de doeleinden van dit bericht beschouwen we een reeks voorbeelddocumenten zoals bankafschriften, facturen en winkelbonnen. De documentvoorbeelden, samen met de voorbeeldcode, zijn te vinden in onze GitHub-repository. In de volgende secties laten we u deze codevoorbeelden zien, samen met de echte praktische toepassing. We laten zien hoe u ML-mogelijkheden kunt gebruiken met Amazon T-extract, Amazon begrijpt het en Amazon Augmented AI (Amazon A2I) om documenten te verwerken en de daaruit geëxtraheerde gegevens te valideren.

Amazon Textract is een ML-service die automatisch tekst, handschrift en gegevens uit gescande documenten haalt. Het gaat verder dan eenvoudige optische tekenherkenning (OCR) om gegevens uit formulieren en tabellen te identificeren, begrijpen en extraheren. Amazon Textract gebruikt ML om elk type document te lezen en te verwerken, waarbij tekst, handschrift, tabellen en andere gegevens nauwkeurig worden geëxtraheerd zonder handmatige inspanning.

Amazon Comprehend is een dienst voor natuurlijke taalverwerking (NLP) die ML gebruikt om inzichten over de inhoud van de documenten te extraheren. Amazon Comprehend kan kritieke elementen in documenten identificeren, waaronder verwijzingen naar taal, mensen en plaatsen, en deze classificeren in relevante onderwerpen of clusters. Het kan sentimentanalyse uitvoeren om het sentiment van een document in realtime te bepalen met behulp van enkelvoudige document- of batchdetectie. Het kan bijvoorbeeld de reacties op een blogbericht analyseren om te weten of uw lezers het bericht leuk vinden of niet. Amazon Comprehend detecteert ook PII zoals adressen, bankrekeningnummers en telefoonnummers in tekstdocumenten in realtime en asynchrone batchtaken. Het kan ook PII-entiteiten redigeren in asynchrone batchtaken.

Amazon A2I is een ML-service die het gemakkelijk maakt om de workflows te bouwen die nodig zijn voor menselijke beoordeling. Amazon A2I brengt menselijke beoordeling naar alle ontwikkelaars, waardoor het ongedifferentieerde zware werk wordt weggenomen dat gepaard gaat met het bouwen van menselijke beoordelingssystemen of het beheren van grote aantallen menselijke beoordelaars, of het nu op AWS draait of niet. Amazon A2I integreert beide met Amazon T-extract en Amazon begrijpt het om u de mogelijkheid te bieden om menselijke beoordelingsstappen te introduceren binnen uw intelligente documentverwerkingsworkflow.

Gegevensverzamelingsfase

U kunt documenten opslaan in een zeer schaalbare en duurzame opslagomgeving Amazon eenvoudige opslagservice (Amazone S3). Amazon S3 is een objectopslagservice die toonaangevende schaalbaarheid, beschikbaarheid van gegevens, beveiliging en prestaties biedt. Amazon S3 is ontworpen voor 11 9's duurzaamheid en slaat gegevens op voor miljoenen klanten over de hele wereld. Documenten kunnen verschillende formaten en lay-outs hebben en kunnen afkomstig zijn van verschillende kanalen, zoals webportals of e-mailbijlagen.

Classificatiefase

In de vorige stap hebben we documenten van verschillende soorten en formaten verzameld. In deze stap moeten we de documenten categoriseren voordat we verdere extractie kunnen doen. Daarvoor gebruiken we Amazon Comprehend aangepaste classificatie. Documentclassificatie is een proces in twee stappen. Eerst train je een Amazon Comprehend custom classifier om de klassen te herkennen die voor jou van belang zijn. Vervolgens implementeert u het model met een aangepast real-time eindpunt van de classificatie en stuur niet-gelabelde documenten naar het real-time eindpunt om te worden geclassificeerd.

De volgende afbeelding geeft een typische werkstroom voor documentclassificatie weer.

Classificatiefase

Om de classificator te trainen, identificeert u de klassen waarin u geïnteresseerd bent en verstrekt u voorbeelddocumenten voor elk van de klassen als trainingsmateriaal. Op basis van de opties die je hebt aangegeven, maakt Amazon Comprehend een aangepast ML-model dat wordt getraind op basis van de documenten die je hebt verstrekt. Dit aangepaste model (de classificator) onderzoekt elk document dat u indient. Het retourneert ofwel de specifieke klasse die de inhoud het best vertegenwoordigt (als u de modus met meerdere klassen gebruikt) of de reeks klassen die erop van toepassing is (als u de modus met meerdere labels gebruikt).

Bereid trainingsgegevens voor

De eerste stap is het extraheren van tekst uit documenten die nodig zijn voor de aangepaste classificatie van Amazon Comprehend. Om de onbewerkte tekstinformatie voor alle documenten in Amazon S3 te extraheren, gebruiken we de Amazon Textract detect_document_text() API. We labelen de gegevens ook op basis van het documenttype dat moet worden gebruikt om een ​​aangepaste Amazon Comprehend-classificatie te trainen.

De volgende code is ingekort voor vereenvoudigingsdoeleinden. Raadpleeg de GitHub voor de volledige code voorbeeldcode For textract_extract_text(). De functie call_textract() is een wr4apper-functie die de AnalyseDocument API intern, en de parameters die aan de methode worden doorgegeven, vormen een samenvatting van enkele van de configuraties die de API nodig heeft om de extractietaak uit te voeren.

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)        

Train een aangepaste classificatie

In deze stap gebruiken we de aangepaste classificatie van Amazon Comprehend om ons model te trainen voor het classificeren van de documenten. Wij gebruiken de CreateDocumentClassifier API om een ​​classificatie te maken die een aangepast model traint met behulp van onze gelabelde gegevens. Zie de volgende 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'
    )

Implementeer een real-time eindpunt

Om de aangepaste classificatie van Amazon Comprehend te gebruiken, maken we een real-time eindpunt met behulp van de 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}')  

Classificeer documenten met het realtime eindpunt

Nadat het Amazon Comprehend-eindpunt is gemaakt, kunnen we het real-time eindpunt gebruiken om documenten te classificeren. Wij gebruiken de comprehend.classify_document() functie met de geëxtraheerde documenttekst en het gevolgtrekkingseindpunt als invoerparameters:

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

Amazon Comprehend retourneert alle documentklassen met een betrouwbaarheidsscore die aan elke klasse is gekoppeld in een reeks sleutel-waardeparen (naam-score). We kiezen de documentklasse met de hoogste betrouwbaarheidsscore. De volgende schermafbeelding is een voorbeeldreactie.

Classificeer documenten met het realtime eindpunt

We raden aan om de gedetailleerde voorbeeldcode voor documentclassificatie door te nemen op GitHub.

Extractie fase

Met Amazon Textract kunt u tekst en gestructureerde gegevensinformatie extraheren met behulp van Amazon Textract DetecteerDocumentTekst en AnalyseDocument API's, respectievelijk. Deze API's reageren met JSON-gegevens, die WOORDEN, LIJNEN, VORMEN, TABELLEN, informatie over geometrie of begrenzingskaders, relaties, enzovoort bevatten. Beide DetectDocumentText en AnalyzeDocument zijn synchrone bewerkingen. Gebruik om documenten asynchroon te analyseren StartDocumentTextDetection.

Gestructureerde gegevensextractie

U kunt gestructureerde gegevens, zoals tabellen, extraheren uit documenten terwijl de gegevensstructuur en relaties tussen gedetecteerde items behouden blijven. U kunt de AnalyseDocument API met de FeatureType as TABLE om alle tabellen in een document te detecteren. De volgende afbeelding illustreert dit proces.

Gestructureerde gegevensextractie

Zie de volgende code:

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

We runnen de analyze_document() methode met de FeatureType as TABLES op het werknemersgeschiedenisdocument en verkrijg de tabelextractie in de volgende resultaten.

Analyseer de document-API-respons voor het extraheren van tabellen

Semi-gestructureerde gegevensextractie

U kunt semi-gestructureerde gegevens, zoals formulieren of sleutel-waardeparen, extraheren uit documenten terwijl de gegevensstructuur en relaties tussen gedetecteerde items behouden blijven. U kunt de AnalyseDocument API met de FeatureType as FORMS om alle formulieren in een document te detecteren. Het volgende diagram illustreert dit proces.

Semi-gestructureerde gegevensextractie

Zie de volgende code:

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

Hier voeren we de analyze_document() methode met de FeatureType as FORMS op het werknemersaanvraagdocument en verkrijg de tabelextractie in de resultaten.

Intelligente documentverwerking met AWS AI-services: Deel 1 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Ongestructureerde gegevensextractie

Amazon Textract is optimaal voor compacte tekstextractie met toonaangevende OCR-nauwkeurigheid. U kunt de DetecteerDocumentTekst API om tekstregels en de woorden waaruit een tekstregel bestaat te detecteren, zoals geïllustreerd in de volgende afbeelding.

Ongestructureerde gegevensextractie

Zie de volgende code:

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

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

Nu lopen we de detect_document_text() methode op de voorbeeldafbeelding en verkrijg onbewerkte tekstextractie in de resultaten.

Intelligente documentverwerking met AWS AI-services: Deel 1 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Facturen en bonnen

Amazon Textract biedt gespecialiseerde ondersteuning om facturen en bonnen op grote schaal te verwerken. De AnalyserenUitgaven API kan expliciet gelabelde gegevens, impliciete gegevens en regelitems extraheren uit een gespecificeerde lijst met goederen of services van vrijwel elke factuur of ontvangstbewijs zonder enige sjablonen of configuratie. De volgende afbeelding illustreert dit proces.

Extractie van facturen en bonnen

Zie de volgende code:

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

Amazon Textract kan de naam van de leverancier op een bon vinden, zelfs als deze alleen wordt aangegeven in een logo op de pagina zonder een expliciet label met de naam "leverancier". Het kan ook onkostenitems, hoeveelheden en prijzen vinden en extraheren die niet zijn gelabeld met kolomkoppen voor regelitems.

Analyseer de onkosten-API-respons

Identiteitsdocumenten

Het Amazone-extract Analyse-ID API kan u helpen automatisch informatie te extraheren uit identificatiedocumenten, zoals rijbewijzen en paspoorten, zonder dat er sjablonen of configuratie nodig zijn. We kunnen specifieke informatie extraheren, zoals de vervaldatum en geboortedatum, maar ook op intelligente wijze impliciete informatie identificeren en extraheren, zoals naam en adres. Het volgende diagram illustreert dit proces.

Extractie van identiteitsdocumenten

Zie de volgende 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)

We kunnen gebruik maken tabulate om een ​​mooie afdruk te krijgen:

from tabulate import tabulate

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

Intelligente documentverwerking met AWS AI-services: Deel 1 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

We raden aan om de gedetailleerde documentextractie te doorlopen voorbeeldcode op GitHub. Raadpleeg voor meer informatie over de volledige codevoorbeelden in dit bericht de GitHub repo.

Conclusie

In dit eerste bericht van een tweedelige serie hebben we de verschillende stadia van IDP en een oplossingsarchitectuur besproken. We hebben ook de documentclassificatie besproken met behulp van een aangepaste classificatie van Amazon Comprehend. Vervolgens hebben we de manieren onderzocht waarop u Amazon Textract kunt gebruiken om informatie te extraheren uit ongestructureerde, semi-gestructureerde, gestructureerde en gespecialiseerde documenttypen.

In deel 2 van deze serie zetten we de discussie voort met de uittrek- en zoekfuncties van Amazon Textract. We bekijken hoe u vooraf gedefinieerde entiteiten en aangepaste entiteiten van Amazon Comprehend kunt gebruiken om belangrijke zakelijke termen uit documenten met dichte tekst te extraheren, en hoe u een Amazon A2I human-in-the-loop-beoordeling in uw IDP-processen kunt integreren.

We raden u aan de beveiligingssecties van de: Amazon T-extract, Amazon begrijpt het en Amazon A2I documentatie en volgens de verstrekte richtlijnen. Neem ook even de tijd om de prijzen voor te bekijken en te begrijpen Amazon T-extract, Amazon begrijpt het en Amazon A2I.


Over de auteurs

Intelligente documentverwerking met AWS AI-services: Deel 1 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai. Suprakasj Dutta is een oplossingsarchitect bij Amazon Web Services. Hij richt zich op digitale transformatiestrategie, modernisering en migratie van applicaties, data-analyse en machine learning.

Intelligente documentverwerking met AWS AI-services: Deel 1 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Sonali Sahu leidt het Intelligent Document Processing AI/ML Solutions Architect-team bij Amazon Web Services. Ze is een gepassioneerde technofiel en werkt graag samen met klanten om complexe problemen op te lossen met behulp van innovatie. Haar kerngebied is kunstmatige intelligentie en machine learning voor intelligente documentverwerking.

Intelligente documentverwerking met AWS AI-services: Deel 1 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Anjan Biswas is een Senior AI Services Solutions Architect met een focus op AI/ML en data-analyse. Anjan maakt deel uit van het wereldwijde AI-serviceteam en werkt samen met klanten om hen te helpen bij het begrijpen en ontwikkelen van oplossingen voor zakelijke problemen met AI en ML. Anjan heeft meer dan 14 jaar ervaring in het werken met wereldwijde supply chain-, productie- en retailorganisaties en helpt klanten actief om aan de slag te gaan en op te schalen met AWS AI-services.

Intelligente documentverwerking met AWS AI-services: Deel 1 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Chinmayee Rane is een AI/ML Specialist Solutions Architect bij Amazon Web Services. Ze is gepassioneerd door toegepaste wiskunde en machine learning. Ze richt zich op het ontwerpen van intelligente documentverwerkingsoplossingen voor AWS-klanten. Naast haar werk houdt ze van salsa- en bachatadansen.

Tijdstempel:

Meer van AWS-machine learning