Kas soovite skannitud dokumentidest andmeid eraldada? Proovi Nanonetid™ edasijõudnud AI-põhine OCR-skanner teabe hankimiseks ja korrastamiseks skannitud dokumendid automaatselt.
Sissejuhatus
Kuna maailm on mugavuse huvides pöördunud paberitelt ja käekirjadelt digitaalsete dokumentide poole, on piltide ja skannitud dokumentide tähenduslikeks andmeteks teisendamise tähtsus hüppeliselt tõusnud.
Et olla kursis ülitäpse dokumendiandmete väljavõtmise vajadusega, keskendusid paljud uurimisasutused ja ettevõtted (nt Google, AWS, Nanonets jne) põhjalikult arvutinägemise ja loomuliku keele töötlemise (NLP) valdkondade tehnoloogiatele.
Süvaõppe tehnoloogiate õitseng on taganud hiiglasliku hüppe väljavõetavate andmete osas; meid ei piira enam ainult teksti eraldamine, vaid ka muud andmestruktuurid, nagu tabelid ja võtme-väärtuste paarid. Paljud lahendused pakuvad nüüd erinevaid tooteid, et rahuldada üksikisikute ja ettevõtete omanike vajadusi dokumendiandmete kaevandamisel.
Selles artiklis käsitletakse praegust tehnoloogiat, mida kasutatakse skannitud dokumentidest andmete eraldamiseks, millele järgneb lühike praktiline õpetus Pythonis. Vaatame ka mõnda praegu turul olevat populaarset lahendust, mis pakuvad selles valdkonnas parimaid pakkumisi.
Mis on andmete ekstraheerimine?
Andmete ekstraheerimine on struktureerimata andmete teisendamine tõlgendatavaks teabeks programmide poolt, et võimaldada inimestel andmete edasist töötlemist. Siin loetleme mitu kõige levinumat tüüpi andmeid, mida skannitud dokumentidest eraldatakse.
Tekstandmed
Kõige tavalisem ja kõige olulisem ülesanne skannitud dokumentidest andmete eraldamisel on teksti eraldamine. Kuigi see protsess näib olevat lihtne, on see tegelikult väga keeruline, kuna skannitud dokumente esitatakse sageli kujutiste kujul. Lisaks sõltuvad ekstraheerimismeetodid suuresti teksti tüüpidest. Kuigi tekst on enamiku ajast tihedas trükivormingus, on sama oluline võimalus eraldada hõredat teksti vähem hästi skannitud dokumentidest või käsitsi kirjutatud kirjadest, mille stiilid on väga erinevad. Selline protsess võimaldab programmidel teisendada kujutised masinkodeeritud tekstiks, kus saame neid struktureerimata andmetest (ilma teatud vorminguta) edasiseks analüüsiks struktureeritud andmeteks korraldada.
Tabelid
Tabelivormid on andmete salvestamisel kõige populaarsem viis, kuna vorming on inimsilmaga hõlpsasti tõlgendatav. Skannitud dokumentidest tabelite ekstraheerimise protsess nõuab tehnoloogiat, mis ei piirdu tähemärkide tuvastamisega – tuleb tuvastada read ja muud visuaalsed funktsioonid, et tabelit korralikult ekstraheerida ja see teave edasiseks arvutamiseks struktureeritud andmeteks teisendada. Arvutinägemise meetodeid (üksikasjalikult kirjeldatud järgmistes osades) kasutatakse suure täpsusega tabeli väljavõtmiseks.
Võtme-väärtuse paarid
Alternatiivne vorming, mida me sageli andmete salvestamise dokumentides kasutame, on võtme-väärtuste paarid (KVP).
KVP-d on sisuliselt kaks andmeüksust – võti ja väärtus –, mis on omavahel ühendatud. Võtit kasutatakse otsitava väärtuse kordumatu identifikaatorina. Klassikaline KVP näide on sõnastik, kus võtmeteks on sõnavarad ja väärtusteks vastavad definitsioonid. Neid paare, kuigi neid tavaliselt ei märgata, kasutatakse dokumentides tegelikult väga sageli: uuringutes esitatud küsimused, nagu nimi, vanus ja arvete kaubahinnad, on kõik kaudselt KVP-d.
Kuid erinevalt tabelitest eksisteerivad KVP-d sageli tundmatutes vormingutes ja on mõnikord isegi osaliselt käsitsi kirjutatud. Näiteks võiks võtmed olla eelnevalt lahtritesse trükitud ja väärtused kirjutatakse vormi täitmisel käsitsi. Seetõttu on KVP automaatseks ekstraheerimiseks aluseks olevate struktuuride leidmine pidev uurimisprotsess isegi kõige arenenumate rajatiste ja laborite jaoks.
arvandmed
Lõpuks on väga oluline ka väljavõte või andmeid koguma joonistelt skannitud dokumendis. Statistilised näitajad, nagu sektordiagrammid ja tulpdiagrammid, sisaldavad sageli dokumentide jaoks olulist teavet. Hea andmete hankimise protsess peaks suutma legendidest ja numbritest järeldada, et andmetest osaliselt eraldada andmed edasiseks kasutamiseks.
Kas soovite skannitud dokumentidest andmeid eraldada? Andke nanonetid™ pööre suurema täpsuse, suurema paindlikkuse, järeltöötluse ja suure hulga integratsioonide jaoks!
Andmete ekstraheerimise taga olevad tehnoloogiad
Andmete ekstraheerimine tiirleb kahe peamise protsessi ümber: optiline märgituvastus (OCR) järgneb loomuliku keele töötlemine (NLP).
OCR-i eraldamine on tekstipiltide teisendamine masinkodeeritud tekstiks, viimane aga sõnade analüüsimine tähenduste järeldamiseks. Sageli kaasnevad optilise tekstituvastusega ka muud arvutinägemise meetodid, nagu kasti ja joone tuvastamine, et ekstraheerida ülalnimetatud andmetüüpe, nagu tabelid ja KVP-d, et saada põhjalikum ekstraheerimine.
Andmete ekstraheerimise konveieri taga olevad põhitäiustused on tihedalt seotud süvaõppe edusammudega, mis aitasid oluliselt kaasa arvutinägemise ja loomuliku keele töötlemise (NLP) valdkondadele.
Mis on sügav õppimine?
Süvaõppel on suur roll tehisintellekti ajastu hype taga ja seda on pidevalt paljudes rakendustes esiplaanile tõstetud. Traditsioonilises inseneritöös on meie eesmärk kavandada süsteem/funktsioon, mis genereerib antud sisendist väljundi; süvaõpe seevastu tugineb sisenditele ja väljunditele, et leida vaheseos, mida saab laiendada uutele seninägematutele andmetele läbi nn. Närvivõrgus.
Närvivõrk ehk mitmekihiline pertseptron (MLP), on masinõppe arhitektuur, mis on inspireeritud inimaju õppimisest. Võrgustik sisaldab neuroneid, mis jäljendavad bioloogilisi neuroneid ja "aktiveeruvad", kui neile antakse erinevat teavet. Neuronite komplektid moodustavad kihte ja mitu kihti on virnastatud, et moodustada võrk, mis teenib mitme vormi ennustamise eesmärki (st kujutiste klassifikatsioonid või objektide tuvastamise piirded).
Arvutinägemise valdkonnas kasutatakse tugevalt närvivõrgu variatsiooni tüüpi - konvolutsioonilisi närvivõrke (CNN-id). Traditsiooniliste kihtide asemel kasutab CNN funktsioonide ekstraheerimiseks konvolutsioonilisi tuumasid, mis libisevad läbi tensorite (või kõrgmõõtmeliste vektorite). Lõppkokkuvõttes koos traditsiooniliste võrgukihtidega on CNN-id pildiga seotud ülesannete täitmisel väga edukad ning moodustasid veelgi aluse OCR-i eraldamiseks ja muude funktsioonide tuvastamiseks.
Teisest küljest sõltub NLP teisest võrkude komplektist, mis keskendub aegridade andmetele. Erinevalt piltidest, kus üks pilt on üksteisest sõltumatu, saab teksti ennustamisest palju kasu, kui arvestada ka eelnevaid või järgnevaid sõnu. Viimastel aastatel on võrkude perekond, nimelt pikad lühiajalised mälestused (LSTM-id), mis võtab praeguste tulemuste ennustamiseks sisenditena varasemaid tulemusi. Kahepoolseid LSTM-e võeti sageli kasutusele ka ennustusväljundi suurendamiseks, kus arvestati nii eelnevaid kui ka pärast tulemusi. Viimastel aastatel on aga tähelepanumehhanismi kasutavate trafode kontseptsioon hakanud tõusma tänu selle suuremale paindlikkusele, mis annab paremaid tulemusi kui traditsioonilised võrgud, mis käitlevad järjestikuseid aegridu.
Andmete ekstraheerimise rakendused
Andmete ekstraheerimise põhieesmärk on andmete teisendamine struktureerimata dokumentidest struktureeritud vormingutesse, mille puhul võib teksti, jooniste ja andmestruktuuride ülitäpne otsimine numbrilisel ja kontekstuaalsel analüüsil palju abi olla. Need analüüsid võivad olla väga kasulikud eelkõige ettevõtetele:
Äri
Äriettevõtted ja suured organisatsioonid tegelevad igapäevaselt tuhandete sarnaste vormingutega paberitöödega – suurpangad saavad arvukalt identseid rakendusi ning uurimisrühmad peavad statistilise analüüsi tegemiseks analüüsima hunnikuid vorme. Seetõttu vähendab dokumentidest andmete väljavõtmise algetapi automatiseerimine oluliselt inimressursi üleliigsust ja võimaldab töötajatel teabe sisestamise asemel keskenduda andmete analüüsimisele ja rakenduste ülevaatamisele.
- Rakenduste kontrollimine — Ettevõtted saavad palju taotlusi, kas käsitsi kirjutatud või ainult taotlusvormide kaudu. Enamasti võidakse nendele rakendustele kinnitamise eesmärgil lisada isikutunnistused. Skaneeritud ID-dokumendid (nt passid või kaardid) on tavaliselt sarnases vormingus partiidena. Seetõttu suudab hästi kirjutatud andmeekstraktor andmed (tekstid, tabelid, joonised, KVP-d) kiiresti teisendada masinarusaadavateks tekstideks, mis võib oluliselt vähendada nende ülesannete töötunde ja keskenduda ekstraheerimise asemel rakenduste valikule.
- Makse ühtlustamine — Maksete vastavusseviimine on pangakontode väljavõtete võrdlemise protsess, et tagada kontode numbrite vastavus, mis keskendub suuresti dokumentidest andmete hankimisele – see on väljakutseid pakkuv probleem märkimisväärse suurusega ja erinevate tuluallikatega ettevõttele. Andmete ekstraheerimine võib seda protsessi hõlbustada ja võimaldada töötajatel keskenduda vigasetele andmetele ja uurida rahavooga seotud võimalikke petturlikke sündmusi.
- Statistiline analüüs — Ettevõtted ja organisatsioonid kasutavad klientidelt või katses osalejatelt saadud tagasisidet oma toodete ja teenuste täiustamiseks ning põhjalik tagasiside hindamine vajab tavaliselt statistilist analüüsi. Uuringuandmed võivad aga esineda mitmes vormingus või peidetud erinevas vormingus teksti vahele. Andmete ekstraheerimine võib protsessi hõlbustada, tuues välja ilmsed andmed dokumentidest partiidena, hõlbustada kasulike protsesside leidmist ja lõpuks suurendada tõhusust.
- Varasemate rekordite jagamine — Tervishoiust pangateenuste vahetamiseni nõuavad suured tööstused sageli uut klienditeavet, mis võib olla mujal juba olemas olnud. Näiteks võib kolimise tõttu haiglat vahetaval patsiendil olla juba olemasolevaid haiguslugusid, mis võivad uuele haiglale abiks olla. Sellistel juhtudel tuleb kasuks hea andmete ekstraheerimise tarkvara, kuna selleks piisab, kui üksikisik tooks uude haiglasse skannitud andmete ajaloo, et ta saaks kogu teabe automaatselt täita. See poleks mitte ainult mugav, vaid ka vältida ulatuslikke riske, eriti tervishoiusektoris, et olulised patsiendiandmed jäävad tähelepanuta.
Kas soovite skannitud dokumentidest andmeid eraldada? Andke nanonetid™ pööre suurema täpsuse, suurema paindlikkuse, järeltöötluse ja suure hulga integratsioonide jaoks!
Tutorials
Andmete ekstraheerimisest selgema ülevaate saamiseks näitame kahte meetodit skannitavatest dokumentidest andmete eraldamiseks.
Ehitamine nullist
PyTesseracti mootori abil saab luua lihtsa andmete ekstraheerimise OCR-mootori järgmiselt:
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')
Koodi kohta lisateabe saamiseks võite vaadata nende ametlikku teavet dokumentatsioon.
Lihtsamalt öeldes eraldab kood antud pildist andmed, näiteks tekstid ja piirdekastid. Kuigi see mootor on üsna kasulik, pole see oma suure arvutusvõimsuse tõttu nii tugev kui täiustatud lahenduste mootor.
Google Document API kasutamine
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'])
Lõppkokkuvõttes võimaldab Google'i dokumendi AI suure täpsusega välja võtta dokumentidest palju teavet. Lisaks pakutakse teenust ka konkreetseks kasutuseks, sealhulgas teksti ekstraheerimiseks nii tavaliste kui ka vabade piltide jaoks.
Palun viita siin rohkem.
Praegused lahendused, mis pakuvad andmete ekstraheerimist
Lisaks dokumentide andmete ekstraheerimiseks mõeldud API-dega suurettevõtetele on mitmeid lahendusi, mis pakuvad väga täpset täpsust PDF OCR teenuseid. Tutvustame mitmeid PDF-OCR-i valikuid, mis on spetsialiseerunud erinevatele aspektidele, samuti mõningaid hiljutisi uurimistöö prototüüpe, mis näivad andvat paljulubavaid tulemusi*:
*Kõrgmärkus. On mitmeid OCR-teenuseid, mis on suunatud sellistele ülesannetele nagu pildid looduses. Jätsime need teenused vahele, kuna keskendume praegu ainult PDF-dokumentide lugemisele.
- Google API-d — Ühe suurima võrguteenuse pakkujana pakub Google oma teedrajava arvutinägemistehnoloogiaga suurepäraseid tulemusi dokumentide kaevandamisel. Nende teenuseid saab kasutada tasuta, kui kasutus on üsna madal, kuid API-kõnede kasvades hind tõuseb.
- Sügav lugeja — Deep Reader on uurimistöö, mis avaldati ACCV konverentsil 2019. See hõlmab mitut nüüdisaegset võrguarhitektuuri, et täita selliseid ülesandeid nagu dokumendi sobitamine, teksti otsimine ja piltide müra vähendamine. On lisafunktsioone, nagu tabelid ja võtme-väärtus-paaride eraldamine, mis võimaldavad andmeid organiseeritud viisil hankida ja salvestada.
- Nanonets™ — Väga osava süvaõppe meeskonnaga on Nanonets™ PDF OCR täiesti mallist ja reeglist sõltumatu. Seetõttu ei saa Nanonets™ töötada mitte ainult teatud tüüpi PDF-idega, vaid seda saab kasutada ka mis tahes dokumenditüübile teksti otsimiseks.
Kas soovite skannitud dokumentidest andmeid eraldada? Andke nanonetid™ pööre suurema täpsuse, suurema paindlikkuse, järeltöötluse ja suure hulga integratsioonide jaoks!
Järeldus
Kokkuvõtteks võib öelda, et see artikkel annab põhjaliku selgituse skannitud dokumentidest andmete eraldamise kohta, sealhulgas selle taga olevaid väljakutseid ja selle protsessi jaoks vajalikku tehnoloogiat.
Tutvustatakse kahte erineva meetodi õpetust ning võrdluseks on toodud ka praegused lahendused, mis seda karbist välja pakuvad.
- 2019
- MEIST
- absoluutne
- konto
- täpne
- Saavutada
- lisamine
- Täiendavad lisad
- edasijõudnud
- ettemaksed
- AI
- algoritme
- Materjal: BPA ja flataatide vaba plastik
- juba
- alternatiiv
- analüüsima
- analüüs
- Teine
- API
- API-liidesed
- taotlus
- rakendused
- lähenemine
- arhitektuur
- ümber
- artikkel
- kunstlik
- tehisintellekti
- tähelepanu
- Automaatika
- saadaval
- AWS
- tagapõhi
- Pank
- Pangad
- alus
- on
- BEST
- Peale
- suurim
- piir
- Kast
- ehitama
- äri
- ettevõtted
- Kaardid
- juhtudel
- Raha
- rahavool
- kindel
- väljakutseid
- raske
- Äritegevus
- Vormista ost
- klassika
- Cloud
- CNN
- kood
- Tulema
- ühine
- Ettevõtted
- ettevõte
- täiesti
- lõpetamist
- terviklik
- arvutamine
- arvuti
- mõiste
- Konverents
- usaldus
- seotud
- pidevalt
- sisaldab
- Aitas
- mugavus
- Mugav
- konversioonid
- tuum
- Korporatsioonid
- Vastav
- võiks
- otsustav
- Praegune
- Praegu
- klient
- Kliendid
- andmed
- andmetöötlus
- andmete salvestamine
- tegelema
- kirjeldatud
- Disain
- detail
- Detection
- erinev
- raske
- digitaalne
- dokumendid
- kergesti
- efektiivsus
- töötajad
- Mootor
- Inseneriteadus
- eriti
- põhiliselt
- hinnangul
- jms
- hindamine
- sündmused
- näide
- Välja arvatud
- eksperiment
- uurima
- ulatuslik
- Väljavõtted
- pere
- tunnusjoon
- FUNKTSIOONID
- tagasiside
- Valdkonnad
- leidmine
- esimene
- Paindlikkus
- voog
- Keskenduma
- keskendunud
- keskendub
- keskendumine
- Järel
- esirinnas
- vorm
- formaat
- vormid
- tasuta
- prantsuse
- Täida
- täis
- edasi
- eesmärk
- hea
- suurem
- suuresti
- Käsitsemine
- käed-
- juhataja
- tervishoid
- tervishoiutööstus
- kasulik
- siin
- Suur
- rohkem
- kõrgelt
- ajalugu
- haiglad
- Kuidas
- Kuidas
- aga
- HTTPS
- inim-
- Inimressursid
- Inimestel
- pilt
- tähtsus
- oluline
- parandama
- sisaldama
- Kaasa arvatud
- tulu
- Suurendama
- eraldi
- inimesed
- tööstusharudes
- tööstus
- info
- sisend
- inspireeritud
- Intelligentsus
- probleem
- IT
- töö
- Võti
- võtmed
- Labs
- keel
- Keeled
- suur
- juhtivate
- Õppida
- õppimine
- joon
- nimekiri
- Pikk
- masin
- masinõpe
- peamine
- Enamus
- mees
- viis
- Turg
- Vastama
- sobitamine
- meditsiini-
- meetodid
- rohkem
- kõige
- Populaarseim
- liikuv
- mitmekordne
- nimelt
- Natural
- vajadustele
- võrk
- võrgustikud
- normaalne
- numbrid
- arvukad
- pakkuma
- pakutud
- pakkumine
- Pakkumised
- Pakkumised
- ametlik
- jätkuv
- Internetis
- töö
- Valikud
- et
- organisatsioonid
- Korraldatud
- Muu
- omanikud
- osalejad
- makse
- esitades
- periood
- isiklik
- Pioneer
- populaarne
- potentsiaal
- võim
- ennustada
- ennustus
- esitada
- ilus
- eelmine
- hind
- protsess
- Protsessid
- töötlemine
- Toodet
- Programm
- Programmid
- paljutõotav
- anda
- pakkudes
- eesmärkidel
- kiiresti
- RE
- lugeja
- Lugemine
- saama
- leppimine
- andmed
- vähendama
- kohta
- suhe
- taotleda
- nõudma
- nõutav
- Vajab
- teadustöö
- Vahendid
- vastus
- Tulemused
- tagasipöördumine
- riskide
- skaneerimine
- sekundit
- teenus
- Teenused
- komplekt
- mitu
- Lühike
- lühiajaline
- sarnane
- lihtne
- alates
- SUURUS
- tarkvara
- tahke
- Lahendused
- mõned
- spetsialiseeritud
- Spin
- modernne
- avaldused
- statistiline
- ladustamine
- oja
- tugev
- struktureeritud
- mahukas
- edukas
- Toetatud
- Uuring
- suunatud
- ülesanded
- meeskond
- tehnikat
- Tehnoloogiad
- Tehnoloogia
- test
- maailm
- seetõttu
- tuhandeid
- Läbi
- aeg
- korda
- kokku
- tonni
- suunas
- traditsiooniline
- koolitus
- õpetused
- liigid
- mõistma
- ainulaadne
- kasutama
- tavaliselt
- väärtus
- eri
- Kontrollimine
- vaade
- nägemus
- kas
- kuigi
- jooksul
- ilma
- sõnad
- Töö
- töötajate
- maailm
- oleks
- XML
- aastat