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.
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.
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.
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.
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.
Følgende diagram illustrerer den fulde arkitektur.
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:
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:
Byg og implementer løsningen:
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:
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:
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 (underbucket
) og nøglen (underkey
) 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:
Dette vil starte en kørsel af statsmaskinen. Du kan overvåge statusmaskinens fremskridt på Step Functions-konsollen. Følgende diagram illustrerer tilstandsmaskinens arbejdsgang.
Når tilstandsmaskinen er færdig, skal du gøre følgende:
- Undersøg følgende udgange, der er gemt i
prelabeling/
mappe afcomprehend-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
- Individuelle anmærkningsfiler for hver side af dokumenterne (én pr. side pr. dokument) i
- 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:
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
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.
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.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/automate-pdf-pre-labeling-for-amazon-comprehend/
- :har
- :er
- :ikke
- $OP
- 100
- 11
- 150
- 152
- 19
- 400
- 500
- 600
- 7
- 804
- 9
- a
- Om
- over
- fremskynde
- tilgængelig
- præcis
- Yderligere
- adresse
- adresser
- Efter
- AI
- algoritme
- Alle
- tillade
- tillader
- allerede
- også
- Amazon
- Amazon Comprehend
- Amazon SageMaker
- Amazon SageMaker Ground Truth
- Amazon Web Services
- an
- ,
- enhver
- API'er
- vises
- Anvendelse
- anvendt
- arkitektur
- ER
- omkring
- AS
- At
- vedhæfte
- automatisere
- automatisk
- til rådighed
- undgå
- AWS
- Bank
- BE
- været
- før
- bag
- mellem
- både
- kasser
- Bygning
- bygget
- virksomhed
- men
- by
- beregner
- CAN
- center
- afgifter
- kode
- KOM
- kombinationer
- Virksomheder
- sammenligne
- fuldføre
- forstå
- består
- Konsol
- konstruere
- indeholder
- indeholder
- Tilsvarende
- svarer
- skabe
- oprettet
- skaber
- Oprettelse af
- Nuværende
- skik
- Kunder
- data
- Dato
- falder
- dyb
- dyb læring
- definere
- demo
- indsætte
- indsat
- udlede
- detaljer
- forskellige
- direkte
- diskutere
- vises
- dykning
- do
- dokumentet
- dokumenter
- doe
- domæne
- færdig
- tegne
- hver
- indsats
- muliggør
- muliggør
- enheder
- enhed
- ERP
- Endog
- NOGENSINDE
- eksempel
- eksempler
- eksisterende
- forventet
- udvider
- ekstern
- ekstrakt
- FAQ
- File (Felt)
- Filer
- Finde
- Fornavn
- Fleksibilitet
- efter
- Til
- format
- Framework
- frisk
- fra
- fuld
- funktionaliteter
- funktioner
- generere
- genererer
- generative
- Generativ AI
- Give
- Ground
- Have
- he
- historisk
- Hvordan
- How To
- Men
- HTML
- http
- HTTPS
- menneskelig
- identisk
- if
- ignorere
- illustrerer
- gennemføre
- in
- omfatter
- omfatter
- oplysninger
- Infrastruktur
- initial
- Innovation
- innovativ
- indgang
- indgange
- indsigt
- i stedet
- anvisninger
- interesse
- ind
- IT
- ITS
- jane
- Job
- Karriere
- jpg
- json
- holde
- Nøgle
- nøgler
- Kend
- etiket
- mærkning
- senere
- læring
- ligesom
- Liste
- Børsnoterede
- lokale
- placering
- leder
- UDSEENDE
- maskine
- machine learning
- Main
- lave
- maerker
- manuel
- manuelt arbejde
- manuelt
- Maps
- Match
- tændstikker
- matchende
- nævnte
- model
- modeller
- Overvåg
- mere
- mest
- flere
- navn
- Som hedder
- navne
- nødvendigvis
- Behov
- behov
- Ny
- NLP
- ingen
- Bemærk
- notesbog
- numre
- of
- on
- ONE
- kun
- åbent
- open source
- or
- orkestreret
- output
- udgange
- uden for
- outsource
- oversigt
- side
- par
- parametre
- del
- lidenskabelige
- per
- person,
- plato
- Platon Data Intelligence
- PlatoData
- mulig
- Indlæg
- vigtigste
- Forbered
- forberede
- forhindre
- tidligere
- tidligere
- private
- problemer
- behandle
- forarbejdning
- Progress
- give
- forudsat
- giver
- offentlige
- Python
- hurtigt
- anerkendelse
- reducere
- reducerer
- henvise
- repetitiv
- Repository
- påkrævet
- Kræver
- Ressourcer
- gennemgå
- Kør
- kører
- sagemaker
- Sam
- sap
- gemt
- Videnskab
- Videnskabsmand
- Anden
- Sektion
- sektioner
- se
- Serverless
- tjeneste
- Tjenester
- indstilling
- bør
- Vis
- vist
- Shows
- betydeligt
- lignende
- Simpelt
- løsninger
- nogle
- Kilde
- specifikke
- stable
- starte
- Starter
- Tilstand
- udsagn
- Trin
- Steps
- opbevaring
- Streng
- String
- sådan
- Systemer
- skræddersyet
- tager
- teknik
- teknikker
- skabelon
- prøve
- tekst
- tekstmæssige
- end
- at
- Staten
- deres
- Them
- derefter
- teori
- Der.
- derfor
- Disse
- ting
- denne
- tærskel
- Gennem
- tidskrævende
- til
- værktøj
- top
- Tog
- Kurser
- Tendenser
- Sandheden
- to
- typen
- typer
- typisk
- ui
- under
- enestående
- låse
- brug
- anvendte
- bruger
- ved brug af
- værdi
- versioner
- gå
- ønsker
- var
- Vej..
- we
- web
- webservices
- GODT
- Hvad
- Hvad er
- hvornår
- som
- Hele
- Wikipedia
- vilje
- med
- uden
- ord
- Arbejde
- workflow
- Workforce
- skrivning
- Forkert
- Du
- Din
- zephyrnet
- Zip