Veel organisaties van verschillende groottes en branchetakken zijn nog steeds afhankelijk van grote hoeveelheden documenten om hun dagelijkse activiteiten uit te voeren. Om deze zakelijke uitdaging op te lossen, maken klanten gebruik van intelligente documentverwerkingsservices van AWS, zoals Amazon T-extract en Amazon begrijpt het om mee te helpen extractie en procesautomatisering. Voordat u tekst, sleutel-waardeparen, tabellen en entiteiten kunt extraheren, moet u PDF-documenten met meerdere pagina's kunnen splitsen die vaak heterogene formuliertypen bevatten. Bij het verwerken van hypotheken moet een makelaar of persoon die een lening verwerkt bijvoorbeeld een geconsolideerd PDF-leningpakket splitsen, met daarin de hypotheekaanvraag (Fannie Mae-formulier 1003), W2's, inkomensverificatie, 1040 belastingformulieren en meer.
Om dit probleem aan te pakken, gebruiken organisaties op regels gebaseerde verwerking: het identificeren van documenttypes via formuliertitels, paginanummers, formulierlengtes, enzovoort. Deze benaderingen zijn foutgevoelig en moeilijk te schalen, vooral wanneer de formuliertypen verschillende variaties kunnen hebben. Dienovereenkomstig werken deze tijdelijke oplossingen in de praktijk snel stuk en vergroten ze de behoefte aan menselijke tussenkomst.
In dit bericht laten we zien hoe u uw eigen oplossing voor het splitsen van documenten kunt maken met weinig code voor elke set formulieren, zonder aangepaste regels of verwerkingsworkflows te bouwen.
Overzicht oplossingen
Voor dit bericht gebruiken we een reeks veelgebruikte hypotheekaanvraagformulieren om te demonstreren hoe u Amazon Textract en Amazon Comprehend kunt gebruiken om een intelligente documentsplitser te creëren die robuuster is dan eerdere benaderingen. Bij het verwerken van documenten voor hypotheekaanvragen dient de lener een PDF met meerdere pagina's in die is samengesteld uit heterogene documenttypen van verschillende paginalengtes; om informatie te extraheren, moet de gebruiker (bijvoorbeeld een bank) deze pdf uitsplitsen.
Hoewel we een specifiek voorbeeld laten zien voor hypotheekformulieren, kunt u deze aanpak in het algemeen schalen en toepassen op vrijwel elke set PDF-documenten met meerdere pagina's.
We gebruiken Amazon Textract om gegevens uit het document te extraheren en een Amazon Comprehend-compatibele dataset te bouwen om een documentclassificatiemodel. Vervolgens trainen we het classificatiemodel en creëren we een classificatie-eindpunt dat real-time documentanalyse kan uitvoeren. Houd er rekening mee dat er kosten in rekening worden gebracht voor Amazon Textract- en Amazon Comprehend-classificatie-eindpunten, dus raadpleeg Amazon Textract-prijzen en Amazon begrijpt prijzen voor meer informatie. Tot slot laten we zien hoe we met dit eindpunt documenten kunnen classificeren en documenten kunnen splitsen op basis van de classificatieresultaten.
Deze oplossing maakt gebruik van de volgende AWS-services:
Voorwaarden
U moet aan de volgende vereisten voldoen om deze oplossing te bouwen en te implementeren:
- Install Python 3.8.x.
- Install jq.
- Install de AWS SAM CLI.
- Install havenarbeider.
- Zorg dat je hebt pip geïnstalleerd.
- Installeren en configureren de AWS-opdrachtregelinterface (AWS CLI).
- Configure uw AWS-referenties.
De oplossing is ontworpen om optimaal te werken in de us-east-1
en us-west-2
Regio's om te profiteren van hogere standaardquota voor Amazon Textract. Raadpleeg voor specifieke regionale workloads Amazon Textract-eindpunten en quota. Zorg ervoor dat u één regio gebruikt voor de hele oplossing.
Kloon de opslagplaats
Om te beginnen, kloont u de repository door de volgende opdracht uit te voeren; dan schakelen we over naar de werkdirectory:
Oplossingsworkflows
De oplossing bestaat uit drie workflows:
- workflow1_endpointbuilder – Neemt de trainingsdocumenten en bouwt een aangepast classificatie-eindpunt op Amazon Comprehend.
- workflow2_docsplitter – Fungeert als service voor het splitsen van documenten, waarbij documenten per klasse worden gesplitst. Het gebruikt het classificatie-eindpunt dat is gemaakt in
workflow1
. - werkstroom3_lokaal - Is bedoeld voor klanten die zich in sterk gereguleerde sectoren bevinden en geen gegevens in Amazon S3 kunnen bewaren. Deze workflow bevat lokale versies van
workflow1
enworkflow2
.
Laten we dieper ingaan op elke workflow en hoe ze werken.
Workflow 1: bouw een Amazon Comprehend-classificatie van PDF-, JPG- of PNG-documenten
De eerste workflow neemt documenten die zijn opgeslagen op Amazon S3 en stuurt ze door een reeks stappen om de gegevens uit de documenten te extraheren via Amazon Textract. Vervolgens worden de geëxtraheerde gegevens gebruikt om een Amazon Comprehend aangepast classificatie-eindpunt te maken. Dit wordt gedemonstreerd in het volgende architectuurdiagram.
Lanceren workflow1
, hebt u de Amazon S3-URI nodig van de map met de trainingsgegevenssetbestanden (dit kunnen afbeeldingen, PDF's van één pagina of PDF's met meerdere pagina's zijn). De structuur van de map moet als volgt zijn:
Als alternatief kan de structuur extra geneste submappen hebben:
De namen van de klassensubmappen (het tweede mapniveau) worden de namen van de klassen die worden gebruikt in het aangepaste classificatiemodel van Amazon Comprehend. In de volgende bestandsstructuur is bijvoorbeeld de klasse voor form123.pdf
is tax_forms
:
Voer de volgende stappen uit om de workflow te starten:
- Upload de dataset naar een S3-bucket waarvan u de eigenaar bent.
De aanbeveling is om meer dan 50 monsters te hebben voor elke klasse waarop u wilt classificeren. De volgende schermafbeelding toont een voorbeeld van deze structuur van documentklassen.
- Bouw het
sam-app
door de volgende opdrachten uit te voeren (wijzig de verstrekte opdrachten indien nodig):
De output van de build is een ARN voor een Step Functions state machine.
- Wanneer de build is voltooid, navigeert u naar de Staatsmachines pagina op de Step Functions-console.
- Kies de statusmachine die u hebt gemaakt.
- Kies Start de uitvoering.
- Voer de volgende vereiste invoerparameters in:
De toestandsmachine start de workflow. Dit kan meerdere uren duren, afhankelijk van de grootte van de dataset. De volgende schermafbeelding toont onze toestandsmachine in uitvoering.
Wanneer de toestandsmachine is voltooid, is elke stap in de grafiek groen, zoals te zien is in de volgende schermafbeelding.
U kunt naar de Amazon Comprehend-console navigeren om het geïmplementeerde eindpunt te zien.
U heeft nu uw aangepaste classificatie gebouwd met behulp van uw documenten. Dit markeert het einde van workflow1
.
Workflow 2: bouw een eindpunt
De tweede werkstroom neemt het eindpunt waarin u hebt gemaakt workflow1
en splitst de documenten op basis van de klassen waarmee het model is getraind. Dit wordt gedemonstreerd in het volgende architectuurdiagram.
Lanceren workflow2
, wij bouwen de sam-app
. Pas de verstrekte opdrachten naar behoefte aan:
Nadat de stapel is gemaakt, ontvangt u een Load Balancer DNS op de Uitgangen tabblad van de CloudFormation-stack. U kunt verzoeken indienen bij dit eindpunt.
Een voorbeeldaanvraag is beschikbaar in de workflow2_docsplitter/sample_request_folder/sample_s3_request.py
bestand. De API gebruikt drie parameters: de S3-bucketnaam, de Amazon S3-URI van het document en het Amazon Comprehend-classificatie-eindpunt ARN. Workflow2 ondersteunt alleen PDF-invoer.
Voor onze test gebruiken we een hypotheekdocument van 11 pagina's met vijf verschillende documenttypes.
Het antwoord voor de API is een Amazon S3 URI voor een .zip-bestand met alle gesplitste documenten. U kunt dit bestand ook vinden in de bucket die u hebt opgegeven in uw API-aanroep.
Download het object en bekijk de gesplitste documenten op basis van de klasse.
Dit markeert het einde van workflow2
. We hebben nu laten zien hoe we een aangepast Amazon Comprehend-classificatie-eindpunt kunnen gebruiken om documenten te classificeren en te splitsen.
Workflow 3: lokale documentsplitsing
Onze derde workflow volgt een soortgelijk doel als workflow1
en workflow2
om een Amazon Comprehend-eindpunt te genereren; alle verwerking wordt echter gedaan met behulp van uw lokale computer om een Amazon Comprehend-compatibel CSV-bestand te genereren. Deze workflow is gemaakt voor klanten in sterk gereguleerde branches waar het niet mogelijk is om PDF-documenten op Amazon S3 te bewaren. Het volgende architectuurdiagram is een visuele weergave van de werkstroom van de lokale eindpuntbouwer.
Het volgende diagram illustreert de architectuur van de lokale documentsplitser.
Alle code voor de oplossing is beschikbaar in de workflow3_local/local_endpointbuilder.py
bestand om het Amazon Comprehend-classificatie-eindpunt te bouwen en workflow3_local/local_docsplitter.py
om documenten te verzenden voor splitsing.
Conclusie
Het splitsen van documenten is de sleutel tot het bouwen van een succesvolle en intelligente documentverwerkingsworkflow. Het is nog steeds een zeer relevant probleem voor bedrijven, met name organisaties die meerdere documenttypen samenvoegen voor hun dagelijkse activiteiten. Enkele voorbeelden zijn het verwerken van documenten voor verzekeringsclaims, aanvragen voor verzekeringspolissen, SEC-documenten, belastingformulieren en formulieren voor inkomensverificatie.
In dit bericht hebben we een reeks algemene documenten gebruikt voor het verwerken van leningen, de gegevens geëxtraheerd met Amazon Textract en een aangepast Amazon Comprehend-classificatie-eindpunt gebouwd. Met dat eindpunt hebben we inkomende documenten geclassificeerd en opgesplitst op basis van hun respectievelijke klasse. U kunt dit proces toepassen op vrijwel elke set documenten met toepassingen in verschillende sectoren, zoals de gezondheidszorg en de financiële dienstverlening. Voor meer informatie over Amazon Textract, bezoek de webpagina.
Over de auteurs
Aditi Rajnish is een eerstejaars student software engineering aan de Universiteit van Waterloo. Haar interesses omvatten computervisie, natuurlijke taalverwerking en edge computing. Ze is ook gepassioneerd door community-based STEM-outreach en belangenbehartiging. In haar vrije tijd kan ze rotsklimmen, piano spelen of leren hoe ze de perfecte scone moet bakken.
Raj Pathak is Solutions Architect en technisch adviseur voor Fortune 50- en middelgrote FSI-klanten (Banking, Insurance, Capital Markets) in Canada en de Verenigde Staten. Raj is gespecialiseerd in Machine Learning met toepassingen in Document Extraction, Contact Center Transformation en Computer Vision.
- '
- 100
- 7
- Extra
- Voordeel
- adviseur
- voorspraak
- Alles
- Amazone
- Amazon begrijpt het
- Amazon T-extract
- analyse
- api
- Aanvraag
- toepassingen
- architectuur
- argumenten
- AWS
- balancer
- Bank
- Bankieren
- makelaar
- bouw
- bouwer
- Gebouw
- bedrijfsdeskundigen
- ondernemingen
- Bellen
- Canada
- hoofdstad
- Kapitaalmarkten
- uitdagen
- lasten
- vorderingen
- classificatie
- code
- Gemeen
- Computer visie
- computergebruik
- Wij creëren
- Geloofsbrieven
- Klanten
- gegevens
- dns
- havenarbeider
- documenten
- rand
- edge computing
- Endpoint
- Engineering
- extraheer de gegevens
- extractie
- Tot slot
- financieel
- financiële diensten
- Voornaam*
- formulier
- Git
- GitHub
- Groen
- gezondheidszorg
- Hoe
- How To
- HTTPS
- IAM
- Inkomen
- Laat uw omzet
- industrieën
- -industrie
- informatie
- verzekering
- IT
- sleutel
- taal
- Groot
- lancering
- LEARN
- leren
- Niveau
- Lijn
- laden
- lening
- lokaal
- machine learning
- Markten
- model
- Hypotheek
- namen
- Natuurlijke taal
- Natural Language Processing
- nummers
- Operations
- organisaties
- beleidsmaatregelen
- Python
- real-time
- Resources
- antwoord
- Resultaten
- beoordelen
- reglement
- lopen
- lopend
- Scale
- SEC
- -Series
- Diensten
- reeks
- Maat
- So
- Software
- software engineering
- Oplossingen
- OPLOSSEN
- specialiseert
- spleet
- gestart
- Land
- Staten
- steel
- Student
- geslaagd
- steunen
- Stap over voor slechts
- belasting
- Technisch
- proef
- De grafiek
- niet de tijd of
- Trainingen
- Transformatie
- United
- Verenigde Staten
- universiteit-
- URI
- Verificatie
- visie
- WIE
- Mijn werk
- workflow
- X