Automatiser PDF-forhåndsmerking for Amazon Comprehend | Amazon Web Services

Automatiser PDF-forhåndsmerking for Amazon Comprehend | Amazon Web Services

Amazon Comprehend er en NLP-tjeneste (natural-language processing) som gir forhåndstrente og tilpassede APIer for å hente innsikt fra tekstdata. Amazon Comprehend-kunder kan trene tilpassede modeller for navngitt enhetsgjenkjenning (NER) for å trekke ut entiteter av interesse, for eksempel sted, personnavn og dato, som er unike for virksomheten deres.

For å trene en egendefinert modell, forbereder du først treningsdata ved å manuelt kommentere enheter i dokumenter. Dette kan gjøres med Forstå merknadsverktøy for halvstrukturerte dokumenter, som skaper en Amazon SageMaker Ground Truth jobb med en tilpasset mal, slik at annotatorer kan tegne avgrensende bokser rundt enhetene direkte på PDF-dokumentene. Men for selskaper med eksisterende tabellformede enhetsdata i ERP-systemer som SAP, kan manuell merknad være repeterende og tidkrevende.

For å redusere innsatsen med å utarbeide treningsdata, bygde vi et forhåndsmerkingsverktøy ved hjelp av AWS trinnfunksjoner som automatisk forhåndsannoterer dokumenter ved å bruke eksisterende tabellformede enhetsdata. Dette reduserer det manuelle arbeidet som trengs for å trene nøyaktige tilpassede enhetsgjenkjenningsmodeller i Amazon Comprehend.

I dette innlegget leder vi deg gjennom trinnene for å sette opp forhåndsmerkingsverktøyet og viser eksempler på hvordan det automatisk merker dokumenter fra en offentlig datasett eksempler på kontoutskrifter i PDF-format. Hele koden er tilgjengelig på GitHub repo.

Løsningsoversikt

I denne delen diskuterer vi inngangene og utgangene til forhåndsmerkingsverktøyet og gir en oversikt over løsningsarkitekturen.

Innganger og utganger

Som input tar forhåndsmerkingsverktøyet PDF-dokumenter som inneholder tekst som skal kommenteres. For demoen bruker vi simulerte kontoutskrifter som følgende eksempel.

Automatiser PDF-forhåndsmerking for Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Verktøyet tar også en manifestfil som kartlegger PDF-dokumenter med enhetene vi ønsker å trekke ut fra disse dokumentene. Entiteter består av to ting: expected_text å trekke ut fra dokumentet (f.eks. AnyCompany Bank) og tilsvarende entity_type (for eksempel, bank_name). Senere i dette innlegget viser vi hvordan du konstruerer denne manifestfilen fra et CSV-dokument som følgende eksempel.

Automatiser PDF-forhåndsmerking for Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Forhåndsmerkingsverktøyet bruker manifestfilen til automatisk å kommentere dokumentene med tilhørende enheter. Vi kan deretter bruke disse merknadene direkte til å trene opp en Amazon Comprehend-modell.

Alternativt kan du opprette en SageMaker Ground Truth-merkejobb for menneskelig gjennomgang og redigering, som vist i følgende skjermbilde.

Automatiser PDF-forhåndsmerking for Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Når gjennomgangen er fullført, kan du bruke de kommenterte dataene til å trene opp en Amazon Comprehend tilpasset enhetsgjenkjenningsmodell.

arkitektur

Forhåndsmerkingsverktøyet består av flere AWS Lambda funksjoner orkestrert av en Step Functions-tilstandsmaskin. Den har to versjoner som bruker forskjellige teknikker for å generere forhåndskommentarer.

Den første teknikken er uklar matchning. Dette krever en forhåndsmanifestfil med forventede enheter. Verktøyet bruker fuzzy matching-algoritmen for å generere forhåndskommentarer ved å sammenligne tekstlikhet.

Fuzzy matching ser etter strenger i dokumentet som ligner (men ikke nødvendigvis identiske) med de forventede enhetene som er oppført i pre-manifestfilen. Den beregner først tekstlikhetspoeng mellom den forventede teksten og ordene i dokumentet, deretter samsvarer den med alle parene over en terskel. Derfor, selv om det ikke er eksakte samsvar, kan uklar samsvar finne varianter som forkortelser og feilstavinger. Dette gjør at verktøyet kan forhåndsmerke dokumenter uten at enhetene må vises ordrett. For eksempel hvis 'AnyCompany Bank' er oppført som en forventet enhet, vil Fuzzy Matching kommentere forekomster av 'Any Companys Bank'. Dette gir mer fleksibilitet enn streng samsvaring og gjør det mulig for forhåndsmerkingsverktøyet å automatisk merke flere enheter.

Følgende diagram illustrerer arkitekturen til denne Step Functions-tilstandsmaskinen.

Automatiser PDF-forhåndsmerking for Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Den andre teknikken krever en forhåndsopplært Amazon Comprehend enhetsgjenkjenningsmodell. Verktøyet genererer forhåndskommentarer ved å bruke Amazon Comprehend-modellen, etter arbeidsflyten vist i følgende diagram.

Automatiser PDF-forhåndsmerking for Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Følgende diagram illustrerer hele arkitekturen.

Automatiser PDF-forhåndsmerking for Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

I de følgende avsnittene går vi gjennom trinnene for å implementere løsningen.

Implementer forhåndsmerkingsverktøyet

Klon depotet til din lokale maskin:

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

Dette depotet er bygget på toppen av Comprehend Semi-Structured Documents Annotation Tool og utvider funksjonaliteten ved å gjøre det mulig for deg å starte en SageMaker Ground Truth-merkejobb med forhåndsannoteringer som allerede er vist på SageMaker Ground Truth UI.

Forhåndsmerkingsverktøyet inkluderer både Comprehend Semi-Structured Documents Annotation Tool-ressurser så vel som noen ressurser som er spesifikke for forhåndsmerkingsverktøyet. Du kan distribuere løsningen med AWS-serverløs applikasjonsmodell (AWS SAM), et rammeverk med åpen kildekode som du kan bruke til å definere serverløs applikasjonsinfrastrukturkode.

Hvis du tidligere har distribuert Comprehend Semi-Structured Documents Annotation Tool, se FAQ-delen i Pre_labeling_tool/README.md for instruksjoner om hvordan du bare distribuerer ressursene som er spesifikke for forhåndsmerkingsverktøyet.

Hvis du ikke har distribuert verktøyet før og begynner på nytt, gjør du følgende for å distribuere hele løsningen.

Endre gjeldende katalog til mappen for kommentarverktøy:

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

Bygg og distribuer løsningen:

make ready-and-deploy-guided

Lag pre-manifest-filen

Før du kan bruke forhåndsmerkingsverktøyet, må du forberede dataene dine. Hovedinngangene er PDF-dokumenter og en forhåndsmanifestfil. Førmanifestfilen inneholder plasseringen til hvert PDF-dokument under 'pdf' og plasseringen av en JSON-fil med forventede enheter å merke under 'expected_entities'.

Notatboken generere_premanifest_fil.ipynb viser hvordan du oppretter denne filen. I demoen viser pre-manifestfilen følgende kode:

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

Hver JSON-fil som er oppført i forhåndsmanifestfilen (under expected_entities) inneholder en liste over ordbøker, en for hver forventet enhet. Ordbøkene har følgende nøkler:

  • «forventede_tekster» – En liste over mulige tekststrenger som samsvarer med enheten.
  • «entity_type» – Den tilsvarende enhetstypen.
  • «ignore_list» (valgfritt) – Listen over ord som bør ignoreres i kampen. Disse parameterne bør brukes for å forhindre uklar samsvar fra å matche spesifikke kombinasjoner av ord som du vet er feil. Dette kan være nyttig hvis du vil ignorere noen tall eller e-postadresser når du ser på navn.

For eksempel expected_entities av PDF-en vist tidligere ser slik ut:

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

Kjør forhåndsmerkingsverktøyet

Med forhåndsmanifestfilen du opprettet i forrige trinn, start å kjøre forhåndsmerkingsverktøyet. For flere detaljer, se den bærbare datamaskinen start_step_functions.ipynb.

For å starte forhåndsmerkingsverktøyet, oppgi en event med følgende taster:

  • Premanifest – Tilordner hvert PDF-dokument til sitt expected_entities fil. Dette bør inneholde Amazon enkel lagringstjeneste (Amazon S3) bøtte (under bucket) og nøkkelen (under key) av filen.
  • Prefix – Brukes til å lage execution_id, som navngir S3-mappen for utdatalagring og SageMaker Ground Truth-merkejobbnavnet.
  • enhetstyper – Vises i brukergrensesnittet for annotatorer å merke. Disse bør inkludere alle enhetstyper i de forventede enhetsfilene.
  • work_team_name (valgfritt) – Brukes til å lage SageMaker Ground Truth-merkejobben. Det tilsvarer den private arbeidsstyrken som skal brukes. Hvis den ikke er oppgitt, opprettes bare en manifestfil i stedet for en SageMaker Ground Truth-merkejobb. Du kan bruke manifestfilen til å lage en SageMaker Ground Truth-merkejobb senere. Merk at når dette skrives, kan du ikke skaffe en ekstern arbeidsstyrke når du oppretter merkejobben fra notatboken. Du kan imidlertid klone den opprettede jobben og tilordne den til en ekstern arbeidsstyrke på SageMaker Ground Truth-konsollen.
  • forstå_parametere (valgfritt) – Parametre for å direkte trene en Amazon Comprehend tilpasset enhetsgjenkjenningsmodell. Hvis det utelates, vil dette trinnet bli hoppet over.

For å starte tilstandsmaskinen, kjør følgende Python-kode:

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

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

Dette vil starte en kjøring av statsmaskinen. Du kan overvåke fremdriften til tilstandsmaskinen på Step Functions-konsollen. Følgende diagram illustrerer arbeidsflyten for tilstandsmaskinen.

Automatiser PDF-forhåndsmerking for Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Når tilstandsmaskinen er fullført, gjør du følgende:

  • Inspiser følgende utganger som er lagret i prelabeling/ mappen til comprehend-semi-structured-docs S3 bøtte:
    • Individuelle merknadsfiler for hver side av dokumentene (én per side per dokument) i temp_individual_manifests/
    • Et manifest for SageMaker Ground Truth-merkejobben i consolidated_manifest/consolidated_manifest.manifest
    • Et manifest som kan brukes til å trene en tilpasset Amazon Comprehend-modell i consolidated_manifest/consolidated_manifest_comprehend.manifest
  • På SageMaker-konsollen åpner du SageMaker Ground Truth-merkejobben som ble opprettet for å gjennomgå merknadene
  • Inspiser og test den tilpassede Amazon Comprehend-modellen som ble opplært

Som nevnt tidligere, kan verktøyet bare opprette SageMaker Ground Truth-merkejobber for private arbeidsstyrker. For å outsource den menneskelige merkingsinnsatsen, kan du klone merkejobben på SageMaker Ground Truth-konsollen og knytte enhver arbeidsstyrke til den nye jobben.

Rydd opp

For å unngå ekstra kostnader, slett ressursene du opprettet og slett stabelen du distribuerte med følgende kommando:

make delete

konklusjonen

Forhåndsmerkingsverktøyet gir bedrifter en kraftig måte å bruke eksisterende tabelldata for å akselerere prosessen med å trene tilpassede enhetsgjenkjenningsmodeller i Amazon Comprehend. Ved å automatisk forhåndsannotere PDF-dokumenter, reduserer det den manuelle innsatsen som kreves i merkeprosessen betraktelig.

Verktøyet har to versjoner: fuzzy matching og Amazon Comprehend-basert, noe som gir fleksibilitet med hensyn til hvordan du genererer de første merknadene. Etter at dokumentene er forhåndsmerket, kan du raskt gjennomgå dem i en SageMaker Ground Truth-merkejobb eller til og med hoppe over gjennomgangen og direkte lære opp en tilpasset Amazon Comprehend-modell.

Forhåndsmerkingsverktøyet lar deg raskt låse opp verdien av dine historiske enhetsdata og bruke dem til å lage tilpassede modeller skreddersydd for ditt spesifikke domene. Ved å fremskynde det som vanligvis er den mest arbeidskrevende delen av prosessen, gjør det tilpasset enhetsgjenkjenning med Amazon Comprehend mer tilgjengelig enn noen gang.

For mer informasjon om hvordan du merker PDF-dokumenter ved å bruke en SageMaker Ground Truth-merkejobb, se Egendefinert dokumentanmerkning for å trekke ut navngitte enheter i dokumenter ved hjelp av Amazon Comprehend og Bruk Amazon SageMaker Ground Truth til å merke data.


Om forfatterne

Automatiser PDF-forhåndsmerking for Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Oskar Schnaack er en Applied Scientist ved Generative AI Innovation Center. Han brenner for å dykke ned i vitenskapen bak maskinlæring for å gjøre den tilgjengelig for kundene. Utenom jobben liker Oskar å sykle og følge med på trender innen informasjonsteori.

Automatiser PDF-forhåndsmerking for Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Romain Besombes er en Deep Learning Architect ved Generative AI Innovation Center. Han brenner for å bygge innovative arkitekturer for å løse kundenes forretningsproblemer med maskinlæring.

Tidstempel:

Mer fra AWS maskinlæring