Ønsker du å trekke ut data fra skannede dokumenter? Prøve Nanonetter™ avansert AI-basert OCR-skanner å trekke ut og organisere informasjon fra skannede dokumenter automatisk.
Introduksjon
Ettersom verden har endret seg fra papirer og håndskrifter til digitale dokumenter for enkelhets skyld, har viktigheten av å konvertere bilder og skannede dokumenter til meningsfulle data skutt i været.
For å holde tritt med behovet for svært nøyaktig dokumentdatautvinning, har en rekke forskningsfasiliteter og selskaper (dvs. Google, AWS, Nanonets osv.) fokusert dypt på teknologiene innen datasyn og Natural Language Processing (NLP).
Oppblomstringen av dyplæringsteknologier har sikret et stort sprang inn i den typen data som kan trekkes ut; vi er ikke lenger begrenset til bare å trekke ut tekst, men også andre datastrukturer som tabeller og nøkkelverdi-par. Mange løsninger tilbyr nå ulike produkter for å oppfylle behovene til enkeltpersoner og bedriftseiere innen dokumentdatautvinning.
Denne artikkelen dykker ned i den gjeldende teknologien som brukes for datautvinning fra skannede dokumenter, etterfulgt av en kort praktisk opplæring i Python. Vi vil også se på noen av de populære løsningene som for tiden er på markedet som gir de beste tilbudene på dette feltet.
Hva er datautvinning?
Datautvinning er prosessen med å konvertere ustrukturerte data til tolkbar informasjon av programmer for å tillate videre databehandling av mennesker. Her lister vi opp flere av de vanligste typene data som skal trekkes ut fra skannede dokumenter.
Tekstdata
Den vanligste og viktigste oppgaven ved datautvinning fra skannede dokumenter er å trekke ut tekst. Selv om denne prosessen tilsynelatende er enkel, er den faktisk veldig vanskelig, siden skannede dokumenter ofte presenteres i bildeformat. I tillegg er metodene for utvinning svært avhengig av teksttypene. Mens tekst er tilstede i tette trykte formater mesteparten av tiden, er evnen til å trekke ut sparsom tekst fra mindre godt skannede dokumenter eller fra håndskrevne brev med drastisk varierende stiler like viktig. En slik prosess vil tillate programmer å konvertere bilder til maskinkodet tekst, hvor vi kan organisere dem videre fra ustrukturerte data (uten viss formatering) til strukturerte data for videre analyse.
tabeller
Tabellform er den mest populære tilnærmingen for datalagring, siden formatet er lett å tolke med menneskelige øyne. Prosessen med å trekke ut tabeller fra skannede dokumenter krever teknologi utover tegngjenkjenning - man må oppdage linjene og andre visuelle funksjoner for å utføre en riktig tabellekstraksjon og videre konvertere denne informasjonen til strukturerte data for videre beregning. Datasynsmetoder (beskrevet i detalj i de følgende avsnittene) er mye brukt for å oppnå tabellutvinning med høy nøyaktighet.
Nøkkel-verdi-par
Et alternativt format som vi ofte tar i bruk i dokumenter for datalagring er nøkkelverdi-par (KVP).
KVP-er er i hovedsak to dataelementer - en nøkkel og en verdi - koblet sammen som én. Nøkkelen brukes som en unik identifikator for verdien som skal hentes. Et klassisk KVP-eksempel er ordboken, hvor vokabularene er nøklene og de tilsvarende definisjonene er verdiene. Selv om disse parene vanligvis ikke blir lagt merke til, blir de faktisk brukt svært ofte i dokumenter: spørsmål i undersøkelser som navn, alder og priser på varer i fakturaer er alle implisitt KVP-er.
Imidlertid, i motsetning til tabeller, eksisterer KVP-er ofte i ukjente formater og er noen ganger til og med delvis håndskrevne. For eksempel kan nøkler være forhåndstrykt i bokser og verdier er håndskrevne når du fyller ut skjemaet. Derfor er det å finne de underliggende strukturene for automatisk å utføre KVP-ekstraksjon en pågående forskningsprosess selv for de mest avanserte fasilitetene og laboratoriene.
tall
Til slutt er det også veldig viktig å trekke ut eller fange data fra figurer i et skannet dokument. Statistiske indikatorer som sektordiagrammer og stolpediagram inkluderer ofte viktig informasjon for dokumenter. En god datauttrekksprosess bør kunne utlede fra legendene og tallene for å delvis trekke ut data fra figurer for videre bruk.
Ønsker du å trekke ut data fra skannede dokumenter? Gi nanonetter™ et spinn for høyere nøyaktighet, større fleksibilitet, etterbehandling og et bredt sett med integrasjoner!
Teknologier bak datautvinning
Datautvinning dreier seg om to hovedprosesser: Optisk tegngjenkjenning (OCR) etterfulgt av Natural Language Processing (NLP).
OCR-utvinning er prosessen med å konvertere tekstbilder til maskinkodet tekst, mens sistnevnte er analysene på ordene for å utlede betydninger. Ofte ledsaget av OCR er andre datasynsteknikker som boks- og linjedeteksjon for å trekke ut nevnte datatyper som tabeller og KVP-er for mer omfattende utvinning.
Kjerneforbedringene bak datautvinningsrørledningen er tett knyttet til fremskrittene innen dyp læring som bidro sterkt til feltene datasyn og naturlig språkbehandling (NLP).
Hva er dyp læring?
Dyp læring, har en stor rolle bak hypen av kunstig intelligens-æraen, og har stadig blitt presset i forkant i en rekke applikasjoner. I tradisjonell ingeniørkunst er målet vårt å designe et system/funksjon som genererer en utgang fra en gitt input; dyp læring på sin side er avhengig av inngangene og utgangene for å finne mellomforholdet som kan utvides til nye usett data gjennom den s.k. nevrale nettverket.
Et nevralt nettverk, eller en flerlags perceptron (MLP), er en maskinlæringsarkitektur inspirert av hvordan menneskelige hjerner lærer. Nettverket inneholder nevroner, som etterligner biologiske nevroner og "aktiverer" når det gis forskjellig informasjon. Sett med nevroner danner lag, og flere lag stables sammen for å danne et nettverk for å tjene prediksjonsformålene til flere former (dvs. bildeklassifiseringer eller avgrensningsbokser for objektdeteksjon).
Innen datasyn brukes en type nevrale nettverksvariasjoner i stor grad - konvolusjonelle nevrale nettverk (CNN). I stedet for tradisjonelle lag, bruker en CNN konvolusjonskjerner som glir gjennom tensorer (eller høydimensjonale vektorer) for funksjonsutvinning. Sammen med tradisjonelle nettverkslag til slutt, er CNN-er svært vellykkede i bilderelaterte oppgaver, og dannet videre grunnlaget for OCR-utvinning og andre funksjonsdeteksjon.
På den annen side er NLP avhengig av et annet sett med nettverk, som fokuserer på tidsseriedata. I motsetning til bilder, hvor ett bilde er uavhengig av hverandre, kan tekstprediksjon i stor grad være fordelaktig hvis ord før eller etter også tas i betraktning. I de siste årene har en familie av nettverk, nemlig lange korttidsminner (LSTMer), som tar tidligere resultater som input for å forutsi gjeldende resultater. Bilaterale LSTM-er ble også ofte tatt i bruk for å forbedre prediksjonsresultatet, der både resultater før og etter ble vurdert. I de siste årene har imidlertid et konsept med transformatorer som bruker en oppmerksomhetsmekanisme begynt å øke på grunn av sin høyere fleksibilitet som fører til bedre resultater enn tradisjonelle nettverk som håndterer sekvensielle tidsserier.
Applikasjoner for datautvinning
Hovedmålet med datautvinning er å konvertere data fra ustrukturerte dokumenter til strukturerte formater, der en svært nøyaktig gjenfinning av tekst, figurer og datastrukturer kan være svært nyttig for numerisk og kontekstuell analyse. Disse analysene kan være svært nyttige spesielt for bedrifter:
Virksomhet
Forretningsselskaper og store organisasjoner håndterer tusenvis av papirarbeid med lignende formater på daglig basis - Store banker mottar mange identiske søknader, og forskningsteam må analysere bunker med skjemaer for å utføre statistisk analyse. Derfor reduserer automatisering av det første trinnet med å trekke ut data fra dokumenter betydelig redundansen av menneskelige ressurser og lar arbeidere fokusere på å analysere data og gjennomgå applikasjoner i stedet for å taste inn informasjon.
- Verifisering av applikasjoner — Bedrifter mottar tonnevis av søknader, enten de er håndskrevne eller kun gjennom søknadsskjemaer. Som oftest kan disse applikasjonene være ledsaget av personlige ID-er for verifiseringsformål. Skannede dokumenter med ID-er som pass eller kort kommer vanligvis i grupper med lignende formater. Derfor kan en godt skrevet datauttrekker raskt konvertere dataene (tekster, tabeller, figurer, KVP-er) til maskinforståelige tekster, noe som kan redusere arbeidstimer på disse oppgavene betydelig og fokusere på applikasjonsvalg i stedet for uttrekk.
- Betalingsavstemming — Betalingsavstemming er prosessen med å sammenligne kontoutskrifter for å sikre matching av tall mellom kontoer, som i stor grad dreier seg om datautvinning fra dokumenter – et utfordrende problem for et selskap med betydelig størrelse og ulike inntektskilder. Datautvinning kan lette denne prosessen og tillate ansatte å fokusere på feil data og utforske potensielle uredelige hendelser om kontantstrømmen.
- Statistisk analyse — Tilbakemeldinger fra kunder eller eksperimentdeltakere brukes av selskaper og organisasjoner til å forbedre produktene og tjenestene deres, og en omfattende tilbakemeldingsevaluering vil vanligvis trenge en statistisk analyse. Imidlertid kan undersøkelsesdata finnes i mange formater eller skjult mellom tekst med forskjellige formater. Datautvinning kan lette prosessen ved å peke på åpenbare data fra dokumenter i grupper, lette prosessen med å finne nyttige prosesser, og til slutt øke effektiviteten.
- Deling av tidligere poster — Fra helsetjenester til bytte av banktjenester krever store industrier ofte ny kundeinformasjon som kanskje allerede har eksistert andre steder. For eksempel kan en pasient som bytter sykehus på grunn av flytting ha eksisterende journaler som kan være nyttige for det nye sykehuset. I slike tilfeller kommer en god dataekstraksjonsprogramvare godt med, da alt som kreves er at den enkelte tar med en skannet historikk til det nye sykehuset slik at de automatisk kan fylle ut all informasjon. Ikke bare ville dette være praktisk, det kan også unngå omfattende risikoer, spesielt i helsesektoren, for at viktige pasientjournaler blir oversett.
Ønsker du å trekke ut data fra skannede dokumenter? Gi nanonetter™ et spinn for høyere nøyaktighet, større fleksibilitet, etterbehandling og et bredt sett med integrasjoner!
Guider
For å gi en klarere oversikt over hvordan du utfører datautvinning, viser vi to sett med metoder for å utføre datautvinning fra skannede dokumenter.
Bygg fra bunnen av
Man kan bygge en enkel dataekstraherende OCR-motor via PyTesseract-motoren som følgende:
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')
For mer informasjon om koden, kan du sjekke ut deres offisielle dokumentasjon.
Med enkle ord trekker koden ut data som tekster og avgrensningsrammer fra et gitt bilde. Selv om den er ganske nyttig, er motoren ikke så sterk som de som tilbys av avanserte løsninger på grunn av deres betydelige regnekraft for trening.
Bruker 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'])
Til syvende og sist lar Googles dokument-AI deg trekke ut mange opplysninger fra dokumenter med høy nøyaktighet. I tillegg tilbys tjenesten for spesifikke bruksområder, inkludert tekstutvinning for både normale og ville bilder.
Vennligst se her. for mer.
Nåværende løsninger som tilbyr datautvinning
Foruten store selskaper med APIer for dokumentdatautvinning, er det flere løsninger som gir svært nøyaktige PDF OCR tjenester. Vi presenterer flere alternativer for PDF OCR som er spesialisert på forskjellige aspekter, samt noen nyere forskningsprototyper som ser ut til å gi lovende resultater*:
*Sidemerknad: Det er flere OCR-tjenester som er rettet mot oppgaver som bilder i naturen. Vi hoppet over disse tjenestene da vi for øyeblikket fokuserer på kun å lese PDF-dokumenter.
- Google APIer — Som en av de største nettbaserte tjenesteleverandørene tilbyr Google fantastiske resultater i dokumentutvinning med deres banebrytende datasynsteknologi. Man kan bruke tjenestene deres gratis hvis bruken er ganske lav, men prisen stiger etter hvert som API-anropene øker.
- Dyp leser — Deep Reader er et forskningsverk publisert i ACCV Conference 2019. Det inneholder flere toppmoderne nettverksarkitekturer for å utføre oppgaver som f.eks. dokumentmatching, tekstinnhenting og deoising av bilder. Det er tilleggsfunksjoner som tabeller og nøkkel-verdi-par-ekstraksjon som gjør at data kan hentes og lagres på en organisert måte.
- Nanonets ™ — Med et svært dyktig team for dyplæring, er Nanonets™ PDF OCR fullstendig mal- og regeluavhengig. Derfor kan Nanonets™ ikke bare fungere på spesifikke typer PDF-filer, det kan også brukes på alle dokumenttyper for teksthenting.
Ønsker du å trekke ut data fra skannede dokumenter? Gi nanonetter™ et spinn for høyere nøyaktighet, større fleksibilitet, etterbehandling og et bredt sett med integrasjoner!
konklusjonen
Avslutningsvis presenterer denne artikkelen en grundig forklaring på datautvinning fra skannede dokumenter, inkludert utfordringene bak og teknologien som kreves for denne prosessen.
To veiledninger av forskjellige metoder presenteres, og aktuelle løsninger som tilbyr det ut av esken er også presentert for referanse.
- 2019
- Om oss
- Absolute
- Logg inn
- nøyaktig
- Oppnå
- tillegg
- Ytterligere
- avansert
- fremskritt
- AI
- algoritmer
- Alle
- allerede
- alternativ
- analysere
- analyse
- En annen
- api
- APIer
- Søknad
- søknader
- tilnærming
- arkitektur
- rundt
- Artikkel
- kunstig
- kunstig intelligens
- oppmerksomhet
- Automatisering
- tilgjengelig
- AWS
- bakgrunn
- Bank
- Banker
- basis
- være
- BEST
- Beyond
- Biggest
- grensen
- Eske
- bygge
- virksomhet
- bedrifter
- Kort
- saker
- Kontanter
- kontantstrøm
- viss
- utfordringer
- utfordrende
- Topplisten
- Sjekk ut
- Classic
- Cloud
- CNN
- kode
- Kom
- Felles
- Selskaper
- Selskapet
- helt
- fullført
- omfattende
- beregningen
- datamaskin
- konsept
- Konferanse
- selvtillit
- tilkoblet
- stadig
- inneholder
- bidratt
- bekvemmelighet
- Praktisk
- konverteringer
- Kjerne
- Corporations
- Tilsvarende
- kunne
- avgjørende
- Gjeldende
- I dag
- kunde
- Kunder
- dato
- databehandling
- datalagring
- avtale
- beskrevet
- utforming
- detalj
- Gjenkjenning
- forskjellig
- vanskelig
- digitalt
- dokumenter
- lett
- effektivitet
- ansatte
- Motor
- Ingeniørarbeid
- spesielt
- hovedsak
- estimater
- etc
- evaluering
- hendelser
- eksempel
- Unntatt
- eksperiment
- utforske
- omfattende
- ekstrakter
- familie
- Trekk
- Egenskaper
- tilbakemelding
- Felt
- finne
- Først
- fleksibilitet
- flyten
- Fokus
- fokuserte
- fokuserer
- fokusering
- etter
- teten
- skjema
- format
- skjemaer
- Gratis
- Fransk
- Innfri
- fullt
- videre
- mål
- god
- større
- sterkt
- Håndtering
- hands-on
- hode
- helsetjenester
- helsevesenet
- nyttig
- her.
- Høy
- høyere
- svært
- historie
- sykehus
- Hvordan
- Hvordan
- Men
- HTTPS
- menneskelig
- Human Resources
- Mennesker
- bilde
- betydning
- viktig
- forbedre
- inkludere
- Inkludert
- Inntekt
- Øke
- individuelt
- individer
- bransjer
- industri
- informasjon
- inngang
- inspirert
- Intelligens
- utstedelse
- IT
- Jobb
- nøkkel
- nøkler
- Labs
- Språk
- språk
- stor
- ledende
- LÆRE
- læring
- linje
- Liste
- Lang
- maskin
- maskinlæring
- større
- Flertall
- mann
- måte
- marked
- Match
- matchende
- medisinsk
- metoder
- mer
- mest
- Mest populær
- flytting
- flere
- nemlig
- Naturlig
- behov
- nettverk
- nettverk
- normal
- tall
- mange
- tilby
- tilbudt
- tilby
- tilbud
- Tilbud
- offisiell
- pågående
- på nett
- drift
- alternativer
- rekkefølge
- organisasjoner
- Organisert
- Annen
- eiere
- deltakere
- betaling
- utfører
- perioden
- personlig
- Banebryt
- Populær
- potensiell
- makt
- forutsi
- prediksjon
- presentere
- pen
- forrige
- pris
- prosess
- Prosesser
- prosessering
- Produkter
- program
- programmer
- lovende
- gi
- gi
- formål
- raskt
- RE
- Reader
- Lesning
- motta
- avstemming
- poster
- redusere
- om
- forholdet
- anmode
- krever
- påkrevd
- Krever
- forskning
- Ressurser
- svar
- Resultater
- retur
- risikoer
- skanning
- sekunder
- tjeneste
- Tjenester
- sett
- flere
- Kort
- kortsiktig
- lignende
- Enkelt
- siden
- Størrelse
- Software
- solid
- Solutions
- noen
- spesialisert
- Snurre rundt
- state-of-the-art
- uttalelser
- statistisk
- lagring
- stream
- sterk
- strukturert
- betydelig
- vellykket
- Støttes
- Survey /Inspeksjonsfartøy
- målrettet
- oppgaver
- lag
- teknikker
- Technologies
- Teknologi
- test
- verden
- derfor
- tusener
- Gjennom
- tid
- ganger
- sammen
- Tone
- mot
- tradisjonelle
- Kurs
- tutorials
- typer
- forstå
- unik
- bruke
- vanligvis
- verdi
- ulike
- Verifisering
- Se
- syn
- om
- mens
- innenfor
- uten
- ord
- Arbeid
- arbeidere
- verden
- ville
- XML
- år