Konverter PDF-data til Database Entries PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Konverter PDF-data til databaseindgange

Flere organisationer og virksomheder er afhængige af PDF-dokumenter til at dele vigtige dokumenter såsom fakturaer, lønsedler, økonomi, arbejdsordrer, kvitteringer og mere. PDF'er er dog ikke de bedste formater til lagring af historiske data, da de ikke let kan eksporteres og organiseres i arbejdsgange. Så folk bruger informationsudtrækningsalgoritmer til at digitalisere PDF'er og scannede dokumenter til strukturerede formater som JSON, CSV, Tables eller Excel, der nemt kan konverteres til andre organisatoriske arbejdsgange.

I nogle tilfælde indeholder PDF'er væsentlig information, der skal behandles i forskellige ERP'er, CMS og andre databasedrevne systemer. Desværre har PDF-dokumenter ikke en nem PDF-til-database-funktion, og det er lidt kompliceret at skrive scripts eller opbygge en arbejdsgang omkring denne opgave. Det er her OCR og Deep Learning (DL) algoritmer kommer ind i billedet for at udtrække data fra disse PDF-formater og eksportere dem til en database. I dette blogindlæg vil vi se på forskellige måder for, hvordan du kan opnå det ved at bruge DL-teknologier samt nogle populære API'er på markedet.

Hvad er PDF til databasekonvertering?

PDF til databasekonvertering er opgaven med at eksportere data fra PDF-filer til en database som Postgres, Mongo, MySQL osv.

Antag, at vi skulle bygge en webapplikation eller et ERP-system, der opbevarer og vedligeholder fakturaoplysninger fra forskellige kilder. Tilføjelse af historiske fakturaer manuelt til en database er en op ad bakke opgave og er meget udsat for fejl. På den anden side kan brug af en simpel OCR muligvis ikke udtrække tabeller fra fakturaer nøjagtigt.

Det er her, avanceret AI-drevet PDF til Database-konvertering er praktisk!

Kan denne AI-drevne PDF til database konverteringsproces automatiseres? - Ja.

I afsnittene nedenfor bruger vi computersyn og dyb læring til at registrere tabelområder fra scannede dokumenter. Disse tabeller gemmes yderligere i et bestemt dataformat såsom CSV eller excel og vil blive skubbet direkte ind i databaser.

Før vi diskuterer disse, lad os forstå nogle use-cases, hvor PDF til database-detektion kan være nyttig.

Forskellige use-cases for PDF til databaser

Databaser er de bedste måder at gemme information på både cloud og lokal lagring. De giver os mulighed for at udføre forskellige operationer og manipulationer ved hjælp af simple forespørgsler. Her er nogle use cases, der kunne optimeres meget med en automatiseret PDF til database konvertering workflow:

  1. Fakturastyring på nettet: Virksomheder og organisationer håndterer flere fakturaer hver dag; og det er svært for dem at behandle hver faktura manuelt. Nogle gange rejser og modtager de også fakturaer i et ikke-digitalt format, hvilket gør dem sværere at spore. Derfor er de afhængige af webbaserede applikationer, der kan gemme alle deres fakturaer ét sted. En PDF til database konverter kunne automatisere dataudtræk fra fakturaerne til webapplikationen. For at automatisere disse opgaver effektivt kunne vi køre cron-job og integrere dem med tredjepartstjenester som n8n og Zapier – når en ny faktura scannes og uploades, kan den køre algoritmen og automatisk skubbe den ind i tabeller.
  2. ECom Lagerforvalteret: Masser af e-com lagerstyring kører stadig gennem manuel indtastning af produkter fra PDF'er og scannede kopier. De skal dog uploade alle deres data til faktureringsstyringssoftware for at holde styr på alle deres produkter og salg. Derfor kan brug af tabel-til-database-konverteringsalgoritmen hjælpe med at automatisere deres manuelle indtastning og spare ressourcer. Denne proces involverer typisk scanning af inventarlisten fra scannede dokumenter og eksport af dem til specifikke databasetabeller baseret på forskellige forretningsregler og -betingelser.
  3. Dataudtræk fra undersøgelser: For at indsamle feedback og andre værdifulde oplysninger gennemfører vi normalt en undersøgelse. De giver en kritisk kilde til data og indsigt for næsten alle, der er involveret i informationsøkonomien, fra virksomheder og medier til regering og akademikere. Når disse er indsamlet online, er det nemt at udtrække tabeldatastatus baseret på brugersvaret og uploade det til en database. Men i de fleste tilfælde er undersøgelsessvar på papir. I sådanne tilfælde er det super svært manuelt at indsamle oplysninger fra og gemme dem i et digitalt format. At stole på en tabel til databasealgoritmer kan derfor spare tid og også reducere yderligere omkostninger.

Hvordan udtrækker man information fra PDF-filer til relationelle og ikke-relationelle databaser?

En PDF-fil ses som to forskellige typer, elektronisk genereret og ikke-elektronisk genereret.

  1. Elektroniske PDF'er: Dette scannede PDF-dokument kan have skjult tekst bag billedet; disse omtales også som elektronisk genererede PDF'er.
  2. Ikke-elektroniske PDF'er: I denne type ser vi mere indhold hårdkodet som billeder. Dette er tilfældet, når du har et papirdokument scannet til en PDF-fil.

Vi kunne stole på simple programmeringssprog og rammer som Python og Java til den første type (elektronisk genereret). For de ikke-elektronisk genererede PDF'er skal vi bruge Computer Vision-teknikker med OCR og deep learning. Disse algoritmer er dog muligvis ikke de samme for alle tabeludtræksalgoritmerne, og de skal ændres afhængigt af typen af ​​data for at opnå højere nøjagtighed. NLP (Natural Language Processing) bruges også til at forstå dataene i tabeller og udtrække dem i nogle tilfælde.

På den anden side er der to slags databaser (relationelle og ikke-relationelle); hver af disse databaser har forskellige sæt regler baseret på deres arkitektur. En relationel database er struktureret, hvilket betyder, at data er organiseret i tabeller. Nogle få eksempler inkluderer MySQL, Postgres osv.

I modsætning hertil er den ikke-relationelle database dokumentorienteret, hvilket betyder, at alle oplysninger bliver gemt i mere en vaskeri rækkefølge. Inden for et enkelt konstruktørdokument vil du have alle dine data opført - for eksempel MongoDB.

PDF til en database, når dokumenter genereres elektronisk

Som nævnt er processen med at udtrække tabeller ligetil for elektronisk genererede PDF'er. Ideen er at udtrække tabeller og derefter bruge simple scripts til at konvertere dem eller tilføje dem til tabeller. Til tabeludtræk fra PDF'er er der primært to teknikker.

Teknik #1 Stream: Algoritmen analyserer tabeller baseret på mellemrum mellem celler for at simulere en tabelstruktur – identificerer, hvor teksten ikke er til stede. Det er bygget på PDFMiners funktionalitet med at gruppere tegn på en side i ord og sætninger ved hjælp af marginer. I denne teknik bliver rækkerne først detekteret ved at lave grove gæt baseret på en teksts y-akseposition (dvs. højde). Al tekst på samme linje anses for at være en del af den samme række. Derefter bliver læseren grupperet og sat sammen som en anden gruppe for at identificere kolonnerne i tabellen. Til sidst sættes tabellen sammen baseret på de rækker og kolonner, der er fundet i tidligere trin.

Teknik #2 gitter: I modsætning til strømmen er Lattice mere deterministisk. Det betyder, at den ikke er afhængig af gæt; den analyserer først tabeller, der har definerede linjer mellem celler. Dernæst kan den automatisk parse flere tabeller på en side. Denne teknik fungerer i det væsentlige ved at se på formen af ​​polygoner og identificere teksten inde i tabelcellerne. Dette ville være enkelt, hvis en PDF-fil har en funktion, der kan identificere polygoner. Hvis den havde, ville den sandsynligvis have en metode til at læse, hvad der er inde i den. Det gør den dog ikke. Derfor er computersyn i vid udstrækning brugt til at identificere disse former og udtrække indholdet af tabellen.

De udtrukne tabeller gemmes primært i et datarammeformat. Det er en af ​​de indfødte datatyper, der tilbydes af en af ​​de mest populære Python-bibliotekspandaer. Der er flere fordele ved at gemme tabeldata i en dataramme. De kan nemt håndteres, manipuleres og eksporteres til forskellige formater såsom JSON, CSV eller tabeller. Men før vi skubber disse datarammer ind i tabeller, bør vi først oprette forbindelse til DB-Client-databasen og derefter migrere tabellen. Ved at bruge sprog som Python kan vi finde flere biblioteker, der kan oprette forbindelse til disse datakilder og eksportere data.

PDF til databasen, når dokumenter er ikke-elektronisk genereret

De ovenfor omtalte teknikker virker muligvis ikke for ikke-elektronisk genererede PDF'er, da dataene her scannes manuelt gennem en anden kilde. Det er derfor, vi vil bruge OCR- og Deep Learning-teknikker til at udtrække data fra scannede dokumenter og eksportere dem til databaser.

Kort sagt, Optical Character Recognition, OCR er et specielt værktøj, der konverterer udskrevne bogstaver fra scannede dokumenter til redigerbar tekst. For at identificere PDF-tabeller fra dokumenter skal vi først identificere tabellens position og derefter anvende OCR til at udtrække data fra tabelceller. Følgende er trinene til, hvordan det opnås:

  1. Først detekterer vi linjesegmenterne ved at anvende vandrette og lodrette konturer.
  2. Linjeskæringerne mellem linjer detekteres ved at se på intensiteten af ​​pixels på alle linjer. Hvis en linjepixel har mere intensitet end resten af ​​pixlen, er den en del af to linjer og derfor et skæringspunkt.
  3. Bordets kanter bestemmes ved at se på intensiteten af ​​pixels af skærede linjer. Her tages alle pixels i en linje, og de mest eksterne linjer repræsenterer tabellens grænser.
  4. Billedanalysen oversættes til PDF-koordinaterne, hvor cellerne bestemmes. Teksten tildeles en celle baseret på dens x- og y-koordinater.
  5. OCR anvendes på koordinaterne for at udtrække teksten
  6. Den udtrukne tekst eksporteres til en dataramme baseret på tabellens placering.

Sådan kan vi udtrække tabeller ved hjælp af CV. Der er dog et par ulemper her. Disse algoritmer fejler for store tabeller og tabeller med forskellige skabelonstile. Det er her, deep learning kommer ind; de bruger en særlig slags neurale netværksramme til at lære af data og identificere lignende mønstre baseret på læringen. I løbet af det sidste årti har de opnået avanceret ydeevne, især til opgaver som informationsudtrækning. Lad os nu se på, hvordan dybe neurale netværk kan lære af data og udtrække tabeller fra ethvert dokument.

Træning af dybe neurale netværk involverer en specifik arbejdsgang; disse arbejdsgange bliver ofte ændret baseret på den type data, vi arbejder med, og deres models ydeevne. Den første fase af arbejdsgangen involverer indsamling af data og behandling af dem baseret på vores model. I vores tilfælde med at udtrække tabellerne fra PDF-dokumenterne, bør datasættet ideelt set indeholde ustrukturerede dokumenter. Disse dokumenter konverteres til billeder, indlæses som tensorer og gøres klar som en dataindlæserklasse til træning. Dernæst definerer vi normalt alle de hyperparametre, der kræves til træning. Disse omfatter normalt opsætning af batchstørrelse, tabsfunktion, optimering for modellen. Endelig er en neural netværksarkitektur defineret eller bygget oven på en foruddefineret model. Denne model vil blive trænet oven på data og finjusteret baseret på præstationsmålingerne.

Følgende er et skærmbillede af forskellige trin, der er involveret i træning af en dyb læringsmodel:

Typisk ML arbejdsgang (Kilde)

Udtrække data fra pdf og eksportere dem til SQL-database ved hjælp af Python

Indtil videre har vi lært, hvad pdf til database konvertering er og har diskuteret nogle use-cases, hvor det kan være nyttigt. Dette afsnit vil praktisk talt nærme sig dette problem ved hjælp af Computer Vision og finde tabeller i scannede pdf'er og eksportere dem til databaser. For at følge med skal du sørge for at installere Python og OpenCV på din lokale maskine. Alternativt kan du bruge en online Google Collab-notesbog.

Trin 1: Installer Tabula og Pandas

I dette eksempel vil vi bruge Tabula og Pandas til at udtrække og skubbe tabeller ind i databaser. Lad os installere dem via pip og importere dem til vores program.

import tabula
import pandas as pd

Trin 2: Læsning af tabeller i dataramme

Nu vil vi bruge read_pdf funktion fra tabel til at læse tabeller fra PDF'er; Bemærk, at dette bibliotek kun virker på PDF-dokumenter, der er elektronisk genereret. Følgende er kodestykket:

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

df = pd.concat(table)

Her, som vi kan se, først bruger vi til at læse indholdet til PDF-fil, vi indstiller parameteren multiple_tables til Falsk, da dokumentet brugt i eksemplet kun har én tabel.

Nu vil vi indlæse denne liste i en dataramme ved hjælp af pandaer, og du kan kontrollere tabellens type ved at bruge typemetoden; dette vil returnere en indfødt panda-dataramme.

Trin 3: Migrering af Dataframe til Postres

Før vi skubber vores tabel ind i databaser, bør vi først etablere en forbindelse til den fra vores program, og vi kan gøre dette ved at bruge sqlalchemy klient i python. Tilsvarende tilbyder forskellige programmeringssprog denne type databaseklienter til at interagere med databaser direkte fra vores programmer.

I dette program vil vi bruge create_engine metode, der lader os forbinde med databasen; sørg for at erstatte database-legitimationsoplysningerne i den givne streng for at få dette til at virke. Dernæst bruger vi write_frame funktion til at eksportere den udpakkede tabel til den tilsluttede database.

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

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

Og ligesom det var vi i stand til at eksportere tabeller fra PDF'er til databasen, dette ser ret ligetil og nemt ud, da vi har brugt en simpel behandlet elektronisk genereret PDF. Til at udtrække tabeller fra ikke-elektronisk genererede tabeller er følgende populære deep learning-teknikker, der kan bruges:

  1. Papers with Code – GFTE: Graph-based Financial Table Extraction
  2. Papers with Code – PubTables-1M: Mod et universelt datasæt og målinger til træning og evaluering af tabeludtræksmodeller
  3. TableNet: Deep Learning-model til end-to-end tabeldetektion og tabeldataudtræk fra scannede dokumentbilleder

Indtast Nanonets: Advanced OCR for PDF Table to Database Conversion

Dette afsnit vil se på, hvordan Nanonets kan hjælpe os med at udføre tabeller til databasen på en mere tilpasselig og nemmere måde.

Nanonets™ er en cloud-baseret OCR, der kan hjælpe med at automatisere din manuelle dataindtastning ved hjælp af AI. Vi vil have et dashboard, hvor vi kan bygge/træne vores OCR-modeller på vores data og transportere dem i JSON/CSV eller et hvilket som helst ønsket format. Her er nogle af fordelene ved at bruge Nanonets som en PDF-dokumentscanner.

Et af højdepunkterne ved Nanonets er den enkelhed, tjenesten bringer. Man kan vælge disse tjenester uden nogen programmeringsbaggrund og nemt udtrække PDF-data med banebrydende teknologi. Det følgende er en kort oversigt over, hvor nemt det er at konvertere PDF til databasen.

Trin 1: Gå til nanonets.com og registrer/log ind.

Konverter PDF-data til Database Entries PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Trin 2: Efter registreringen skal du gå til området "Vælg at komme i gang", hvor du kan bruge de forudbyggede udtrækkere eller oprette en på egen hånd ved hjælp af dit datasæt. Her vil vi bruge Invoice pre-built invoice extractor.

Konverter PDF-data til Database Entries PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Trin 3: Upload PDF af billeder for at udføre dataudtræk og vælg automatisk udtræk.

Konverter PDF-data til Database Entries PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Trin 4: Opret en ny integration MySQL integration for at eksportere udtrukne data til databasen. Alternativt kan du vælge forskellige muligheder baseret på de databaser du ønsker.

Konverter PDF-data til Database Entries PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Opret dataforbindelse, og klik på tilføj integration. Med dette vil dataene blive udtrukket og automatisk uploadet til en database, hver gang filer uploades. Hvis du ikke finder de nødvendige integrationer, kan du altid bruge Nanonets API og skrive simple scripts for at få automatiseringen gennemført.

Tidsstempel:

Mere fra AI og maskinindlæring