Teisendage PDF-andmed andmebaasikirjeteks PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Teisendage PDF-andmed andmebaasikirjeteks

Mitmed organisatsioonid ja ettevõtted kasutavad PDF-dokumente, et jagada olulisi dokumente, nagu arved, palgalehed, finantsandmed, töökäsud, kviitungid ja palju muud. PDF-failid ei ole aga ajalooliste andmete salvestamiseks mõeldud vormingud, kuna neid ei saa hõlpsasti eksportida ja töövoogudeks korraldada. Seetõttu kasutavad inimesed teabe eraldamise algoritme PDF-ide ja skannitud dokumentide digiteerimiseks struktureeritud vormingutesse, nagu JSON, CSV, tabelid või Excel, mida saab hõlpsasti teisendada muudeks organisatsiooni töövoogudeks.

Mõnel juhul sisaldavad PDF-failid olulist teavet, mida töödelda erinevates ERP-des, CMS-is ja muudes andmebaasipõhistes süsteemides. Kahjuks ei ole PDF-dokumentidel lihtne PDF-i andmebaasi funktsioon ja skriptide kirjutamine või selle ülesande ümber töövoo loomine on pisut keeruline. Siin tulevad pildile OCR ja Deep Learning (DL) algoritmid, et eraldada nendest PDF-vormingutest andmed ja eksportida need andmebaasi. Selles ajaveebi postituses vaatleme erinevaid viise, kuidas saaksite seda saavutada, kasutades DL-tehnoloogiaid ja mõningaid turul populaarseid API-sid.

Mis on PDF-i teisendamine andmebaasiks?

PDF-i teisendamine andmebaasiks on ülesanne PDF-failidest andmete eksportimiseks sellistesse andmebaasidesse nagu Postgres, Mongo, MySQL jne.

Oletame, et ehitame veebirakenduse või ERP-süsteemi, mis hoiab ja haldab erinevatest allikatest pärinevat arveteavet. Ajalooliste arvete käsitsi lisamine andmebaasi on ülesmäge ja väga veatundlik. Teisest küljest ei pruugi lihtsa optilise tekstituvastuse kasutamine tabeleid arvetest täpselt eraldada.

Siin on abiks täiustatud AI-põhise PDF-i teisendamine andmebaasiks!

Kas seda AI-põhist PDF-i andmebaasi teisendamisprotsessi saab automatiseerida? – Jah.

Allolevates jaotistes kasutame skannitud dokumentidest tabelipiirkondade tuvastamiseks arvutinägemist ja süvaõpet. Need tabelid salvestatakse täiendavalt kindlas andmevormingus (nt CSV või Excel) ja need lükatakse otse andmebaasidesse.

Enne nende üle arutlemist mõistkem mõningaid kasutusjuhtumeid, kus PDF-i andmebaasi tuvastamine võib olla kasulik.

PDF-i ja andmebaaside erinevad kasutusjuhud

Andmebaasid on parimad viisid teabe salvestamiseks nii pilve- kui ka kohalikku salvestusruumi. Need võimaldavad meil lihtsate päringute abil teha erinevaid toiminguid ja manipulatsioone. Siin on mõned kasutusjuhud, mida saab automatiseeritud PDF-i andmebaasiks teisendamise töövooga oluliselt optimeerida.

  1. Arvete haldamine veebis: Ettevõtted ja organisatsioonid tegelevad iga päev mitme arvega; ja neil on raske iga arvet käsitsi töödelda. Samuti esitavad ja saavad nad mõnikord arveid mittedigitaalses vormingus, mis muudab nende jälgimise raskemaks. Seetõttu tuginevad nad veebipõhistele rakendustele, mis suudavad kõik oma arved ühes kohas salvestada. PDF-i andmebaasi teisendaja võib automatiseerida andmete ekstraheerimist arvetelt veebirakendusse. Nende ülesannete tõhusaks automatiseerimiseks võiksime käivitada cron-töid ja integreerida need kolmandate osapoolte teenustega, nagu n8n ja Zapier – kui uus arve skannitakse ja üles laaditakse, saab see käivitada algoritmi ja lükata selle automaatselt tabelitesse.
  2. ECO-i varude haldajadt: palju e-com-i varude haldamist jookseb endiselt läbi toodete käsitsi sisestamise PDF-idest ja skannitud koopiatest. Siiski peavad nad kõik oma andmed arveldushaldustarkvarasse üles laadima, et jälgida kõiki oma tooteid ja müüki. Seega võib tabeli andmebaasi teisendamise algoritmi kasutamine aidata nende käsitsi sisestamist automatiseerida ja ressursse säästa. See protsess hõlmab tavaliselt varude loendi skannimist skannitud dokumentidest ja nende eksportimist konkreetsetesse andmebaasi tabelitesse, mis põhinevad erinevatel ärireeglitel ja -tingimustel.
  3. Küsitlustest andmete väljavõtmine: tagasiside ja muu väärtusliku teabe kogumiseks viime tavaliselt läbi küsitluse. Need pakuvad kriitilist andmeallikat ja teadmisi peaaegu kõigile infomajandusega seotud isikutele, alates ettevõtetest ja meediast kuni valitsuste ja teadlasteni. Kui need kogutakse võrgus, on kasutaja vastuse põhjal lihtne tabeliandmete olekut eraldada ja need andmebaasi üles laadida. Enamasti on küsitluse vastused siiski paberil. Sellistel juhtudel on üliraske käsitsi teavet koguda ja digitaalsel kujul salvestada. Seetõttu võib tabelile tuginemine andmebaasi algoritmidele säästa aega ja vähendada ka lisakulusid.

Kuidas eraldada PDF-failidest teavet relatsiooni- ja mitterelatsioonilistesse andmebaasidesse?

PDF-faili vaadeldakse kahte erinevat tüüpi, elektrooniliselt loodud ja mitteelektrooniliselt loodud.

  1. Elektroonilised PDF-id: sellel skannitud PDF-dokumendil võib pildi taga olla peidetud tekst; neid nimetatakse ka elektrooniliselt loodud PDF-ideks.
  2. Mitteelektroonilised PDF-id: seda tüüpi faile näeme rohkem piltidena kodeeritud sisu. See kehtib juhul, kui paberdokument on skannitud PDF-failiks.

Esimese tüübi (elektrooniliselt genereeritud) puhul võiksime tugineda lihtsatele programmeerimiskeeltele ja -raamistikele, nagu Python ja Java. Mitteelektrooniliselt loodud PDF-ide puhul peame kasutama arvutinägemise tehnikaid koos OCR-i ja süvaõppega. Need algoritmid ei pruugi aga kõigi tabeli ekstraheerimisalgoritmide puhul olla ühesugused ja suurema täpsuse saavutamiseks tuleb neid sõltuvalt andmetüübist muuta. NLP-d (loomuliku keele töötlemine) kasutatakse ka tabelites olevate andmete mõistmiseks ja mõnel juhul nende eraldamiseks.

Teisest küljest on olemas kahte tüüpi andmebaase (relatsioonilised ja mitterelatsioonilised); igal neist andmebaasidest on nende arhitektuurist lähtuvalt erinevad reeglistikud. Relatsiooniandmebaas on struktureeritud, mis tähendab, et andmed on korraldatud tabelitesse. Mõned näited hõlmavad MySQL-i, Postgresi jne.

Seevastu mitterelatsiooniline andmebaas on dokumentidele orienteeritud, mis tähendab, et kogu teave salvestatakse pigem pesuloendi järjekorras. Ühes konstruktoridokumendis on kõik teie andmed loetletud – näiteks MongoDB.

PDF andmebaasi, kui dokumendid genereeritakse elektrooniliselt

Nagu öeldud, on elektrooniliselt loodud PDF-ide puhul tabelite ekstraktimise protsess lihtne. Idee on tabelite eraldamine ja seejärel nende teisendamiseks või tabeliteks lisamiseks lihtsate skriptide abil. Tabelite väljavõtmiseks PDF-failidest on peamiselt kaks tehnikat.

Tehnika nr 1 voog: Algoritm analüüsib tabeleid, kasutades lahtritevahelisi tühikuid, et simuleerida tabeli struktuuri – tuvastades, kus teksti pole. See põhineb PDFMineri funktsioonil, mis võimaldab rühmitada lehel olevaid märke veeriste kasutades sõnadeks ja lauseteks. Selle tehnika puhul tuvastatakse read esiteks, tehes ligikaudseid oletusi mõne teksti y-telje asukoha (st kõrguse) põhjal. Kogu samal real olev tekst loetakse sama rea ​​osaks. Järgmisena rühmitatakse lugeja ja pannakse tabeli veergude tuvastamiseks kokku erinevaks rühmaks. Lõpuks koostatakse tabel varasemates etappides tuvastatud ridade ja veergude põhjal.

Tehnika nr 2 võre: Vastupidiselt voolule on Lattice deterministlikum. See tähendab, et see ei tugine oletustele; esmalt analüüsib see tabeleid, millel on lahtrite vahel defineeritud read. Järgmisena saab see automaatselt sõeluda mitut lehel olevat tabelit. See tehnika toimib sisuliselt, vaadeldes hulknurkade kuju ja tuvastades tabeli lahtrites oleva teksti. See oleks lihtne, kui PDF-failil on funktsioon, mis suudab tuvastada hulknurki. Kui see oleks olnud, oleks sellel tõenäoliselt meetod selle sees oleva lugemiseks. Siiski ei tee seda. Seetõttu kasutatakse nende kujundite tuvastamiseks ja tabeli sisu eraldamiseks laialdaselt arvutinägemist.

Ekstraheeritud tabelid salvestatakse peamiselt andmeraami vormingus. See on üks natiivsetest andmetüüpidest, mida pakub üks populaarsemaid Pythoni raamatukogu pandasid. Tabeliandmete andmeraamis salvestamisel on mitmeid eeliseid. Neid saab hõlpsasti käsitseda, töödelda ja eksportida erinevatesse vormingutesse, nagu JSON, CSV või tabelid. Kuid enne nende andmeraamide tabelitesse lükkamist peaksime esmalt ühenduse DB-Client andmebaasiga ja seejärel tabeli migreerima. Kasutades selliseid keeli nagu Python, leiame mitu teeki, mis saavad nende andmeallikatega ühenduse luua ja andmeid eksportida.

PDF andmebaasi, kui dokumendid on mitteelektrooniliselt genereeritud

Eespool käsitletud tehnikad ei pruugi mitteelektrooniliselt loodud PDF-failide puhul töötada, kuna siin olevaid andmeid skannitakse käsitsi teisest allikast. Seetõttu kasutame skannitud dokumentidest andmete eraldamiseks ja andmebaasidesse eksportimiseks OCR- ja Deep Learning tehnikaid.

Lühidalt, Optical Character Recognition, OCR on spetsiaalne tööriist, mis teisendab prinditud tähed skannitud dokumentidest redigeeritavaks tekstiks. PDF-tabelite tuvastamiseks dokumentidest peame esmalt tuvastama tabeli asukoha ja seejärel rakendama OCR-i andmete eraldamiseks tabeli lahtritest. Selle saavutamiseks on toodud järgmised sammud:

  1. Esiteks tuvastame joonelõigud, rakendades horisontaalseid ja vertikaalseid kontuure.
  2. Joonte ristumiskohad tuvastatakse kõigi joonte pikslite intensiivsust vaadates. Kui joonepiksli intensiivsus on suurem kui ülejäänud piksel, on see osa kahest joonest ja seega ristumiskoht.
  3. Tabeli servad määratakse ristuvate joonte pikslite intensiivsuse järgi. Siin võetakse kõik joone pikslid ja kõige rohkem väliseid jooni tähistavad tabeli piire.
  4. Pildianalüüs tõlgitakse PDF-koordinaatidesse, kus määratakse lahtrid. Tekst määratakse lahtrile selle x- ja y-koordinaatide alusel.
  5. Teksti eraldamiseks rakendatakse koordinaatidele OCR-i
  6. Ekstraheeritud tekst eksporditakse tabeli asukoha alusel andmeraami.

Nii saame CV abil tabeleid välja võtta. Siiski on siin mõned puudused. Need algoritmid ebaõnnestuvad suurte tabelite ja erineva mallistiiliga tabelite puhul. Siin tulebki sisse sügav õppimine; nad kasutavad andmetest õppimiseks ja õpitu põhjal sarnaste mustrite tuvastamiseks spetsiaalset närvivõrgu raamistikku. Viimase kümnendi jooksul on nad saavutanud tipptasemel jõudluse, eriti selliste ülesannete puhul nagu teabe hankimine. Nüüd vaatame, kuidas sügavad närvivõrgud saavad andmetest õppida ja mis tahes dokumendist tabeleid välja võtta.

Sügavate närvivõrkude koolitamine hõlmab spetsiifilist töövoogu; neid töövooge muudetakse sageli kasutatavate andmete tüübi ja mudeli jõudluse põhjal. Töövoo esimene etapp hõlmab andmete kogumist ja nende töötlemist meie mudeli alusel. PDF-dokumentidest tabelite ekstraheerimise korral peaks andmestik ideaaljuhul sisaldama struktureerimata dokumente. Need dokumendid teisendatakse kujutisteks, laaditakse tensoritena ja valmistatakse koolituseks andmelaadimisklassina. Järgmisena defineerime tavaliselt kõik hüperparameetrid, mis on treeninguks vajalikud. Need hõlmavad tavaliselt partii suuruse, kadufunktsiooni ja mudeli optimeerija seadistamist. Lõpuks on närvivõrgu arhitektuur määratletud või ehitatud eelnevalt määratletud mudeli peale. Seda mudelit õpetatakse andmete põhjal ja peenhäälestatakse jõudlusmõõdikute põhjal.

Järgnev on ekraanipilt erinevatest sammudest, mis on seotud süvaõppemudeli väljaõppega:

Tüüpiline ML töövoog (allikas)

Andmete ekstraheerimine pdf-ist ja eksportimine Pythoni abil SQL-i andmebaasi

Siiani oleme õppinud, mis on pdf-i teisendamine andmebaasiks, ja arutanud mõningaid kasutusjuhtumeid, kus see võib abiks olla. Selles jaotises käsitletakse seda probleemi praktiliselt, kasutades Computer Visioni, tuvastades skannitud PDF-failides tabeleid ja eksportides need andmebaasidesse. Järgimiseks installige Python ja OpenCV oma kohalikku masinasse. Teise võimalusena võite kasutada veebipõhist Google Collabi märkmikku.

1. samm: installige Tabula ja Pandas

Selles näites kasutame tabelite ekstraktimiseks ja andmebaasidesse lükkamiseks Tabulat ja Pandast. Installime need pipi kaudu ja impordime oma programmi.

import tabula
import pandas as pd

2. samm: tabelite lugemine andmeraami

Nüüd hakkame kasutama read_pdf funktsioon tabelist PDF-failidest tabelite lugemiseks; Pange tähele, et see teek töötab ainult elektrooniliselt loodud PDF-dokumentidega. Järgmine on koodilõik:

table = tabula.read_pdf("sample.pdf",pages='all',multiple_tables=False)

df = pd.concat(table)

Siin, nagu näeme, kasutame esiteks PDF-faili sisu lugemiseks, määrame parameetri multiple_tables väärtuseks False, kuna näites kasutatud dokumendil on ainult üks tabel.

Nüüd laadime selle loendi pandade abil andmeraami ja saate tabeli tüüpi kontrollida tüübimeetodi abil; see tagastab põlispandade andmeraami.

3. samm: andmeraami migreerimine Postresi

Enne kui oma tabeli andmebaasidesse surume, peaksime esmalt looma sellega ühenduse oma programmi kaudu ja saame seda teha kasutades sqlalchemy klient pythonis. Samamoodi pakuvad erinevad programmeerimiskeeled seda tüüpi andmebaasiklientidele andmebaasidega suhtlemist otse meie programmidest.

Selles programmis kasutame create_engine meetod, mis võimaldab meil andmebaasiga ühenduse luua; Selle toimimiseks asendage antud stringis kindlasti andmebaasi mandaadid. Järgmisena kasutame write_frame funktsioon ekstraktitud tabeli eksportimiseks ühendatud andmebaasi.

engine = create_engine('postgresql+psycopg2://username:password@host:port/database')

sql.write_frame(df, 'table_name', con, flavor='postgresql')

Ja just nii saime eksportida tabeleid PDF-failidest andmebaasi, see tundub üsna lihtne ja lihtne, kuna oleme kasutanud lihtsat töödeldud elektrooniliselt loodud PDF-i. Tabelite eraldamiseks mitteelektrooniliselt loodud tabelitest on populaarsed süvaõppetehnikad, mida saab kasutada:

  1. Koodiga dokumendid – GFTE: graafikupõhine finantstabeli väljavõte
  2. Koodiga dokumendid – PubTables-1M: universaalse andmestiku ja mõõdikute poole tabelite ekstraktsioonimudelite koolitamiseks ja hindamiseks
  3. TableNet: süvaõppemudel täielikuks tabeli tuvastamiseks ja skannitud dokumendipiltidest andmete tabeliks eraldamiseks

Sisestage Nanonets: Advanced OCR PDF-tabeli teisendamiseks andmebaasiks

Selles jaotises vaadeldakse, kuidas Nanonets saab aidata meil andmebaasi tabeleid kohandatavamal ja lihtsamal viisil täita.

Nanonets™ on pilvepõhine OCR, mis aitab automatiseerida käsitsi andmete sisestamist tehisintellekti abil. Meil on armatuurlaud, kus saame oma andmete põhjal oma OCR-mudeleid luua/koolitada ja neid JSON-/CSV-vormingus või mis tahes soovitud vormingus transportida. Siin on mõned eelised Nanonetsi kasutamisel PDF-dokumendi skannerina.

Üks Nanonetsi tipphetki on teenuse lihtsus. Neid teenuseid saab valida ilma programmeerimistaustata ja PDF-andmed hõlpsalt ekstraheerida tipptehnoloogia abil. Järgnevalt kirjeldatakse lühidalt, kui lihtne on PDF-i andmebaasi teisendada.

Samm 1: Minge saidile nanonets.com ja registreeruge/logige sisse.

Teisendage PDF-andmed andmebaasikirjeteks PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Samm 2: Pärast registreerimist minge alale "Alustamiseks vali", kus saate kasutada eelseadistatud ekstrakte või luua need oma andmestiku abil ise. Siin kasutame Arve eelehitatud arvete ekstraktorit.

Teisendage PDF-andmed andmebaasikirjeteks PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Samm 3: Andmete ekstraheerimiseks ja automaatse ekstraktimise valimiseks laadige üles piltide PDF-fail.

Teisendage PDF-andmed andmebaasikirjeteks PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Samm 4: looge ekstraheeritud andmete andmebaasi eksportimiseks uus integratsioon MySQL-i integratsioon. Teise võimalusena saate valida erinevaid valikuid vastavalt teie valitud andmebaasidele.

Teisendage PDF-andmed andmebaasikirjeteks PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Looge andmeühendus ja klõpsake nuppu Lisa integratsioon. Sellega ekstraheeritakse andmed ja laaditakse need automaatselt andmebaasi üles, kui failid üles laaditakse. Kui te ei leia vajalikke integratsioone, saate alati kasutada Nanonets API-t ja kirjutada lihtsaid skripte automatiseerimise tegemiseks.

Ajatempel:

Veel alates Tehisintellekt ja masinõpe