Converti dati PDF in voci di database PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Converti dati PDF in voci di database

Diverse organizzazioni e aziende si affidano ai documenti PDF per condividere documenti importanti come fatture, buste paga, dati finanziari, ordini di lavoro, ricevute e altro ancora. Tuttavia, i PDF non sono i formati ideali per l'archiviazione dei dati storici poiché non possono essere facilmente esportati e organizzati in flussi di lavoro. Quindi le persone utilizzano algoritmi di estrazione delle informazioni per digitalizzare PDF e documenti scansionati in formati strutturati come JSON, CSV, tabelle o Excel che possono essere facilmente convertiti in altri flussi di lavoro organizzativi.

In alcuni casi, i PDF contengono informazioni essenziali da elaborare in diversi ERP, CMS e altri sistemi basati su database. Sfortunatamente, i documenti PDF non hanno una semplice funzione da PDF a database e scrivere script o creare un flusso di lavoro attorno a questa attività è un po' complicato. È qui che entrano in gioco gli algoritmi OCR e Deep Learning (DL) per estrarre i dati da questi formati PDF ed esportarli in un database. In questo post del blog, esamineremo diversi modi per ottenere ciò utilizzando le tecnologie DL e alcune API popolari sul mercato.

Che cos'è la conversione da PDF a database?

La conversione da PDF a database è il compito di esportare i dati dai PDF in un database come Postgres, Mongo, MySQL, ecc.

Supponiamo di dover creare un'applicazione web o un sistema ERP che contenga e mantenga informazioni sulle fatture provenienti da diverse fonti. L'aggiunta manuale di fatture storiche a un database è un compito difficile ed è altamente soggetto a errori. D'altra parte, l'utilizzo di un semplice OCR potrebbe non estrarre le tabelle dalle fatture in modo accurato.

È qui che torna utile la conversione avanzata da PDF a database basata sull'intelligenza artificiale!

Questo processo di conversione da PDF a database basato sull'intelligenza artificiale può essere automatizzato? - Sì.

Nelle sezioni seguenti, utilizziamo la visione artificiale e il deep learning per rilevare le regioni della tabella dai documenti scansionati. Queste tabelle sono inoltre archiviate in un particolare formato di dati come CSV o excel e verranno inviate direttamente nei database.

Prima di discuterne, comprendiamo alcuni casi d'uso in cui può essere utile il rilevamento da PDF a database.

Diversi casi d'uso da PDF a database

I database sono i modi migliori per archiviare le informazioni sia sul cloud che sull'archiviazione locale. Ci consentono di eseguire diverse operazioni e manipolazioni utilizzando semplici query. Ecco alcuni casi d'uso che potrebbero essere notevolmente ottimizzati con un flusso di lavoro automatizzato di conversione da PDF a database:

  1. Gestione Fatture sul Web: Le aziende e le organizzazioni gestiscono più fatture ogni giorno; ed è difficile per loro elaborare manualmente ogni fattura. Inoltre, a volte, emettono e ricevono fatture in un formato non digitale, il che le rende più difficili da tracciare. Pertanto, si affidano ad applicazioni basate sul Web in grado di archiviare tutte le fatture in un unico posto. Un convertitore da PDF a database potrebbe automatizzare l'estrazione dei dati dalle fatture all'applicazione web. Per automatizzare queste attività in modo efficiente, potremmo eseguire lavori cron e integrarli con servizi di terze parti come n8n e Zapier: quando una nuova fattura viene scansionata e caricata, può eseguire l'algoritmo e inserirla automaticamente nelle tabelle.
  2. Gestione scorte EComt: Gran parte della gestione dell'inventario e-com viene ancora eseguita tramite l'inserimento manuale dei prodotti da PDF e copie scansionate. Tuttavia, devono caricare tutti i loro dati nel software di gestione della fatturazione per tenere traccia di tutti i loro prodotti e vendite. Pertanto, l'utilizzo dell'algoritmo di conversione da tabella a database può aiutare ad automatizzare l'immissione manuale e risparmiare risorse. Questo processo prevede in genere la scansione dell'elenco di inventario dai documenti scansionati e l'esportazione in tabelle di database specifiche in base a regole e condizioni aziendali diverse.
  3. Estrazione dei dati dai sondaggi: per raccogliere feedback e altre informazioni preziose, di solito conduciamo un sondaggio. Forniscono una fonte fondamentale di dati e approfondimenti per quasi tutti coloro che sono coinvolti nell'economia dell'informazione, dalle aziende e dai media al governo e al mondo accademico. Quando questi vengono raccolti online, è facile estrarre lo stato dei dati della tabella in base alla risposta dell'utente e caricarlo su un database. Tuttavia, nella maggior parte dei casi, le risposte ai sondaggi sono su carta. In questi casi, è estremamente difficile raccogliere manualmente le informazioni e archiviarle in un formato digitale. Pertanto, affidarsi ad algoritmi da tabella a database può far risparmiare tempo e anche ridurre i costi aggiuntivi.

Come estrarre informazioni dai PDF ai database relazionali e non relazionali?

Un file PDF è visto come due tipi diversi, generato elettronicamente e generato non elettronicamente.

  1. PDF elettronici: questo documento PDF scansionato potrebbe avere del testo nascosto dietro l'immagine; questi sono anche indicati come PDF generati elettronicamente.
  2. PDF non elettronici: in questo tipo, vediamo più contenuti codificati come immagini. Questo è il caso quando si dispone di un documento cartaceo scansionato in un file PDF.

Potremmo fare affidamento su semplici linguaggi di programmazione e framework come Python e Java per il primo tipo (generato elettronicamente). Per i PDF generati non elettronicamente, dovremo utilizzare tecniche di visione artificiale con OCR e deep learning. Tuttavia, questi algoritmi potrebbero non essere gli stessi per tutti gli algoritmi di estrazione delle tabelle e dovranno cambiare a seconda del tipo di dati per ottenere una maggiore precisione. NLP (Natural Language Processing) viene utilizzato anche per comprendere i dati all'interno delle tabelle ed estrarli in alcuni casi.

Esistono invece due tipi di database (relazionali e non relazionali); ciascuno di questi database ha diversi insiemi di regole in base alla loro architettura. Un database relazionale è strutturato, ovvero i dati sono organizzati in tabelle. Alcuni esempi includono MySQL, Postgres, ecc.

Al contrario, il database non relazionale è orientato ai documenti, il che significa che tutte le informazioni vengono archiviate in più di un ordine di lista della biancheria. All'interno di un singolo documento costruttore, avrai tutti i tuoi dati elencati, ad esempio MongoDB.

PDF in un database quando i documenti vengono generati elettronicamente

Come discusso, per i PDF generati elettronicamente, il processo di estrazione delle tabelle è semplice. L'idea è di estrarre tabelle e quindi utilizzare semplici script per convertirle o aggiungerle in tabelle. Per l'estrazione di tabelle dai PDF, esistono principalmente due tecniche.

Tecnica n. 1 Stream: L'algoritmo analizza le tabelle in base agli spazi bianchi tra le celle per simulare una struttura di tabella, identificando dove il testo non è presente. Si basa sulla funzionalità di PDFMiner di raggruppare i caratteri di una pagina in parole e frasi usando i margini. In questa tecnica, in primo luogo, le righe vengono rilevate effettuando ipotesi approssimative basate sulla posizione dell'asse y del testo (ad esempio, l'altezza). Tutto il testo sulla stessa riga è considerato parte della stessa riga. Successivamente, il lettore viene raggruppato e messo insieme come un gruppo diverso per identificare le colonne nella tabella. Infine, la tabella viene impostata insieme in base alle righe e alle colonne rilevate nei passaggi precedenti.

Tecnica n. 2 Reticolo: In contrasto con il flusso, Lattice è più deterministico. Significa che non si basa su ipotesi; prima analizza le tabelle che hanno linee definite tra le celle. Successivamente, può analizzare automaticamente più tabelle presenti in una pagina. Questa tecnica funziona essenzialmente osservando la forma dei poligoni e identificando il testo all'interno delle celle della tabella. Questo sarebbe semplice se un PDF ha una funzione in grado di identificare i poligoni. Se lo fosse, avrebbe plausibilmente un metodo per leggere cosa c'è dentro. Tuttavia, non è così. Quindi, la visione artificiale è ampiamente utilizzata per identificare queste forme ed estrarre il contenuto della tabella.

Le tabelle estratte vengono salvate principalmente in un formato frame di dati. È uno dei tipi di dati nativi offerti da uno dei panda della libreria Python più popolari. Ci sono diversi vantaggi della memorizzazione dei dati della tabella in un frame di dati. Possono essere facilmente gestiti, manipolati ed esportati in diversi formati come JSON, CSV o tabelle. Tuttavia, prima di inserire questi frame di dati nelle tabelle, dobbiamo prima connetterci al database DB-Client e quindi migrare la tabella. Usando linguaggi come Python, possiamo trovare diverse librerie che possono connettersi a queste origini dati ed esportare dati.

PDF nel database quando i documenti vengono generati non elettronicamente

Le tecniche sopra discusse potrebbero non funzionare per PDF non generati elettronicamente, poiché i dati qui vengono scansionati manualmente attraverso una fonte diversa. Questo è il motivo per cui utilizzeremo tecniche OCR e Deep Learning per estrarre i dati dai documenti scansionati ed esportarli in database.

In breve, il riconoscimento ottico dei caratteri, OCR è uno strumento speciale che converte le lettere stampate dai documenti scansionati in testo modificabile. Per identificare le tabelle PDF dai documenti, dobbiamo prima identificare la posizione della tabella e quindi applicare l'OCR per estrarre i dati dalle celle della tabella. Di seguito sono riportati i passaggi su come si ottiene:

  1. Innanzitutto, rileviamo i segmenti di linea applicando contorni orizzontali e verticali.
  2. Le intersezioni di linea tra le linee vengono rilevate osservando l'intensità dei pixel di tutte le linee. Se un pixel di linea ha più intensità del resto del pixel, fa parte di due linee e, quindi, di un'intersezione.
  3. I bordi del tavolo sono determinati osservando l'intensità dei pixel delle linee intersecate. Qui vengono presi tutti i pixel di una linea e le linee più esterne rappresentano i confini della tabella.
  4. L'analisi dell'immagine viene tradotta nelle coordinate PDF, dove vengono determinate le celle. Il testo viene assegnato a una cella in base alle sue coordinate xey.
  5. L'OCR viene applicato alle coordinate per estrarre il testo
  6. Il testo estratto viene esportato in un frame di dati in base alla posizione della tabella.

Ecco come possiamo estrarre tabelle usando CV. Tuttavia, ci sono alcuni inconvenienti qui. Questi algoritmi hanno esito negativo per tabelle e tabelle di grandi dimensioni con stili di modello diversi. È qui che entra in gioco il deep learning; usano un tipo speciale di struttura di rete neurale per imparare dai dati e identificare modelli simili basati sugli apprendimenti. Nell'ultimo decennio, hanno raggiunto prestazioni all'avanguardia, soprattutto per attività come l'estrazione di informazioni. Ora, diamo un'occhiata a come le reti neurali profonde possono imparare dai dati ed estrarre tabelle da qualsiasi documento.

La formazione di reti neurali profonde implica un flusso di lavoro specifico; questi flussi di lavoro sono spesso modificati in base al tipo di dati con cui stiamo lavorando e alle prestazioni del loro modello. La prima fase del flusso di lavoro prevede la raccolta dei dati e l'elaborazione degli stessi in base al nostro modello. Nel nostro caso di estrazione delle tabelle dai documenti PDF, il set di dati dovrebbe idealmente contenere documenti non strutturati. Questi documenti vengono convertiti in immagini, caricati come tensori e preparati come classe di caricamento dati per l'addestramento. Successivamente, di solito definiamo tutti gli iperparametri necessari per l'addestramento. Questi di solito includono l'impostazione della dimensione del batch, la funzione di perdita, l'ottimizzatore per il modello. Infine, un'architettura di rete neurale viene definita o costruita su un modello predefinito. Questo modello verrà addestrato sulla base dei dati e messo a punto in base alle metriche delle prestazioni.

Di seguito è riportato uno screenshot dei diversi passaggi coinvolti nell'addestramento di un modello di deep learning:

Flusso di lavoro ML tipico (Fonte)

Estrarre dati da pdf ed esportarli nel database SQL utilizzando Python

Finora, abbiamo imparato cos'è la conversione da pdf a database e abbiamo discusso alcuni casi d'uso in cui può essere utile. Questa sezione affronterà praticamente questo problema utilizzando Computer Vision e rileverà le tabelle nei PDF scansionati e le esporterà nei database. Per seguire, assicurati di installare Python e OpenCV sul tuo computer locale. In alternativa, puoi utilizzare un taccuino di Google Collab online.

Passaggio 1: installa Tabula e Pandas

In questo esempio, utilizzeremo Tabula e Pandas per estrarre e inserire le tabelle nei database. Installiamoli tramite pip e importiamoli nel nostro programma.

import tabula
import pandas as pd

Passaggio 2: lettura di tabelle in Dataframe

Ora useremo il read_pdf funzione da tabula per leggere tabelle da PDF; si noti che questa libreria funziona solo su documenti PDF generati elettronicamente. Di seguito è riportato il frammento di codice:

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

df = pd.concat(table)

Qui, come possiamo vedere, per prima cosa usiamo per leggere i contenuti del file PDF, impostiamo il parametro multiple_tables su False, poiché il documento utilizzato nell'esempio ha una sola tabella.

Ora caricheremo questo elenco in un frame di dati usando i panda e puoi controllare il tipo della tabella usando il metodo type; questo restituirà un frame di dati panda nativo.

Passaggio 3: migrazione di Dataframe a Postres

Prima di inserire la nostra tabella nei database, dobbiamo innanzitutto stabilire una connessione ad essa dal nostro programma e possiamo farlo usando sqlalchemy client in Python. Allo stesso modo, diversi linguaggi di programmazione offrono questo tipo di client di database per interagire con i database direttamente dai nostri programmi.

In questo programma utilizzeremo il create_engine metodo che ci permette di connetterci con il database; assicurati di sostituire le credenziali del database nella stringa data per farlo funzionare. Successivamente, utilizziamo il write_frame funzione per esportare la tabella estratta nel database connesso.

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

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

E proprio così, siamo stati in grado di esportare tabelle da PDF nel database, sembra abbastanza semplice e intuitivo poiché abbiamo utilizzato un semplice PDF generato elettronicamente elaborato. Per estrarre tabelle da tabelle generate non elettronicamente, le tecniche di deep learning più diffuse che possono essere utilizzate sono:

  1. Papers with Code – GFTE: Estrazione di tabelle finanziarie basate su grafici
  2. Papers with Code – PubTables-1M: Verso un set di dati e metriche universali per l'addestramento e la valutazione dei modelli di estrazione delle tabelle
  3. TableNet: modello di deep learning per il rilevamento di tabelle end-to-end e l'estrazione di dati tabulari da immagini di documenti scansionati

Inserisci Nanonets: OCR avanzato per la conversione da tabella PDF a database

Questa sezione esaminerà come Nanonets può aiutarci a eseguire le tabelle nel database in un modo più personalizzabile e più semplice.

Nanonets™ è un OCR basato su cloud che può aiutare ad automatizzare l'immissione manuale dei dati utilizzando l'IA. Avremo una dashboard in cui possiamo costruire/addestrare i nostri modelli OCR sui nostri dati e trasportarli in JSON/CSV o qualsiasi formato desiderato. Ecco alcuni dei vantaggi dell'utilizzo di Nanonets come scanner di documenti PDF.

Uno dei punti salienti di Nanonets è la semplicità del servizio. Si può optare per questi servizi senza alcun background di programmazione ed estrarre facilmente i dati PDF con una tecnologia all'avanguardia. Quello che segue è una breve descrizione di quanto sia facile convertire PDF nel database.

Passo 1: Vai su nanonets.com e registrati/accedi.

Converti dati PDF in voci di database PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Passo 2: Dopo la registrazione, vai all'area "Scegli per iniziare", dove puoi utilizzare gli estrattori predefiniti o crearne uno da solo utilizzando il tuo set di dati. Qui utilizzeremo l'estrattore di fatture predefinito per fatture.

Converti dati PDF in voci di database PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Passo 3: Carica PDF di immagini, per eseguire l'estrazione dei dati e scegli l'opzione di estrazione automatica.

Converti dati PDF in voci di database PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Passo 4 : Crea una nuova integrazione Integrazione MySQL per esportare i dati estratti nel database. In alternativa, puoi scegliere varie opzioni in base ai database di tua scelta.

Converti dati PDF in voci di database PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Stabilisci la connessione dati e fai clic su Aggiungi integrazione. Con questo, i dati verranno estratti e caricati automaticamente su un database ogni volta che vengono caricati i file. Se non trovi le integrazioni richieste, puoi sempre utilizzare l'API Nanonets e scrivere semplici script per completare l'automazione.

Timestamp:

Di più da AI e apprendimento automatico