Automatiser PDF-præ-mærkning til Amazon Comprehend | Amazon Web Services

Automatiser PDF-præ-mærkning til Amazon Comprehend | Amazon Web Services

Amazon Comprehend er en NLP-tjeneste (natural-language processing), der giver forudtrænede og tilpassede API'er til at udlede indsigt fra tekstdata. Amazon Comprehend-kunder kan træne tilpassede navngivne entitetsgenkendelsesmodeller (NER) til at udtrække enheder af interesse, såsom placering, personnavn og dato, der er unikke for deres virksomhed.

For at træne en brugerdefineret model skal du først forberede træningsdata ved manuelt at annotere enheder i dokumenter. Dette kan gøres med Forstå semi-strukturerede dokumenter Annotationsværktøj, som skaber en Amazon SageMaker Ground Truth job med en brugerdefineret skabelon, der giver annotatorer mulighed for at tegne afgrænsningsrammer rundt om enheder direkte på PDF-dokumenterne. Men for virksomheder med eksisterende tabelformede enhedsdata i ERP-systemer som SAP, kan manuel annotering være gentagne og tidskrævende.

For at reducere indsatsen med at forberede træningsdata byggede vi et præ-mærkningsværktøj vha AWS-trinfunktioner der automatisk pre-annoterer dokumenter ved at bruge eksisterende tabelformede enhedsdata. Dette reducerer markant det manuelle arbejde, der er nødvendigt for at træne nøjagtige tilpassede enhedsgenkendelsesmodeller i Amazon Comprehend.

I dette indlæg fører vi dig gennem trinene til opsætning af præ-mærkningsværktøjet og viser eksempler på, hvordan det automatisk annoterer dokumenter fra en offentlig datasæt af eksempler på kontoudtog i PDF-format. Den fulde kode er tilgængelig på GitHub repo.

Løsningsoversigt

I dette afsnit diskuterer vi input og output fra præ-mærkningsværktøjet og giver et overblik over løsningsarkitekturen.

Indgange og udgange

Som input tager præ-mærkningsværktøjet PDF-dokumenter, der indeholder tekst, der skal kommenteres. Til demoen bruger vi simulerede kontoudtog som det følgende eksempel.

Automatiser PDF-præ-mærkning til Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Værktøjet tager også en manifestfil, der kortlægger PDF-dokumenter med de enheder, som vi ønsker at udtrække fra disse dokumenter. Enheder består af to ting: expected_text at udtrække fra dokumentet (f.eks. AnyCompany Bank) og de tilsvarende entity_type (for eksempel, bank_name). Senere i dette indlæg viser vi, hvordan man konstruerer denne manifestfil fra et CSV-dokument som det følgende eksempel.

Automatiser PDF-præ-mærkning til Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Værktøjet til forhåndsmærkning bruger manifestfilen til automatisk at annotere dokumenterne med deres tilsvarende enheder. Vi kan derefter bruge disse annoteringer direkte til at træne en Amazon Comprehend-model.

Alternativt kan du oprette et SageMaker Ground Truth-mærkningsjob til menneskelig gennemgang og redigering, som vist på det følgende skærmbillede.

Automatiser PDF-præ-mærkning til Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Når gennemgangen er fuldført, kan du bruge de kommenterede data til at træne en Amazon Comprehend brugerdefineret enhedsgenkendelsesmodel.

arkitektur

Formærkningsværktøjet består af flere AWS Lambda funktioner orkestreret af en Step Functions-tilstandsmaskine. Den har to versioner, der bruger forskellige teknikker til at generere præ-annoteringer.

Den første teknik er uklar matchning. Dette kræver en pre-manifest fil med forventede enheder. Værktøjet bruger fuzzy matching-algoritmen til at generere præ-annoteringer ved at sammenligne tekstlighed.

Fuzzy matching leder efter strenge i dokumentet, der ligner (men ikke nødvendigvis identiske) med de forventede enheder, der er angivet i pre-manifest-filen. Den beregner først tekstlighedsscore mellem den forventede tekst og ord i dokumentet, derefter matcher den alle par over en tærskel. Derfor, selvom der ikke er nøjagtige matchninger, kan fuzzy matching finde varianter som forkortelser og stavefejl. Dette gør det muligt for værktøjet at præmærke dokumenter uden at kræve, at enhederne skal fremstå ordret. For eksempel hvis 'AnyCompany Bank' er opført som en forventet enhed, vil Fuzzy Matching annotere forekomster af 'Any Companys Bank'. Dette giver mere fleksibilitet end streng strengmatchning og gør det muligt for præ-mærkningsværktøjet automatisk at mærke flere enheder.

Følgende diagram illustrerer arkitekturen af ​​denne Step Functions-tilstandsmaskine.

Automatiser PDF-præ-mærkning til Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Den anden teknik kræver en præ-trænet Amazon Comprehend enhedsgenkendelsesmodel. Værktøjet genererer præ-annoteringer ved hjælp af Amazon Comprehend-modellen efter arbejdsgangen vist i følgende diagram.

Automatiser PDF-præ-mærkning til Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Følgende diagram illustrerer den fulde arkitektur.

Automatiser PDF-præ-mærkning til Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

I de følgende afsnit gennemgår vi trinene for at implementere løsningen.

Implementer præ-mærkningsværktøjet

Klon lageret til din lokale maskine:

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

Dette lager er bygget oven på Comprehend Semi-Structured Documents Annotation Tool og udvider dets funktionaliteter ved at gøre det muligt for dig at starte et SageMaker Ground Truth-mærkningsjob med præ-annoteringer, der allerede er vist på SageMaker Ground Truth UI.

Værktøjet til præ-mærkning inkluderer både Comprehend Semi-Structured Documents Annotation Tool-ressourcer såvel som nogle ressourcer, der er specifikke for præ-mærkningsværktøjet. Du kan implementere løsningen med AWS serverløs applikationsmodel (AWS SAM), en open source-ramme, som du kan bruge til at definere serverløs applikationsinfrastrukturkode.

Hvis du tidligere har implementeret Comprehend Semi-Structured Documents Annotation Tool, henvises til afsnittet FAQ i Pre_labeling_tool/README.md for instruktioner om, hvordan man kun implementerer de ressourcer, der er specifikke for præ-mærkningsværktøjet.

Hvis du ikke har implementeret værktøjet før og begynder på en frisk, skal du gøre følgende for at implementere hele løsningen.

Skift den aktuelle mappe til annotationsværktøjsmappen:

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

Byg og implementer løsningen:

make ready-and-deploy-guided

Opret pre-manifest-filen

Før du kan bruge præ-mærkningsværktøjet, skal du forberede dine data. De vigtigste input er PDF-dokumenter og en pre-manifest fil. Formanifestfilen indeholder placeringen af ​​hvert PDF-dokument under 'pdf' og placeringen af ​​en JSON-fil med forventede enheder at mærke under 'expected_entities'.

Notesbogen generere_præmanifest_fil.ipynb viser, hvordan du opretter denne fil. I demoen viser pre-manifest-filen 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, der er angivet i pre-manifest-filen (under expected_entities) indeholder en liste over ordbøger, en for hver forventet enhed. Ordbøgerne har følgende nøgler:

  • 'forventede_tekster' – En liste over mulige tekststrenge, der matcher objektet.
  • 'entity_type' – Den tilsvarende enhedstype.
  • 'ignore_list' (valgfrit) – Listen over ord, der skal ignoreres i kampen. Disse parametre bør bruges til at forhindre fuzzy matching i at matche specifikke kombinationer af ord, som du ved er forkerte. Dette kan være nyttigt, hvis du vil ignorere nogle numre eller e-mailadresser, når du ser på navne.

For eksempel expected_entities af den tidligere viste PDF ser sådan ud:

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

Kør præ-mærkningsværktøjet

Med pre-manifest-filen, som du oprettede i det forrige trin, skal du begynde at køre præ-mærkningsværktøjet. For flere detaljer henvises til notesbogen start_step_functions.ipynb.

For at starte præ-mærkningsværktøjet skal du angive en event med følgende taster:

  • Præmanifest – Knytter hvert PDF-dokument til dets expected_entities fil. Dette bør indeholde Amazon Simple Storage Service (Amazon S3) spand (under bucket) og nøglen (under key) af filen.
  • Præfiks – Bruges til at skabe execution_id, som navngiver S3-mappen til outputlagring og SageMaker Ground Truth-mærkningsjobnavnet.
  • enhedstyper – Vises i brugergrænsefladen, så annotatorer kan mærke dem. Disse bør inkludere alle enhedstyper i de forventede enhedsfiler.
  • work_team_name (valgfrit) – Bruges til at skabe SageMaker Ground Truth-mærkningsjobbet. Det svarer til den private arbejdsstyrke at bruge. Hvis den ikke leveres, vil der kun blive oprettet en manifestfil i stedet for et SageMaker Ground Truth-mærkejob. Du kan bruge manifestfilen til at oprette et SageMaker Ground Truth-mærkningsjob senere. Bemærk, at når dette skrives, kan du ikke stille en ekstern arbejdsstyrke til rådighed, når du opretter etiketteringsjobbet fra notesbogen. Du kan dog klone det oprettede job og tildele det til en ekstern arbejdsstyrke på SageMaker Ground Truth-konsollen.
  • forstå_parametre (valgfrit) – Parametre til direkte at træne en Amazon Comprehend brugerdefineret enhedsgenkendelsesmodel. Hvis det udelades, springes dette trin over.

For at starte tilstandsmaskinen skal du køre 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 kørsel af statsmaskinen. Du kan overvåge statusmaskinens fremskridt på Step Functions-konsollen. Følgende diagram illustrerer tilstandsmaskinens arbejdsgang.

Automatiser PDF-præ-mærkning til Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Når tilstandsmaskinen er færdig, skal du gøre følgende:

  • Undersøg følgende udgange, der er gemt i prelabeling/ mappe af comprehend-semi-structured-docs S3 spand:
    • Individuelle anmærkningsfiler for hver side af dokumenterne (én pr. side pr. dokument) i temp_individual_manifests/
    • Et manifest for SageMaker Ground Truth-mærkejobbet i consolidated_manifest/consolidated_manifest.manifest
    • Et manifest, der kan bruges til at træne en tilpasset Amazon Comprehend-model i consolidated_manifest/consolidated_manifest_comprehend.manifest
  • På SageMaker-konsollen skal du åbne SageMaker Ground Truth-mærkejobbet, der blev oprettet for at gennemgå annoteringerne
  • Undersøg og test den tilpassede Amazon Comprehend-model, der blev trænet

Som tidligere nævnt kan værktøjet kun skabe SageMaker Ground Truth-mærkningsjob til private arbejdsstyrker. For at outsource den menneskelige mærkningsindsats kan du klone mærkningsjobbet på SageMaker Ground Truth-konsollen og knytte enhver arbejdsstyrke til det nye job.

Ryd op

For at undgå at pådrage sig yderligere gebyrer skal du slette de ressourcer, du har oprettet, og slette den stak, du implementerede med følgende kommando:

make delete

Konklusion

Pre-labeling-værktøjet giver en effektiv måde for virksomheder at bruge eksisterende tabeldata til at accelerere processen med at træne tilpassede enhedsgenkendelsesmodeller i Amazon Comprehend. Ved automatisk forudannotering af PDF-dokumenter reducerer det den manuelle indsats, der kræves i etiketteringsprocessen.

Værktøjet har to versioner: fuzzy matching og Amazon Comprehend-baseret, hvilket giver fleksibilitet til at generere de indledende annoteringer. Når dokumenter er præ-mærket, kan du hurtigt gennemgå dem i et SageMaker Ground Truth-mærkningsjob eller endda springe gennemgangen over og direkte træne en tilpasset Amazon Comprehend-model.

Værktøjet til præmærkning giver dig mulighed for hurtigt at låse op for værdien af ​​dine historiske enhedsdata og bruge dem til at skabe tilpassede modeller, der er skræddersyet til dit specifikke domæne. Ved at fremskynde, hvad der typisk er den mest arbejdskrævende del af processen, gør det tilpasset enhedsgenkendelse med Amazon Comprehend mere tilgængelig end nogensinde.

For mere information om, hvordan man mærker PDF-dokumenter ved hjælp af et SageMaker Ground Truth-mærkningsjob, se Brugerdefineret dokumentanmærkning til at udtrække navngivne enheder i dokumenter ved hjælp af Amazon Comprehend , Brug Amazon SageMaker Ground Truth til at mærke data.


Om forfatterne

Automatiser PDF-præ-mærkning til Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Oskar Schnaack er en anvendt videnskabsmand ved Generative AI Innovation Center. Han brænder for at dykke ned i videnskaben bag maskinlæring for at gøre den tilgængelig for kunderne. Uden for arbejdet nyder Oskar at cykle og følge med i trends inden for informationsteori.

Automatiser PDF-præ-mærkning til Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Romain Besombes er Deep Learning Architect ved Generative AI Innovation Center. Han brænder for at bygge innovative arkitekturer for at løse kundernes forretningsproblemer med maskinlæring.

Tidsstempel:

Mere fra AWS maskinindlæring