Vill du extrahera data från skannade dokument? Prova Nanonetter™ avancerat AI-baserad OCR-skanner att extrahera och organisera information från skannade dokument automatiskt.
Beskrivning
I takt med att världen har förvandlats från papper och handstilar till digitala dokument för bekvämlighetsskäl, har vikten av att konvertera bilder och skannade dokument till meningsfulla data skjutit i höjden.
För att hålla jämna steg med behovet av mycket exakt dokumentdataextraktion, fokuserade många forskningsanläggningar och företag (t.ex. Google, AWS, Nanonets etc.) djupt på teknologierna inom områdena datorseende och Natural Language Processing (NLP).
Utvecklingen av djupinlärningsteknologier har säkerställt ett stort steg in i den typ av data som kan extraheras; vi är inte längre begränsade från att bara extrahera text, utan även andra datastrukturer som tabeller och nyckel-värdepar. Många lösningar erbjuder nu olika produkter för att tillgodose behoven hos individer och företagare inom utvinning av dokumentdata.
Den här artikeln dyker in i den nuvarande tekniken som används för dataextraktion från skannade dokument, följt av en kort praktisk handledning i Python. Vi kommer också att titta på några av de populära lösningarna som för närvarande finns på marknaden som ger de bästa erbjudandena inom detta område.
Vad är datautvinning?
Dataextraktion är processen att omvandla ostrukturerad data till tolkbar information av program för att möjliggöra ytterligare databearbetning av människor. Här listar vi flera av de vanligaste typerna av data som ska extraheras från skannade dokument.
Textdata
Den vanligaste och viktigaste uppgiften vid datautvinning från skannade dokument är att extrahera text. Denna process, även om den verkar okomplicerad, är i själva verket mycket svår eftersom skannade dokument ofta presenteras i bildformat. Dessutom är metoderna för extraktion starkt beroende av typen av text. Medan text finns i täta tryckta format större delen av tiden, är förmågan att extrahera gles text från mindre välskannade dokument eller från handskrivna brev med drastiskt varierande stilar lika viktig. En sådan process kommer att tillåta program att konvertera bilder till maskinkodad text, där vi kan organisera dem ytterligare från ostrukturerad data (utan viss formatering) till strukturerad data för vidare analys.
Bord
Tabellformer är den mest populära metoden för datalagring, eftersom formatet är lätt att tolka med mänskliga ögon. Processen att extrahera tabeller från skannade dokument kräver teknik bortom teckendetektering - man måste detektera linjerna och andra visuella funktioner för att kunna utföra en korrekt tabellextraktion och ytterligare konvertera denna information till strukturerad data för vidare beräkning. Datorseendemetoder (beskrivs i detalj i följande avsnitt) används flitigt för att uppnå tabellextraktion med hög noggrannhet.
Nyckel-värde par
Ett alternativt format som vi ofta använder i dokument för datalagring är nyckel-värdepar (KVP).
KVP:er är i huvudsak två dataobjekt - en nyckel och ett värde - kopplade samman som en. Nyckeln används som en unik identifierare för värdet som ska hämtas. Ett klassiskt KVP-exempel är ordboken, där vokabulärerna är nycklarna och motsvarande definitioner är värdena. Dessa par, även om de vanligtvis inte märks, används faktiskt mycket ofta i dokument: frågor i undersökningar som namn, ålder och priser på artiklar på fakturor är alla implicita KVP:er.
Men till skillnad från tabeller finns KVP ofta i okända format och är ibland till och med delvis handskrivna. Till exempel kan nycklar vara förtryckta i rutor och värden är handskrivna när formuläret fylls i. Att hitta de underliggande strukturerna för att automatiskt utföra KVP-extraktion är därför en pågående forskningsprocess även för de mest avancerade anläggningarna och labben.
siffror
Slutligen är det också mycket viktigt att extrahera eller fånga upp data från figurer i ett skannat dokument. Statistiska indikatorer som cirkeldiagram och stapeldiagram innehåller ofta avgörande information för dokument. En bra dataextraheringsprocess bör kunna dra slutsatser från legender och siffror för att delvis extrahera data från figurer för vidare användning.
Vill du extrahera data från skannade dokument? Ge nanonetter™ en snurrning för högre noggrannhet, större flexibilitet, efterbehandling och en bred uppsättning integrationer!
Teknik bakom dataextraktion
Dataextraktion kretsar kring två huvudprocesser: Optisk teckenigenkänning (OCR) följt av Natural Language Processing (NLP).
OCR-extraktion är processen att konvertera textbilder till maskinkodad text, medan den senare är analyserna av orden för att sluta sig till betydelser. Ofta åtföljs av OCR är andra datorseende tekniker såsom box- och linjedetektion för att extrahera tidigare nämnda datatyper såsom tabeller och KVP:er för mer omfattande extrahering.
De centrala förbättringarna bakom dataextraktionspipelinen är nära kopplade till framstegen inom djupinlärning som i hög grad bidrog till områdena datorseende och naturlig språkbehandling (NLP).
Vad är djupinlärning?
Deep learning, har en viktig roll bakom hypen från eran med artificiell intelligens, och har ständigt drivits i framkant i många tillämpningar. Inom traditionell teknik är vårt mål att designa ett system/funktion som genererar en utdata från en given input; djupinlärning, å andra sidan, förlitar sig på ingångarna och utgångarna för att hitta det mellanförhållande som kan utvidgas till nya osynliga data genom s.k. neurala nätverk.
Ett neuralt nätverk, eller en flerskiktsperceptron (MLP), är en maskininlärningsarkitektur inspirerad av hur mänskliga hjärnor lär sig. Nätverket innehåller neuroner, som efterliknar biologiska neuroner och "aktiverar" när de ges annan information. Uppsättningar av neuroner bildar lager, och flera lager staplas ihop för att bilda ett nätverk för att tjäna förutsägelseändamålen för flera former (dvs. bildklassificeringar eller begränsningsrutor för objektdetektering).
Inom datorseende används en typ av neurala nätverksvariationer kraftigt - konvolutionella neurala nätverk (CNN). Istället för traditionella lager använder en CNN faltningskärnor som glider genom tensorer (eller högdimensionella vektorer) för extraktion av funktioner. Tillsammans med traditionella nätverkslager i slutändan, är CNN:er mycket framgångsrika i bildrelaterade uppgifter och utgjorde ytterligare grunden för OCR-extraktion och andra funktionsdetektering.
Å andra sidan är NLP beroende av en annan uppsättning nätverk, som fokuserar på tidsseriedata. Till skillnad från bilder, där en bild är oberoende av varandra, kan textförutsägelse till stor del gynnas om ord före eller efter också beaktas. Under de senaste åren, en familj av nätverk, nämligen långa korttidsminnen (LSTM), som tar tidigare resultat som indata för att förutsäga de aktuella resultaten. Bilaterala LSTMer antogs också ofta för att förbättra förutsägelseresultatet, där både resultat före och efter beaktades. På senare år har dock ett koncept med transformatorer som använder en uppmärksamhetsmekanism börjat växa på grund av dess högre flexibilitet som leder till bättre resultat än traditionella nätverk som hanterar sekventiella tidsserier.
Tillämpningar av dataextraktion
Huvudmålet med dataextraktion är att konvertera data från ostrukturerade dokument till strukturerade format, där en mycket exakt hämtning av text, figurer och datastrukturer kan vara till stor hjälp för numerisk och kontextuell analys. Dessa analyser kan vara till stor hjälp, särskilt för företag:
Företag
Affärsföretag och stora organisationer hanterar tusentals pappersarbete med liknande format dagligen — Stora banker får många identiska ansökningar, och forskarteam måste analysera högar med formulär för att utföra statistisk analys. Därför reducerar automatisering av det första steget att extrahera data från dokument avsevärt överflöd av personalresurser och gör det möjligt för arbetare att fokusera på att analysera data och granska ansökningar istället för att knappa in information.
- Verifiera applikationer — Företag får massor av ansökningar, vare sig de är handskrivna eller endast genom ansökningsformulär. I de flesta fall kan dessa ansökningar åtföljas av personliga ID:n i verifieringssyfte. Skannade ID-handlingar som pass eller kort kommer vanligtvis i omgångar med liknande format. Därför kan en välskriven dataextraktor snabbt omvandla data (texter, tabeller, figurer, KVP) till maskinbegripliga texter, vilket avsevärt skulle kunna reducera mantimmar på dessa uppgifter och fokusera på applikationsval istället för extrahering.
- Betalningsavstämning — Betalningsavstämning är processen att jämföra kontoutdrag för att säkerställa matchningen av siffror mellan konton, vilket i hög grad kretsar kring datautvinning från dokument - en utmanande fråga för ett företag med betydande storlek och olika inkomstkällor. Dataextraktion kan underlätta denna process och tillåta anställda att fokusera på felaktiga data och utforska potentiella bedrägliga händelser om kassaflödet.
- Statistisk analys — Feedback från kunder eller experimentdeltagare används av företag och organisationer för att förbättra sina produkter och tjänster, och en omfattande feedbackutvärdering kräver vanligtvis en statistisk analys. Undersökningsdata kan dock finnas i många format eller gömda mellan text med olika format. Dataextraktion kan underlätta processen genom att peka ut uppenbara data från dokument i partier, underlätta processen att hitta användbara processer och i slutändan öka effektiviteten.
- Dela tidigare rekord — Från sjukvård till att byta banktjänster kräver stora industrier ofta ny kundinformation som redan kan ha funnits någon annanstans. Till exempel kan en patient som byter sjukhus på grund av flytt ha redan existerande journaler som kan vara till hjälp för det nya sjukhuset. I sådana fall kommer en bra dataextraktionsmjukvara väl till pass eftersom allt som krävs är att individen tar med sig en skannad historik med journaler till det nya sjukhuset så att de automatiskt kan fylla i all information. Detta skulle inte bara vara bekvämt, det skulle också kunna undvika omfattande risker, särskilt inom sjukvården, med att viktiga patientjournaler förbises.
Vill du extrahera data från skannade dokument? Ge nanonetter™ en snurrning för högre noggrannhet, större flexibilitet, efterbehandling och en bred uppsättning integrationer!
Handledning
För att ge en tydligare bild av hur man utför dataextraktion visar vi två uppsättningar metoder för att utföra dataextraktion från skannade dokument.
Bygga från grunden
Man kan bygga en enkel dataextraherande OCR-motor via PyTesseract-motorn enligt följande:
try: from PIL import Image
except ImportError: import Image
import pytesseract # If you don't have tesseract executable in your PATH, include the following:
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example tesseract_cmd = r'C:Program Files (x86)Tesseract-OCRtesseract' # Simple image to string
print(pytesseract.image_to_string(Image.open('test.png'))) # List of available languages
print(pytesseract.get_languages(config='')) # French text image to string
print(pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra')) # In order to bypass the image conversions of pytesseract, just use relative or absolute image path
# NOTE: In this case you should provide tesseract supported images or tesseract will return error
print(pytesseract.image_to_string('test.png')) # Batch processing with a single file containing the list of multiple image file paths
print(pytesseract.image_to_string('images.txt')) # Timeout/terminate the tesseract job after a period of time
try: print(pytesseract.image_to_string('test.jpg', timeout=2)) # Timeout after 2 seconds print(pytesseract.image_to_string('test.jpg', timeout=0.5)) # Timeout after half a second
except RuntimeError as timeout_error: # Tesseract processing is terminated pass # Get bounding box estimates
print(pytesseract.image_to_boxes(Image.open('test.png'))) # Get verbose data including boxes, confidences, line and page numbers
print(pytesseract.image_to_data(Image.open('test.png'))) # Get information about orientation and script detection
print(pytesseract.image_to_osd(Image.open('test.png'))) # Get a searchable PDF
pdf = pytesseract.image_to_pdf_or_hocr('test.png', extension='pdf')
with open('test.pdf', 'w+b') as f: f.write(pdf) # pdf type is bytes by default # Get HOCR output
hocr = pytesseract.image_to_pdf_or_hocr('test.png', extension='hocr') # Get ALTO XML output
xml = pytesseract.image_to_alto_xml('test.png')
För mer information om koden kan du kolla in deras officiella dokumentation.
Med enkla ord extraherar koden data som texter och begränsningsrutor från en given bild. Även om den är ganska användbar, är motorn inte alls lika stark som de som tillhandahålls av avancerade lösningar på grund av deras betydande beräkningskraft för träning.
Använder Google Document API
def async_detect_document(gcs_source_uri, gcs_destination_uri):
"""OCR with PDF/TIFF as source files on GCS""" import json import re from google.cloud import vision from google.cloud import storage # Supported mime_types are: 'application/pdf' and 'image/tiff' mime_type = 'application/pdf' # How many pages should be grouped into each json output file. batch_size = 2 client = vision.ImageAnnotatorClient() feature = vision.Feature( type_=vision.Feature.Type.DOCUMENT_TEXT_DETECTION) gcs_source = vision.GcsSource(uri=gcs_source_uri) input_config = vision.InputConfig( gcs_source=gcs_source, mime_type=mime_type) gcs_destination = vision.GcsDestination(uri=gcs_destination_uri) output_config = vision.OutputConfig( gcs_destination=gcs_destination, batch_size=batch_size) async_request = vision.AsyncAnnotateFileRequest( features=[feature], input_config=input_config, output_config=output_config) operation = client.async_batch_annotate_files( requests=[async_request]) print('Waiting for the operation to finish.') operation.result(timeout=420) # Once the request has completed and the output has been # written to GCS, we can list all the output files. storage_client = storage.Client() match = re.match(r'gs://([^/]+)/(.+)', gcs_destination_uri) bucket_name = match.group(1) prefix = match.group(2) bucket = storage_client.get_bucket(bucket_name) # List objects with the given prefix. blob_list = list(bucket.list_blobs(prefix=prefix)) print('Output files:') for blob in blob_list: print(blob.name) # Process the first output file from GCS. # Since we specified batch_size=2, the first response contains # the first two pages of the input file. output = blob_list[0] json_string = output.download_as_string() response = json.loads(json_string) # The actual response for the first page of the input file. first_page_response = response['responses'][0] annotation = first_page_response['fullTextAnnotation'] # Here we print the full text from the first page. # The response contains more information: # annotation/pages/blocks/paragraphs/words/symbols # including confidence scores and bounding boxes print('Full text:n') print(annotation['text'])
I slutändan låter Googles dokument-AI dig extrahera mängder av information från dokument med hög noggrannhet. Dessutom erbjuds tjänsten för specifika användningsområden, inklusive textextraktion för både normala och vilda bilder.
Vänligen hänvisa till här. för mer information.
Aktuella lösningar som erbjuder dataextraktion
Förutom stora företag med API:er för extrahering av dokumentdata, finns det flera lösningar som ger mycket exakta PDF OCR tjänster. Vi presenterar flera alternativ för PDF OCR som är specialiserade på olika aspekter, såväl som några nya forskningsprototyper som verkar ge lovande resultat*:
*Sidoanmärkning: Det finns flera OCR-tjänster som är inriktade på uppgifter som bilder i naturen. Vi hoppade över dessa tjänster eftersom vi för närvarande fokuserar på att endast läsa PDF-dokument.
- Googles API — Som en av de största onlinetjänsteleverantörerna erbjuder Google fantastiska resultat i dokumentutvinning med sin banbrytande datorseendeteknologi. Man kan använda deras tjänster gratis om användningen är ganska låg, men priset ökar i takt med att API-anropen ökar.
- Djupläsare — Deep Reader är ett forskningsarbete publicerat i ACCV Conference 2019. Det innehåller flera toppmoderna nätverksarkitekturer för att utföra uppgifter som t.ex. dokumentmatchning, texthämtning och förnedring av bilder. Det finns ytterligare funktioner som tabeller och nyckel-värde-par-extraktion som gör att data kan hämtas och sparas på ett organiserat sätt.
- Nanonets ™ — Med ett mycket skickligt team för djupinlärning är Nanonets™ PDF OCR helt mall- och regeloberoende. Därför kan Nanonets™ inte bara fungera på specifika typer av PDF-filer, det kan också appliceras på alla dokumenttyper för texthämtning.
Vill du extrahera data från skannade dokument? Ge nanonetter™ en snurrning för högre noggrannhet, större flexibilitet, efterbehandling och en bred uppsättning integrationer!
Slutsats
Sammanfattningsvis presenterar den här artikeln en grundlig förklaring till dataextraktion från skannade dokument, inklusive utmaningarna bakom det och den teknik som krävs för denna process.
Två handledningar av olika metoder presenteras, och aktuella lösningar som erbjuder det ur lådan presenteras också som referens.
- 2019
- Om oss
- Absolut
- Konto
- exakt
- Uppnå
- Dessutom
- Annat
- avancerat
- framsteg
- AI
- algoritmer
- Alla
- redan
- alternativ
- analysera
- analys
- Annan
- api
- API: er
- Ansökan
- tillämpningar
- tillvägagångssätt
- arkitektur
- runt
- Artikeln
- konstgjord
- artificiell intelligens
- uppmärksamhet
- Automation
- tillgänglig
- AWS
- bakgrund
- Bank
- Banker
- grund
- Där vi får lov att vara utan att konstant prestera,
- BÄST
- Bortom
- störst
- gränsen
- Box
- SLUTRESULTAT
- företag
- företag
- Kort
- fall
- Kontanter
- kassaflöde
- vissa
- utmaningar
- utmanande
- Diagram
- Till Kassan
- klassiska
- cloud
- CNN
- koda
- komma
- Gemensam
- Företag
- företag
- fullständigt
- fullborda
- omfattande
- beräkning
- dator
- begrepp
- Konferens
- förtroende
- anslutna
- ständigt
- innehåller
- bidrog
- bekvämlighet
- Bekväm
- omvandlingar
- Kärna
- Företag
- Motsvarande
- kunde
- avgörande
- Aktuella
- För närvarande
- kund
- Kunder
- datum
- databehandling
- datalagring
- behandla
- beskriven
- Designa
- detalj
- Detektering
- olika
- svårt
- digital
- dokument
- lätt
- effektivitet
- anställda
- Motor
- Teknik
- speciellt
- väsentligen
- uppskattningar
- etc
- utvärdering
- händelser
- exempel
- Utom
- experimentera
- utforska
- omfattande
- extrakt
- familj
- Leverans
- Funktioner
- återkoppling
- Fält
- finna
- Förnamn
- Flexibilitet
- flöda
- Fokus
- fokuserade
- fokuserar
- fokusering
- efter
- förgrunden
- formen
- format
- former
- Fri
- franska
- Uppfylla
- full
- ytterligare
- Målet
- god
- större
- kraftigt
- Arbetsmiljö
- praktisk
- huvud
- hälso-och sjukvård
- sjukvårdsindustrin
- hjälp
- här.
- Hög
- högre
- höggradigt
- historia
- sjukhus
- Hur ser din drömresa ut
- How To
- Men
- HTTPS
- humant
- Human Resources
- Människa
- bild
- vikt
- med Esport
- förbättra
- innefattar
- Inklusive
- Inkomst
- Öka
- individuellt
- individer
- industrier
- industrin
- informationen
- ingång
- inspirerat
- Intelligens
- fråga
- IT
- Jobb
- Nyckel
- nycklar
- Labs
- språk
- Språk
- Large
- ledande
- LÄRA SIG
- inlärning
- linje
- Lista
- Lång
- Maskinen
- maskininlärning
- större
- Majoritet
- människa
- sätt
- marknad
- Match
- matchande
- medicinsk
- metoder
- mer
- mest
- Mest populär
- rörliga
- multipel
- nämligen
- Natural
- behov
- nät
- nätverk
- normala
- nummer
- talrik
- erbjudanden
- erbjuds
- erbjuda
- offer~~POS=TRUNC
- Erbjudanden
- tjänsteman
- pågående
- nätet
- drift
- Tillbehör
- beställa
- organisationer
- Organiserad
- Övriga
- ägare
- deltagare
- betalning
- utför
- perioden
- personlig
- Banbrytande
- Populära
- potentiell
- kraft
- förutse
- förutsägelse
- presentera
- pretty
- föregående
- pris
- process
- processer
- bearbetning
- Produkter
- Program
- Program
- lovande
- ge
- tillhandahålla
- syfte
- snabbt
- RE
- Läsare
- Läsning
- motta
- avstämning
- register
- minska
- om
- relation
- begära
- kräver
- Obligatorisk
- Kräver
- forskning
- Resurser
- respons
- Resultat
- avkastning
- risker
- scanning
- sekunder
- service
- Tjänster
- in
- flera
- Kort
- kortsiktigt
- liknande
- Enkelt
- eftersom
- Storlek
- Mjukvara
- fast
- Lösningar
- några
- specialiserad
- Snurra
- state-of-the-art
- uttalanden
- statistisk
- förvaring
- ström
- stark
- strukturerade
- väsentlig
- framgångsrik
- Som stöds
- Undersökning
- riktade
- uppgifter
- grupp
- tekniker
- Tekniken
- Teknologi
- testa
- världen
- därför
- tusentals
- Genom
- tid
- gånger
- tillsammans
- ton
- mot
- traditionell
- Utbildning
- självstudiekurser
- typer
- förstå
- unika
- användning
- vanligen
- värde
- olika
- Verifiering
- utsikt
- syn
- om
- medan
- inom
- utan
- ord
- Arbete
- arbetare
- världen
- skulle
- XML
- år