Pretvorite podatke PDF v vnose v podatkovno zbirko PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Pretvorite podatke PDF v vnose v zbirko podatkov

Več organizacij in podjetij uporablja dokumente PDF za skupno rabo pomembnih dokumentov, kot so računi, plačilne liste, finance, delovni nalogi, potrdila in drugo. Vendar PDF-ji niso najprimernejši formati za shranjevanje zgodovinskih podatkov, saj jih ni mogoče enostavno izvoziti in organizirati v poteke dela. Tako ljudje uporabljajo algoritme za ekstrakcijo informacij za digitalizacijo datotek PDF in skeniranih dokumentov v strukturirane formate, kot so JSON, CSV, tabele ali Excel, ki jih je mogoče preprosto pretvoriti v druge organizacijske poteke dela.

V nekaterih primerih PDF-ji vsebujejo bistvene informacije, ki jih je treba obdelati v različnih sistemih ERP, CMS in drugih sistemih, ki temeljijo na zbirkah podatkov. Na žalost dokumenti PDF nimajo enostavne funkcije PDF v zbirko podatkov, zato je pisanje skriptov ali ustvarjanje delovnega toka okoli te naloge nekoliko zapleteno. Tukaj nastopita algoritma OCR in Deep Learning (DL), ki iz teh formatov PDF izvlečeta podatke in jih izvozita v bazo podatkov. V tej objavi v spletnem dnevniku si bomo ogledali različne načine, kako lahko to dosežete z uporabo tehnologij DL in nekaterih priljubljenih API-jev na trgu.

What is PDF to Database Conversion?

Pretvorba PDF v bazo podatkov je naloga izvoza podatkov iz datotek PDF v bazo podatkov, kot so Postgres, Mongo, MySQL itd.

Recimo, da bi zgradili spletno aplikacijo ali sistem ERP, ki hrani in vzdržuje podatke o računih iz različnih virov. Ročno dodajanje preteklih računov v bazo podatkov je zahtevna naloga in je zelo nagnjena k napakam. Po drugi strani pa uporaba preprostega OCR morda ne bo natančno izvlekla tabel iz računov.

Tukaj pride prav napredna pretvorba PDF-ja v zbirko podatkov, ki jo poganja AI!

Can this AI-driven PDF to database conversion process be automated? – Yes.

V spodnjih razdelkih uporabljamo računalniški vid in globoko učenje za odkrivanje regij tabel iz skeniranih dokumentov. Te tabele so nadalje shranjene v določenem podatkovnem formatu, kot je CSV ali excel, in bodo potisnjene neposredno v baze podatkov.

Preden razpravljamo o teh, poglejmo nekaj primerov uporabe, kjer je lahko zaznavanje PDF v zbirko podatkov koristno.

Različni primeri uporabe za PDF v zbirke podatkov

Baze podatkov so najboljši načini za shranjevanje informacij v oblaku in lokalnem pomnilniku. Omogočajo nam izvajanje različnih operacij in manipulacij s preprostimi poizvedbami. Tukaj je nekaj primerov uporabe, ki bi jih lahko zelo optimizirali s samodejnim potekom dela za pretvorbo PDF v bazo podatkov:

  1. Upravljanje računov na spletu: Businesses and organizations deal with several invoices every day; and it is hard for them to process each invoice manually. Also, sometimes, they raise and receive invoices in a non-digital format, which makes them harder to track. Hence, they rely on web-based applications that can store all their invoices in one place. A PDF to database converter could automate data extraction from the invoices to the web application. To automate these tasks efficiently, we could run cron jobs and integrate them with third-party services such as n8n and Zapier – when a new invoice is scanned and uploaded, it can run the algorithm and automatically push it into tables.
  2. Upravljavci zalog EComt: Veliko upravljanja zalog e-com še vedno poteka prek ročnega vnosa izdelkov iz PDF-jev in skeniranih kopij. Vendar morajo vse svoje podatke naložiti v programsko opremo za upravljanje obračunavanja, da lahko spremljajo vse svoje izdelke in prodajo. Zato lahko uporaba algoritma za pretvorbo tabele v bazo podatkov pomaga avtomatizirati njihov ročni vnos in prihrani vire. Ta postopek običajno vključuje skeniranje seznama inventarja iz skeniranih dokumentov in njihov izvoz v določene tabele baze podatkov na podlagi različnih poslovnih pravil in pogojev.
  3. Pridobivanje podatkov iz anket: To collect feedback and other valuable information, we usually conduct a survey. They provide a critical source of data and insights for nearly everyone engaged in the information economy, from businesses and the media to government and academics. When these are collected online, it’s easy to extract the table data status based on the user response and upload it onto a database. However, in most cases, survey responses are on paper. In such cases, it’s super hard to manually collect information from and store them in a digital format. Therefore, relying on a table to database algorithms can save time and also cut additional costs.

How to extract information from PDFs to Relational and Non-Relational Databases?

Datoteka PDF se obravnava kot dve različni vrsti, elektronsko ustvarjena in neelektronsko ustvarjena.

  1. Elektronski dokumenti PDF: ta skenirani dokument PDF ima morda skrito besedilo za sliko; ti se imenujejo tudi elektronsko ustvarjeni PDF-ji.
  2. Neelektronski PDF-ji: V tej vrsti vidimo več vsebine, ki je trdo kodirana kot slike. To velja za primer, ko imate papirni dokument, optično prebran v datoteko PDF.

Za prvo vrsto (elektronsko ustvarjeno) bi se lahko zanesli na preproste programske jezike in ogrodja, kot sta Python in Java. Za neelektronsko ustvarjene dokumente PDF bomo morali uporabiti tehnike računalniškega vida z OCR in globokim učenjem. Vendar pa ti algoritmi morda niso enaki za vse algoritme ekstrakcije tabele in se bodo morali spremeniti glede na vrsto podatkov, da bodo dosegli večjo natančnost. NLP (Obdelava naravnega jezika) se uporablja tudi za razumevanje podatkov v tabelah in njihovo ekstrahiranje v nekaterih primerih.

Po drugi strani pa obstajata dve vrsti baz podatkov (relacijske in nerelacijske); vsaka od teh baz podatkov ima različne nize pravil, ki temeljijo na njihovi arhitekturi. Relacijska zbirka podatkov je strukturirana, kar pomeni, da so podatki organizirani v tabelah. Nekaj ​​primerov vključuje MySQL, Postgres itd.

In contrast, the non-relational database is document-oriented, meaning all information gets stored in more of a laundry list order. Within a single constructor document, you will have all of your data listed out – for example, MongoDB.

PDF v bazo podatkov, ko so dokumenti elektronsko ustvarjeni

Kot smo že omenili, je za elektronsko ustvarjene datoteke PDF postopek ekstrahiranja tabel preprost. Ideja je izvleči tabele in jih nato s preprostimi skripti pretvoriti ali dodati v tabele. Za ekstrakcijo tabel iz datotek PDF obstajata predvsem dve tehniki.

Tehnika #1 Stream: The algorithm parses through tables based on whitespaces between cells to simulate a table structure—identifying where the text is not present. It is built on PDFMiner’s functionality of grouping characters on a page into words and sentences using margins. In this technique, first, the rows are detected by making rough guesses based on some text’s y-axis position (i.e., height). All text on the same line is considered to be part of the same row. Next, the reader is grouped and put together as a different group to identify the columns in the table. Lastly, the table is set together based on the rows and columns detected in earlier steps.

Tehnika #2 Rešetka: V nasprotju s tokom je Lattice bolj determinističen. To pomeni, da se ne opira na ugibanja; najprej razčleni tabele, ki imajo določene črte med celicami. Nato lahko samodejno razčleni več tabel na strani. Ta tehnika v bistvu deluje tako, da opazuje obliko poligonov in identificira besedilo v celicah tabele. To bi bilo preprosto, če ima PDF funkcijo, ki lahko prepozna poligone. Če bi ga, bi verjetno imel metodo za branje, kaj je v njem. Vendar pa ne. Zato se računalniški vid široko uporablja za prepoznavanje teh oblik in ekstrahiranje vsebine tabele.

The extracted tables are primarily saved in a data frame format. It is one of the native data types that’s offered by one of the most popular Python library pandas. There are several advantages of storing table data in a data frame. They can be easily handled, manipulated, and exported into different formats such as JSON, CSV, or tables. However, before we push these data frames into tables, we should first connect to the DB-Client database and then migrate the table. Using languages like Python, we can find several libraries that can connect to these data sources and export data.

PDF v bazo podatkov, ko so dokumenti ustvarjeni neelektronsko

Zgoraj obravnavane tehnike morda ne bodo delovale za neelektronsko ustvarjene PDF-je, saj so tukaj podatki ročno skenirani prek drugega vira. Zato bomo uporabljali tehnike OCR in Deep Learning za pridobivanje podatkov iz skeniranih dokumentov in njihov izvoz v baze podatkov.

Na kratko, Optical Character Recognition, OCR je posebno orodje, ki pretvori natisnjene črke iz skeniranih dokumentov v besedilo, ki ga je mogoče urejati. Za identifikacijo tabel PDF iz dokumentov moramo najprej določiti položaj tabele in nato uporabiti OCR za pridobivanje podatkov iz celic tabele. Sledijo koraki, kako to doseči:

  1. Najprej zaznamo segmente črt z uporabo vodoravnih in navpičnih kontur.
  2. Presečišča črt med črtami se zaznajo z opazovanjem intenzivnosti slikovnih pik vseh črt. Če ima linijski piksel večjo intenzivnost kot preostali del piksla, je del dveh črt in je torej presečišče.
  3. Robovi tabele so določeni z opazovanjem intenzivnosti pikslov presekanih črt. Tu so zajete vse slikovne pike črte, najbolj zunanje črte pa predstavljajo meje tabele.
  4. Analiza slike se prevede v PDF koordinate, kjer se določijo celice. Besedilo je dodeljeno celici na podlagi njenih koordinat x in y.
  5. OCR se uporabi za koordinate za ekstrahiranje besedila
  6. Ekstrahirano besedilo se izvozi v podatkovni okvir glede na položaj tabele.

This is how we can extract tables using CV. However, there are a few drawbacks here. These algorithms fail for large tables and tables with different template styles. This is where deep learning comes in; they use a special kind of neural network framework to learn from data and identify similar patterns based on the learnings. Over the last decade, they have achieved state-of-the-art performance, especially for tasks like information extraction. Now, let’s look at how deep neural networks can learn from data and extract tables from any document.

Training deep neural networks involves a specific workflow; these workflows are often altered based on the type of data we are working with and their model’s performance. The first phase of the workflow involves collecting the data and processing them based on our model. In our case of extracting the tables from the PDF documents, the dataset should ideally contain unstructured documents. These documents are converted into images, loaded as tensors, and made ready as a data loader class for training. Next, we usually define all the hyperparameters that are required for training. These usually include setting up the batch size, loss function, optimizer for the model. Lastly, a neural network architecture is defined or built on top of a pre-defined model. This model will be trained on top of data and fine-tuned based on the performance metrics.

Sledi posnetek zaslona različnih korakov, ki so vključeni v usposabljanje modela globokega učenja:

Tipičen potek dela ML (vir)

Ekstrahiranje podatkov iz pdf in izvoz v bazo podatkov SQL z uporabo Pythona

Doslej smo izvedeli, kaj je pretvorba pdf v bazo podatkov, in razpravljali o nekaterih primerih uporabe, kjer je lahko v pomoč. Ta razdelek bo praktično pristopil k tej težavi z uporabo računalniškega vida in zaznal tabele v skeniranih datotekah PDF ter jih izvozil v baze podatkov. Če želite slediti, se prepričajte, da namestite Python in OpenCV na vaš lokalni računalnik. Lahko pa uporabite tudi spletni zvezek Google Collab.

1. korak: Namestite Tabula in Pandas

V tem primeru bomo uporabili Tabulo in Pandas za ekstrahiranje in potiskanje tabel v zbirke podatkov. Namestimo jih prek pipa in jih uvozimo v naš program.

import tabula
import pandas as pd

2. korak: Branje tabel v Dataframe

Zdaj bomo uporabljali read_pdf funkcija iz tabele za branje tabel iz datotek PDF; upoštevajte, da ta knjižnica deluje samo na dokumentih PDF, ki so ustvarjeni elektronsko. Sledi delček kode:

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

df = pd.concat(table)

Tukaj, kot lahko vidimo, najprej uporabimo za branje vsebine za datoteko PDF, nastavimo parameter multiple_tables na False, saj ima dokument, uporabljen v primeru, samo eno tabelo.

Sedaj bomo ta seznam naložili v podatkovni okvir z uporabo pand, vrsto tabele pa lahko preverite z metodo type; to bo vrnilo izvorni podatkovni okvir pande.

3. korak: selitev Dataframe v Postres

Preden našo tabelo potisnemo v baze podatkov, moramo najprej vzpostaviti povezavo z njo iz našega programa, kar lahko storimo z uporabo sqlalchemy odjemalec v pythonu. Podobno različni programski jeziki tovrstnim odjemalcem baz podatkov omogočajo interakcijo z bazami podatkov neposredno iz naših programov.

V tem programu bomo uporabljali create_engine metoda, ki nam omogoča povezavo z bazo podatkov; poskrbite, da boste zamenjali poverilnice baze podatkov v danem nizu, da bo to delovalo. Nato uporabimo write_frame funkcijo za izvoz ekstrahirane tabele v povezano bazo podatkov.

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

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

In ravno tako smo lahko izvozili tabele iz datotek PDF v bazo podatkov, kar je videti precej preprosto in enostavno, saj smo uporabili preprosto obdelan elektronsko ustvarjen PDF. Za ekstrahiranje tabel iz neelektronsko ustvarjenih tabel so naslednje priljubljene tehnike globokega učenja, ki jih je mogoče uporabiti:

  1. Papers with Code – GFTE: Graph-based Financial Table Extraction
  2. Papers with Code – PubTables-1M: Towards a universal dataset and metrics for training and evaluating table extraction models
  3. TableNet: model globokega učenja za odkrivanje tabel od konca do konca in ekstrakcijo tabelarnih podatkov iz skeniranih slik dokumentov

Vnesite Nanonets: Napredno OCR za pretvorbo tabele PDF v bazo podatkov

V tem razdelku bomo preučili, kako nam lahko Nanonets pomagajo izvajati tabele v bazi podatkov na bolj prilagodljiv in lažji način.

Nanonets™ je OCR v oblaku, ki vam lahko pomaga avtomatizirati ročni vnos podatkov z AI. Imeli bomo nadzorno ploščo, kjer bomo lahko zgradili/učili naše modele OCR na naših podatkih in jih prenesli v JSON/CSV ali kateri koli želeni format. Tukaj je nekaj prednosti uporabe Nanonetov kot skenerja dokumentov PDF.

Eden od vrhuncev Nanonetov je preprostost, ki jo prinaša storitev. Za te storitve se lahko odločite brez kakršnega koli programskega ozadja in preprosto izvlečete podatke PDF z vrhunsko tehnologijo. Sledi kratek opis, kako preprosto je pretvoriti PDF v bazo podatkov.

Korak 1: Pojdite na nanonets.com in se registrirajte/prijavite.

Pretvorite podatke PDF v vnose v podatkovno zbirko PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Korak 2: Po registraciji pojdite na področje »Izberite za začetek«, kjer lahko uporabite vnaprej izdelane ekstraktorje ali ga ustvarite sami z uporabo vašega nabora podatkov. Tukaj bomo uporabljali vnaprej izdelan ekstraktor računov.

Pretvorite podatke PDF v vnose v podatkovno zbirko PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Korak 3: Naložite PDF s slikami, da izvedete ekstrakcijo podatkov in izberete možnost samodejnega ekstrahiranja.

Pretvorite podatke PDF v vnose v podatkovno zbirko PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

korak 4: Ustvari novo integracijo MySQL integracijo za izvoz ekstrahiranih podatkov v bazo podatkov. Druga možnost je, da izberete različne možnosti, ki temeljijo na zbirkah podatkov po vaši izbiri.

Pretvorite podatke PDF v vnose v podatkovno zbirko PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Vzpostavite podatkovno povezavo in kliknite dodaj integracijo. S tem bodo podatki ekstrahirani in samodejno naloženi v bazo podatkov vsakič, ko se naložijo datoteke. Če ne najdete zahtevanih integracij, lahko kadar koli uporabite Nanonets API in napišete preproste skripte za izvedbo avtomatizacije.

Časovni žig:

Več od AI in strojno učenje