Konvertera PDF-data till databasposter PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Konvertera PDF-data till databasposter

Flera organisationer och företag förlitar sig på PDF-dokument för att dela viktiga dokument som fakturor, lönebesked, ekonomi, arbetsorder, kvitton och mer. PDF-filer är dock inte de bästa formaten för att lagra historisk data eftersom de inte enkelt kan exporteras och organiseras i arbetsflöden. Så människor använder informationsextraktionsalgoritmer för att digitalisera PDF-filer och skannade dokument till strukturerade format som JSON, CSV, Tables eller Excel som enkelt kan konverteras till andra organisatoriska arbetsflöden.

I vissa fall innehåller PDF-filer viktig information som ska bearbetas i olika affärssystem, CMS och andra databasdrivna system. Tyvärr har PDF-dokument inte en enkel funktion för PDF till databas, och att skriva skript eller bygga ett arbetsflöde kring denna uppgift är lite komplicerat. Det är här OCR och Deep Learning (DL) algoritmer kommer in i bilden för att extrahera data från dessa PDF-format och exportera dem till en databas. I det här blogginlägget kommer vi att titta på olika sätt för hur du kan åstadkomma det genom att använda DL-teknologier såväl som några populära API:er på marknaden.

Vad är PDF till databaskonvertering?

PDF till databaskonvertering är uppgiften att exportera data från PDF-filer till en databas som Postgres, Mongo, MySQL, etc.

Anta att vi skulle bygga en webbapplikation eller ett affärssystem som håller och underhåller fakturainformation från olika källor. Att lägga till historiska fakturor manuellt i en databas är en uppförsbacke och är mycket felbenägen. Å andra sidan, att använda en enkel OCR kanske inte extraherar tabeller från fakturor korrekt.

Det är här avancerad AI-driven PDF till Databas-konvertering kommer väl till pass!

Kan denna AI-drivna konverteringsprocess för PDF till databas automatiseras? – Ja.

I avsnitten nedan använder vi datorseende och djupinlärning för att upptäcka tabellområden från skannade dokument. Dessa tabeller lagras vidare i ett visst dataformat som CSV eller excel och kommer att skickas direkt in i databaser.

Innan vi diskuterar dessa, låt oss förstå några användningsfall där detektion av PDF till databas kan vara användbart.

Olika användningsfall för PDF till databaser

Databaser är de bästa sätten att lagra information på både moln och lokal lagring. De tillåter oss att utföra olika operationer och manipulationer med enkla frågor. Här är några användningsfall som skulle kunna optimeras avsevärt med ett automatiserat arbetsflöde för konvertering av PDF till databas:

  1. Fakturahantering på webben: Företag och organisationer hanterar flera fakturor varje dag; och det är svårt för dem att behandla varje faktura manuellt. Ibland tar de också emot och tar emot fakturor i ett icke-digitalt format, vilket gör dem svårare att spåra. Därför förlitar de sig på webbaserade applikationer som kan lagra alla sina fakturor på ett ställe. En PDF-till-databaskonverterare kan automatisera datautvinning från fakturorna till webbapplikationen. För att automatisera dessa uppgifter effektivt kunde vi köra cron-jobb och integrera dem med tredjepartstjänster som n8n och Zapier – när en ny faktura skannas och laddas upp kan den köra algoritmen och automatiskt skjuta in den i tabeller.
  2. ECom Lagerförvaltaret: Massor av e-com lagerhantering körs fortfarande genom manuell inmatning av produkter från PDF-filer och skannade kopior. Däremot måste de ladda upp all sin data till programvara för fakturering för att hålla reda på alla sina produkter och försäljning. Att använda algoritmen för konvertering av tabell till databas kan därför hjälpa till att automatisera deras manuella inmatning och spara resurser. Denna process innebär vanligtvis att man skannar inventeringslistan från skannade dokument och exporterar dem till specifika databastabeller baserat på olika affärsregler och villkor.
  3. Dataextraktion från undersökningar: För att samla in feedback och annan värdefull information genomför vi vanligtvis en undersökning. De tillhandahåller en kritisk källa till data och insikter för nästan alla som är engagerade i informationsekonomin, från företag och media till myndigheter och akademiker. När dessa samlas in online är det enkelt att extrahera tabelldatastatusen baserat på användarens svar och ladda upp den till en databas. Men i de flesta fall är enkätsvaren på papper. I sådana fall är det supersvårt att manuellt samla in information från och lagra dem i ett digitalt format. Att förlita sig på en tabell till databasalgoritmer kan därför spara tid och även minska ytterligare kostnader.

Hur extraherar man information från PDF-filer till relationella och icke-relationella databaser?

En PDF-fil ses som två olika typer, elektroniskt genererade och icke-elektroniskt genererade.

  1. Elektroniska PDF-filer: Detta skannade PDF-dokument kan ha dold text bakom bilden; dessa kallas också elektroniskt genererade PDF-filer.
  2. Icke-elektroniska PDF-filer: I den här typen ser vi mer innehåll hårdkodat som bilder. Detta är fallet när du har ett pappersdokument skannat till en PDF-fil.

Vi skulle kunna lita på enkla programmeringsspråk och ramverk som Python och Java för den första typen (elektroniskt genererad). För de icke-elektroniskt genererade PDF-filerna måste vi använda datorseendetekniker med OCR och djupinlärning. Men dessa algoritmer kanske inte är desamma för alla tabellextraktionsalgoritmer, och de kommer att behöva ändras beroende på typen av data för att uppnå högre noggrannhet. NLP (Natural Language Processing) används också för att förstå data i tabeller och extrahera dem i vissa fall.

Å andra sidan finns det två typer av databaser (relationella och icke-relationella); var och en av dessa databaser har olika uppsättningar regler baserat på deras arkitektur. En relationsdatabas är strukturerad, vilket innebär att data är organiserade i tabeller. Några exempel inkluderar MySQL, Postgres, etc.

Däremot är den icke-relationella databasen dokumentorienterad, vilket innebär att all information lagras i mer av en tvättordning. Inom ett enda konstruktordokument kommer du att ha all din data listad – till exempel MongoDB.

PDF till en databas när dokument genereras elektroniskt

Som diskuterats är processen att extrahera tabeller enkel för elektroniskt genererade PDF-filer. Tanken är att extrahera tabeller och sedan använda enkla skript för att konvertera dem eller lägga till dem i tabeller. För tabellextraktion från PDF-filer finns det i första hand två tekniker.

Teknik #1 Stream: Algoritmen analyserar tabeller baserade på blanksteg mellan celler för att simulera en tabellstruktur – för att identifiera var texten inte finns. Det är byggt på PDFMiners funktionalitet att gruppera tecken på en sida i ord och meningar med marginaler. I den här tekniken detekteras först raderna genom att göra grova gissningar baserat på viss texts y-axelposition (dvs. höjd). All text på samma rad anses vara en del av samma rad. Därefter grupperas läsaren och sätts ihop som en annan grupp för att identifiera kolumnerna i tabellen. Slutligen ställs tabellen samman baserat på de rader och kolumner som upptäckts i tidigare steg.

Teknik #2 Gitter: Till skillnad från strömmen är Lattice mer deterministiskt. Det betyder att den inte förlitar sig på gissningar; den analyserar först genom tabeller som har definierade linjer mellan celler. Därefter kan den automatiskt analysera flera tabeller som finns på en sida. Denna teknik fungerar i huvudsak genom att titta på formen på polygoner och identifiera texten inuti tabellcellerna. Detta skulle vara enkelt om en PDF-fil har en funktion som kan identifiera polygoner. Om den hade det, skulle den troligen ha en metod för att läsa vad som finns inuti den. Det gör det dock inte. Därför används datorseende i stor utsträckning för att identifiera dessa former och extrahera innehållet i tabellen.

De extraherade tabellerna sparas i första hand i ett dataramformat. Det är en av de infödda datatyperna som erbjuds av en av de mest populära Python-bibliotekspandas. Det finns flera fördelar med att lagra tabelldata i en dataram. De kan enkelt hanteras, manipuleras och exporteras till olika format som JSON, CSV eller tabeller. Men innan vi skjuter in dessa dataramar i tabeller bör vi först ansluta till DB-Client-databasen och sedan migrera tabellen. Genom att använda språk som Python kan vi hitta flera bibliotek som kan ansluta till dessa datakällor och exportera data.

PDF till databasen när dokument är icke-elektroniskt genererade

De ovan diskuterade teknikerna kanske inte fungerar för icke-elektroniskt genererade PDF-filer, eftersom data här skannas manuellt genom en annan källa. Det är därför vi kommer att använda OCR och Deep Learning-tekniker för att extrahera data från skannade dokument och exportera dem till databaser.

Kort sagt, Optical Character Recognition, OCR är ett specialverktyg som konverterar utskrivna bokstäver från skannade dokument till redigerbar text. För att identifiera PDF-tabeller från dokument måste vi först identifiera tabellens position och sedan använda OCR för att extrahera data från tabellceller. Följande är stegen för hur det uppnås:

  1. Först upptäcker vi linjesegmenten genom att applicera horisontella och vertikala konturer.
  2. Linjeskärningarna mellan linjer detekteras genom att titta på intensiteten hos pixlarna för alla linjer. Om en linjepixel har mer intensitet än resten av pixeln är den en del av två linjer och därför en skärningspunkt.
  3. Bordets kanter bestäms genom att titta på intensiteten hos pixlarna i skärade linjer. Här tas alla pixlar på en linje, och de mest yttre linjerna representerar tabellens gränser.
  4. Bildanalysen översätts till PDF-koordinaterna, där cellerna bestäms. Texten tilldelas en cell baserat på dess x- och y-koordinater.
  5. OCR tillämpas på koordinaterna för att extrahera texten
  6. Den extraherade texten exporteras till en dataram baserat på tabellens position.

Så här kan vi extrahera tabeller med CV. Det finns dock några nackdelar här. Dessa algoritmer misslyckas för stora tabeller och tabeller med olika mallstilar. Det är här djupinlärning kommer in; de använder en speciell sorts neurala nätverksramverk för att lära sig av data och identifiera liknande mönster baserat på lärdomarna. Under det senaste decenniet har de uppnått toppmodern prestanda, särskilt för uppgifter som informationsextraktion. Låt oss nu titta på hur djupa neurala nätverk kan lära av data och extrahera tabeller från vilket dokument som helst.

Att träna djupa neurala nätverk involverar ett specifikt arbetsflöde; dessa arbetsflöden ändras ofta baserat på vilken typ av data vi arbetar med och deras modells prestanda. Den första fasen av arbetsflödet innebär att samla in data och bearbeta dem utifrån vår modell. I vårt fall att extrahera tabellerna från PDF-dokumenten bör datasetet helst innehålla ostrukturerade dokument. Dessa dokument konverteras till bilder, laddas som tensorer och görs redo som en dataladdarklass för träning. Därefter definierar vi vanligtvis alla hyperparametrar som krävs för träning. Dessa inkluderar vanligtvis inställning av batchstorlek, förlustfunktion, optimerare för modellen. Slutligen definieras eller byggs en neural nätverksarkitektur ovanpå en fördefinierad modell. Denna modell kommer att tränas ovanpå data och finjusteras baserat på prestandamåtten.

Följande är en skärmdump av olika steg som är involverade i att träna en modell för djupinlärning:

Typiskt ML-arbetsflöde (Källa)

Extrahera data från pdf och exportera dem till SQL-databas med Python

Hittills har vi lärt oss vad pdf till databaskonvertering är och har diskuterat några användningsfall där det kan vara till hjälp. Det här avsnittet kommer praktiskt att närma sig detta problem med hjälp av Computer Vision och upptäcka tabeller i skannade pdf-filer och exportera dem till databaser. För att följa med, se till att installera Python och OpenCV på din lokala dator. Alternativt kan du använda en Google Collab-anteckningsbok online.

Steg 1: Installera Tabula och Pandas

I det här exemplet kommer vi att använda Tabula och Pandas för att extrahera och pusha tabeller till databaser. Låt oss installera dem via pip och importera dem till vårt program.

import tabula
import pandas as pd

Steg 2: Läsa tabeller i Dataframe

Nu kommer vi att använda read_pdf funktion från tabell för att läsa tabeller från PDF-filer; Observera att detta bibliotek endast fungerar på PDF-dokument som är elektroniskt genererade. Följande är kodavsnittet:

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

df = pd.concat(table)

Här, som vi kan se, först använder vi för att läsa innehållet för PDF-fil, vi ställer in parametern multiple_tables till False, eftersom dokumentet som används i exemplet bara har en tabell.

Nu kommer vi att ladda den här listan i en dataram med hjälp av pandor, och du kan kontrollera tabellens typ genom att använda typmetoden; detta kommer att returnera en inbyggd pandas-dataram.

Steg 3: Migrera Dataframe till Postres

Innan vi skjuter in vår tabell i databaser bör vi först upprätta en anslutning till den från vårt program, och vi kan göra detta med sqlalchemy klient i python. På liknande sätt erbjuder olika programmeringsspråk den här typen av databasklienter att interagera med databaser direkt från våra program.

I det här programmet kommer vi att använda create_engine metod som låter oss ansluta till databasen; se till att ersätta databasuppgifterna i den givna strängen för att få detta att fungera. Därefter använder vi write_frame funktion för att exportera den extraherade tabellen till den anslutna databasen.

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

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

Och precis som det kunde vi exportera tabeller från PDF-filer till databasen, detta ser ganska enkelt och enkelt ut eftersom vi har använt en enkel bearbetad elektroniskt genererad PDF. För att extrahera tabeller från icke-elektroniskt genererade tabeller är följande populära tekniker för djupinlärning som kan användas:

  1. Papers with Code – GFTE: Graph-based Financial Table Extraction
  2. Papers with Code – PubTables-1M: Mot en universell datauppsättning och mätvärden för utbildning och utvärdering av tabellextraktionsmodeller
  3. TableNet: Deep Learning-modell för end-to-end-tabelldetektering och extrahering av data från skannade dokumentbilder

Ange Nanonets: Advanced OCR för PDF Table to Database Conversion

Det här avsnittet kommer att titta på hur Nanonets kan hjälpa oss att utföra tabeller till databasen på ett mer anpassningsbart och enklare sätt.

Nanonets™ är en molnbaserad OCR som kan hjälpa till att automatisera din manuella datainmatning med AI. Vi kommer att ha en dashboard där vi kan bygga/träna våra OCR-modeller på vår data och transportera dem i JSON/CSV eller valfritt format. Här är några av fördelarna med att använda Nanonets som en PDF-dokumentskanner.

En av höjdpunkterna med Nanonets är den enkelhet som tjänsten ger. Man kan välja dessa tjänster utan någon programmeringsbakgrund och enkelt extrahera PDF-data med den senaste tekniken. Följande är en kort beskrivning av hur lätt det är att konvertera PDF till databasen.

Steg 1: Gå till nanonets.com och registrera/logga in.

Konvertera PDF-data till databasposter PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Steg 2: Efter registreringen, gå till området "Välj att komma igång", där du kan använda de förbyggda extraktorerna eller skapa en på egen hand med din datauppsättning. Här kommer vi att använda Invoice pre-built invoice extractor.

Konvertera PDF-data till databasposter PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Steg 3: Ladda upp PDF av bilder för att utföra dataextrahering och välj alternativet för automatisk extrahering.

Konvertera PDF-data till databasposter PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

steg 4: Skapa en ny integration MySQL-integration för att exportera extraherade data till databasen. Alternativt kan du välja olika alternativ baserat på de databaser du väljer.

Konvertera PDF-data till databasposter PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Upprätta dataanslutning och klicka på lägg till integration. Med detta kommer data att extraheras och automatiskt laddas upp till en databas när filer laddas upp. Om du inte hittar de nödvändiga integrationerna kan du alltid använda Nanonets API och skriva enkla skript för att få automatiseringen gjord.

Tidsstämpel:

Mer från AI och maskininlärning