Wat is documentverwerking?
Documentverwerking is het proces waarbij de extractie van gestructureerde gegevens uit documenten wordt geautomatiseerd. Dit kan voor elk document zijn, bijvoorbeeld een factuur, een cv, identiteitskaarten, enz. Het uitdagende gedeelte hier is niet alleen de OCR. Er zijn veel opties beschikbaar tegen lage kosten waarmee u tekst kunt extraheren en u de locatie kunt geven. De echte uitdaging is het nauwkeurig en automatisch labelen van deze stukjes tekst.
Zakelijke impact van documentverwerking
Verschillende industrieรซn zijn voor hun dagelijkse activiteiten sterk afhankelijk van documentverwerking. Financiรซle organisaties hebben toegang nodig tot SEC-documenten, verzekeringsdossiers, een e-commerce- of supply chain-bedrijf heeft mogelijk toegang nodig tot facturen die worden gebruikt, de lijst gaat maar door. De nauwkeurigheid van deze informatie is net zo belangrijk als de tijd die wordt bespaard. Daarom raden we altijd aan geavanceerde deep learning-methoden te gebruiken die meer generaliseren en nauwkeuriger zijn.
Volgens dit rapport van PwC [link] zelfs de meest rudimentaire hoeveelheid gestructureerde gegevensextractie kan helpen 30-50% van de tijd die werknemers besteden aan het handmatig kopiรซren en plakken van gegevens uit PDF's naar Excel-spreadsheets te besparen. Modellen als LayoutLM zijn zeker niet rudimentair, ze zijn gebouwd als uiterst intelligente agenten die in staat zijn tot nauwkeurige data-extractie op schaal, voor verschillende gebruiksscenario's. Zelfs bij veel van onze eigen klanten hebben we de downtime die nodig is om gegevens handmatig te extraheren teruggebracht van 20 minuten per document naar minder dan 10 seconden. Dat is een enorme verschuiving, waardoor werknemers productiever kunnen zijn en in het algemeen een hogere doorvoer kunnen realiseren.
Waar kan AI, vergelijkbaar met LayoutLM, worden toegepast? Bij Nanonets hebben we dergelijke technologie gebruikt
- Automatisering van de factuurverwerking
- Extractie van tabelgegevens
- Formuliergegevensextractie
- Hervatten parseren
en vele andere gebruiksscenario's.
Waarom LayoutLM?
Hoe begrijpt een deep learning-model of een bepaald stuk tekst een artikelbeschrijving op een factuur is, of het factuurnummer? Simpel gezegd: hoe leert een model labels correct toe te wijzen?
Eรฉn methode is om tekstinsluitingen uit een groot taalmodel zoals BERT of GPT-3 te gebruiken en deze door een classificatie te laten lopen โ hoewel dit niet erg effectief is. Er is veel informatie die je niet louter met behulp van tekst kunt peilen. Of u kunt gebruik maken van op afbeeldingen gebaseerde informatie. Dit werd bereikt door gebruik te maken van R-CNN- en Faster R-CNN-modellen. Hierbij wordt echter nog steeds niet volledig gebruik gemaakt van de informatie die beschikbaar is in de documenten. Een andere benadering die werd gebruikt, was die van Graph Convolutional Neural Networks, die zowel locatie- als tekstuele informatie combineerde, maar geen rekening hield met beeldinformatie.
Dus hoe gebruiken we alle drie de dimensies van informatie, dat wil zeggen de tekst, het beeld en de locatie van de gegeven tekst? Dat is waar modellen als LayoutLM om de hoek komen kijken. Ondanks dat het al vele jaren een actief onderzoeksgebied was, was LayoutLM een van de eerste modellen die succes boekte door de onderdelen te combineren om een โโenkelvoudig model te creรซren dat labeling uitvoert met behulp van positionele informatie, op tekst gebaseerde informatie, en ook beeldinformatie.
LayoutLM-zelfstudie
In dit artikel wordt ervan uitgegaan dat u begrijpt wat een taalmodel is. Zo niet, maak je geen zorgen, wij hebben daar ook een artikel over geschreven! Als je meer wilt weten over wat transformatormodellen zijn en wat aandacht is, kun je hier terecht is een geweldig artikel van Jay Alammar.
Ervan uitgaande dat we deze dingen uit de weg hebben geruimd, gaan we aan de slag met de tutorial. We zullen het originele LayoutLM-papier als belangrijkste referentie gebruiken.
OCR-tekstextractie
Het allereerste dat we met een document doen, is de op tekst gebaseerde informatie uit het document halen en hun respectievelijke locaties vinden. Per locatie verwijzen we naar iets dat een 'bounding box' wordt genoemd. Een selectiekader is een rechthoek die het stuk tekst op de pagina omsluit.
In de meeste gevallen wordt aangenomen dat het selectiekader de oorsprong in de linkerbovenhoek heeft, en dat de positieve x-as van de oorsprong naar de rechterkant van de pagina is gericht, en de positieve y-as van de oorsprong naar onderaan de pagina, waarbij รฉรฉn pixel als meeteenheid wordt beschouwd.
Taal- en locatie-inbedding
Vervolgens maken we gebruik van vijf verschillende inbeddingslagen. Eรฉn daarvan is het coderen van taalgerelateerde informatie, dat wil zeggen tekstinsluitingen.
De andere vier zijn gereserveerd voor locatie-inbedding. Ervan uitgaande dat we de waarden van xmin, ymin, xmax en ymax kennen, kunnen we het hele selectiekader bepalen (als je het niet kunt visualiseren, hier is een link voor jou). Deze coรถrdinaten worden door hun respectievelijke inbeddingslagen gevoerd om informatie voor de locatie te coderen.
De vijf insluitingen โ รฉรฉn voor tekst en vier voor de coรถrdinaten โ worden vervolgens opgeteld om de uiteindelijke waarde van de insluiting te creรซren die door de LayoutLM wordt doorgegeven. De uitvoer wordt de LayoutLM-inbedding genoemd.
Afbeeldingsinsluitingen
Okรฉ, dus we zijn erin geslaagd de tekst- en locatiegerelateerde informatie te vinden door hun insluitingen te combineren en deze door een taalmodel te sturen. Hoe omzeilen we nu het proces van het combineren van beeldgerelateerde informatie daarin?
Terwijl de tekst- en lay-outinformatie wordt gecodeerd, gebruiken we tegelijkertijd Faster R-CNN om de tekstgebieden te extraheren die verband houden met het document. Sneller R-CNN is een beeldmodel dat wordt gebruikt voor objectdetectie. In ons geval gebruiken we het om verschillende stukjes tekst te detecteren (ervan uitgaande dat elke zin een object is) en vervolgens de gesegmenteerde afbeeldingen door een volledig verbonden laag te laten gaan om ook inbedding voor de afbeeldingen te helpen genereren.
De LayoutLM-insluitingen en de afbeeldingsinsluitingen worden gecombineerd om een โโdefinitieve insluiting te creรซren, die vervolgens kan worden gebruikt om downstream-verwerking uit te voeren.
Vooropleiding LayoutLM
Al het bovenstaande is alleen zinvol als we de methode begrijpen waarin LayoutLM is getraind. Het maakt immers niet uit wat voor soort verbindingen we tot stand brengen in een neuraal netwerk, tenzij het wordt getraind met het juiste leerdoel, is het niet echt slim. De auteurs van LayoutLM wilden een methode volgen die vergelijkbaar is met wat werd gebruikt voor de pre-training van BERT.
Gemaskeerd visueel taalmodel (MVLM)
Om het model te helpen ontdekken welke tekst er op een bepaalde locatie had kunnen staan, maskeerden de auteurs willekeurig enkele teksttekens, terwijl ze locatiegerelateerde informatie en insluitingen behielden. Hierdoor kon LayoutLM verder gaan dan eenvoudige Masked Language Modeling, en werd het ook geholpen om tekstinsluitingen te associรซren met locatiegerelateerde modaliteiten.
Documentclassificatie met meerdere labels (MDC)
Door alle informatie in het document te gebruiken om het in categorieรซn in te delen, kan het model begrijpen welke informatie relevant is voor een bepaalde klasse documenten. De auteurs merken echter op dat voor grotere datasets gegevens over documentklassen mogelijk niet direct beschikbaar zijn. Daarom hebben ze resultaten geleverd op basis van zowel MVLM-training alleen als MVLM + MDC-training.
LayoutLM nauwkeurig afstemmen voor downstream-taken
Er zijn verschillende downstream-taken die kunnen worden uitgevoerd met LayoutLM. We zullen degenen bespreken die de auteurs hebben ondernomen.
Vorm begrip
Deze taak omvat het koppelen van een labeltype aan een bepaald stuk tekst. Hiermee kunnen we gestructureerde gegevens uit elk soort document extraheren. Gegeven de uiteindelijke uitvoer, dat wil zeggen LayouLM-insluitingen + afbeeldingsinsluitingen, worden ze door een volledig verbonden laag gevoerd en vervolgens door een softmax om de klassenkansen voor het labelen van een bepaald stuk tekst te voorspellen.
Ontvangstbegrip
Bij deze taak werden verschillende informatievakken op bonnen leeg gelaten en moest het model stukjes tekst correct op hun respectievelijke vakken plaatsen.
Classificatie van documentafbeeldingen
Informatie uit de tekst en afbeelding van het document wordt gecombineerd om de klasse van het document te helpen begrijpen door het eenvoudigweg door een softmax-laag te leiden.
Knuffelgezicht LayoutLM
Een van de belangrijkste redenen waarom LayoutLM zo veel besproken wordt, is omdat het model een tijdje geleden open source was. Het is beschikbaar op Knuffelgezicht, dus het gebruik van LayoutLM is nu aanzienlijk eenvoudiger.
Voordat we ingaan op de details van hoe u LayoutLM kunt afstemmen op uw eigen behoeften, zijn er een paar dingen waarmee u rekening moet houden.
Bibliotheken installeren
Om LayoutLM uit te voeren, hebt u de transformersbibliotheek van Hugging Face nodig, die op zijn beurt afhankelijk is van de PyTorch-bibliotheek. Om ze te installeren (indien nog niet geรฏnstalleerd), voert u de volgende opdrachten uit
Op grensvakken
Om een โโuniform inbeddingsschema te creรซren, ongeacht de afbeeldingsgrootte, worden de coรถrdinaten van het selectiekader genormaliseerd op een schaal van 1000
Configuratie
Met behulp van de klasse transformers.LayoutLMConfig kunt u de grootte van het model instellen zodat deze het beste bij uw vereisten past, aangezien deze modellen doorgaans zwaar zijn en behoorlijk wat rekenkracht nodig hebben. Als u het op een kleiner model instelt, kunt u het mogelijk lokaal uitvoeren. Jij kan Lees hier meer over de klas.
LayoutLM voor documentclassificatie (Link)
Als u documentclassificatie wilt uitvoeren, heeft u de klassetransformatoren nodig.LayoutLMForSequenceClassification. De volgorde hier is de volgorde van de tekst uit het document dat u hebt geรซxtraheerd. Hier is een klein codevoorbeeld van Hugging Face.co waarin wordt uitgelegd hoe u het kunt gebruiken
LayoutLM voor tekstlabels (Link)
Om semantische labeling uit te voeren, dwz labels toe te wijzen aan verschillende delen van de tekst in het document, hebt u de klasse transformers nodig.LayoutLMForTokenClassification. Mogelijk vindt u meer details op de hier ookHier is een klein codevoorbeeld om te zien hoe het voor u kan werken
Enkele aandachtspunten bij de lay-out van knuffelgezichtenLM
- Momenteel maakt het Hugging Face LayoutLM-model gebruik van de open source-bibliotheek Tesseract voor tekstextractie, wat niet erg nauwkeurig is. Misschien wilt u overwegen een andere, betaalde OCR-tool te gebruiken, zoals AWS Textract of Google Cloud Vision
- Het bestaande model biedt alleen het taalmodel, dat wil zeggen de LayoutLM-inbedding, en niet de laatste lagen die visuele kenmerken combineren. Lay-outLMv2 (besproken in de volgende sectie) gebruikt de Detectron-bibliotheek om ook het insluiten van visuele functies mogelijk te maken.
- De classificatie van labels vindt plaats op woordniveau, dus het is echt aan de OCR-tekstextractie-engine om ervoor te zorgen dat alle woorden in een veld in een continue volgorde staan, anders kan รฉรฉn veld als twee worden voorspeld.
IndelingLMv2
LayoutLM ontstond als een revolutie in de manier waarop gegevens uit documenten werden gehaald. Wat deep learning-onderzoek betreft, worden modellen echter in de loop van de tijd alleen maar beter. LayoutLM werd op dezelfde manier opgevolgd door LayoutLMv2, waarbij de auteurs een paar belangrijke wijzigingen hebben aangebracht in de manier waarop het model werd getraind.
Inclusief 1D ruimtelijke inbedding en visuele tokeninbedding
LayoutLMv2 bevatte informatie over de relatieve 1D-locatie, evenals algemene beeldgerelateerde informatie. De reden dat dit belangrijk is, is vanwege de nieuwe trainingsdoelstellingen, die we nu zullen bespreken
Nieuwe trainingsdoelstellingen
LayoutLMv2 bevatte enkele aangepaste trainingsdoelstellingen. Deze zijn als volgt:
- Gemaskeerde visuele taalmodellering: dit is hetzelfde als in LayoutLM
- Uitlijning van tekstafbeelding: Tekst werd willekeurig uit de afbeelding bedekt, terwijl de teksttokens aan het model werden verstrekt. Voor elk token moest het model leren of de gegeven tekst al dan niet gedekt was. Hierdoor kon het model informatie uit zowel visuele als tekstuele modaliteiten combineren
- Text Image Matching: Het model wordt gevraagd om te controleren of de gegeven afbeelding overeenkomt met de gegeven tekst. Negatieve monsters worden als valse afbeeldingen ingevoerd of er worden helemaal geen afbeeldingen ingesloten. Dit wordt gedaan om ervoor te zorgen dat het model meer leert over de relatie tussen tekst en afbeeldingen.
Met behulp van deze nieuwe methoden en inbedding kon het model hogere F1-scores behalen op bijna alle testdatasets als LayoutLM.
- Over
- toegang
- Account
- accuraat
- bereikt
- over
- actieve
- vergevorderd
- agenten
- AI
- Alles
- al
- Hoewel
- bedragen
- Nog een
- nadering
- GEBIED
- rond
- dit artikel
- auteurs
- Beschikbaar
- AWS
- basis
- wezen
- BEST
- Beetje
- Box camera's
- Kaarten
- gevallen
- uitdagen
- classificatie
- Cloud
- code
- gecombineerde
- afstand
- Berekenen
- Configuratie
- aansluitingen
- overweging
- Kosten
- kon
- Klanten
- gegevens
- dag
- Niettegenstaande
- Opsporing
- DEED
- anders
- documenten
- beneden
- e-commerce
- effectief
- waardoor
- oprichten
- Excel
- Gezicht
- sneller
- Kenmerk
- Voordelen
- Fed
- financieel
- Voornaam*
- volgend
- voortbrengen
- GitHub
- Kopen Google Reviews
- hulp
- helpt
- hier
- Hoe
- How To
- HTTPS
- beeld
- Impact
- belangrijk
- verbeteren
- inclusief
- industrieรซn
- informatie
- verzekering
- Intelligent
- IT
- etikettering
- labels
- taal
- groter
- LEARN
- leren
- Niveau
- Bibliotheek
- LINK
- Lijst
- plaatselijk
- plaats
- locaties
- handmatig
- massief
- matching
- Materie
- model
- modellen
- meest
- netwerk
- netwerken
- open
- open source
- Operations
- Opties
- bestellen
- organisaties
- Overige
- betaald
- Papier
- stuk
- energie
- biedt
- PWC
- redenen
- adviseren
- verslag
- nodig
- Voorwaarden
- onderzoek
- Resultaten
- hervat
- lopen
- Scale
- schema
- SEC
- zin
- reeks
- het instellen van
- verschuiving
- aanzienlijke
- gelijk
- Eenvoudig
- Maat
- Klein
- slim
- So
- iets
- gestart
- succes
- leveren
- toeleveringsketen
- taken
- Technologie
- proef
- Door
- niet de tijd of
- teken
- tokens
- top
- Trainingen
- begrijpen
- .
- gebruik maken van
- waarde
- Wat
- of
- woorden
- Mijn werk
- werknemers
- jaar