Conversia datelor PDF în intrări de bază de date PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Conversia datelor PDF în intrări de bază de date

Mai multe organizații și companii se bazează pe documente PDF pentru a partaja documente importante, cum ar fi facturi, borderouri, situații financiare, comenzi de lucru, chitanțe și multe altele. Cu toate acestea, PDF-urile nu sunt formatele de bază pentru stocarea datelor istorice, deoarece nu pot fi exportate și organizate cu ușurință în fluxuri de lucru. Deci, oamenii folosesc algoritmi de extragere a informațiilor pentru a digitiza PDF-urile și documentele scanate în formate structurate precum JSON, CSV, Tabele sau Excel, care pot fi ușor convertite în alte fluxuri de lucru organizaționale.

În unele cazuri, PDF-urile dețin informații esențiale pentru a fi procesate în diferite ERP-uri, CMS și alte sisteme bazate pe baze de date. Din păcate, documentele PDF nu au o funcție ușoară PDF către bază de date, iar scrierea de scripturi sau crearea unui flux de lucru în jurul acestei sarcini este puțin complicată. Aici intervin algoritmii OCR și Deep Learning (DL) pentru a extrage date din aceste formate PDF și a le exporta într-o bază de date. În această postare pe blog, vom analiza diferite moduri de a realiza acest lucru prin utilizarea tehnologiilor DL, precum și a unor API-uri populare de pe piață.

What is PDF to Database Conversion?

Conversia PDF în bază de date este sarcina de a exporta date din PDF-uri într-o bază de date precum Postgres, Mongo, MySQL etc.

Să presupunem că ar trebui să construim o aplicație web sau un sistem ERP care să dețină și să mențină informații despre factură din diferite surse. Adăugarea manuală a facturilor istorice într-o bază de date este o sarcină dificilă și este foarte predispusă la erori. Pe de altă parte, utilizarea unui simplu OCR ar putea să nu extragă cu acuratețe tabelele din facturi.

Aici este utilă conversia avansată PDF în bază de date, bazată pe inteligență artificială!

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

În secțiunile de mai jos, folosim viziunea computerizată și învățarea profundă pentru a detecta regiunile de tabel din documentele scanate. Aceste tabele sunt stocate în continuare într-un anumit format de date, cum ar fi CSV sau Excel și vor fi introduse direct în baze de date.

Înainte de a discuta despre acestea, să înțelegem câteva cazuri de utilizare în care detectarea PDF în baza de date poate fi utilă.

Diferite cazuri de utilizare pentru PDF în baze de date

Bazele de date sunt cele mai bune modalități de a stoca informații atât în ​​cloud, cât și în stocarea locală. Ele ne permit să efectuăm diferite operații și manipulări folosind interogări simple. Iată câteva cazuri de utilizare care ar putea fi foarte optimizate cu un flux automat de conversie PDF în bază de date:

  1. Gestionarea facturilor pe web: 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. Administratori de inventar EComt: O mulțime de gestionare a inventarului e-com încă se execută prin introducerea manuală a produselor din PDF-uri și copii scanate. Cu toate acestea, trebuie să-și încarce toate datele în software-ul de gestionare a facturării pentru a ține evidența tuturor produselor și vânzărilor lor. Prin urmare, utilizarea algoritmului de conversie din tabel în baza de date poate ajuta la automatizarea introducerii lor manuale și la economisirea resurselor. Acest proces implică de obicei scanarea listei de inventar din documente scanate și exportarea lor în tabele de baze de date specifice, pe baza diferitelor reguli și condiții de afaceri.
  3. Extragerea datelor din sondaje: 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?

Un fișier PDF este văzut ca două tipuri diferite, generat electronic și generat neelectronic.

  1. PDF-uri electronice: acest document PDF scanat poate avea text ascuns în spatele imaginii; acestea sunt denumite și PDF-uri generate electronic.
  2. PDF-uri non-electronice: în acest tip, vedem mai mult conținut codificat ca imagini. Acesta este cazul când aveți un document pe hârtie scanat într-un fișier PDF.

Ne-am putea baza pe limbaje și cadre de programare simple, cum ar fi Python și Java pentru primul tip (generat electronic). Pentru PDF-urile negenerate electronic, va trebui să folosim tehnici de computer Vision cu OCR și deep learning. Cu toate acestea, acești algoritmi ar putea să nu fie aceiași pentru toți algoritmii de extracție a tabelelor și vor trebui modificați în funcție de tipul de date pentru a obține o precizie mai mare. NLP (Natural Language Processing) este, de asemenea, utilizat pentru a înțelege datele din tabele și pentru a le extrage în unele cazuri.

Pe de altă parte, există două tipuri de baze de date (relaționale și non-relaționale); fiecare dintre aceste baze de date are seturi diferite de reguli bazate pe arhitectura lor. O bază de date relațională este structurată, adică datele sunt organizate în tabele. Câteva exemple includ MySQL, Postgres etc.

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 într-o bază de date atunci când documentele sunt generate electronic

După cum sa discutat, pentru PDF-urile generate electronic, procesul de extragere a tabelelor este simplu. Ideea este să extragi tabele și apoi să folosești scripturi simple pentru a le converti sau a le adăuga în tabele. Pentru extragerea tabelelor din PDF-uri, există în principal două tehnici.

Tehnica nr. 1 Flux: 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.

Tehnica nr. 2 zăbrele: Spre deosebire de flux, Lattice este mai determinist. Înseamnă că nu se bazează pe presupuneri; mai întâi parsează tabelele care au linii definite între celule. Apoi, poate analiza automat mai multe tabele prezente pe o pagină. Această tehnică funcționează în esență prin examinarea formei poligoanelor și identificarea textului din interiorul celulelor tabelului. Acest lucru ar fi simplu dacă un PDF are o caracteristică care poate identifica poligoane. Dacă ar fi avut-o, ar avea în mod plauzibil o metodă de a citi ceea ce se află în interiorul ei. Cu toate acestea, nu. Prin urmare, viziunea computerizată este utilizată pe scară largă pentru a identifica aceste forme și a extrage conținutul tabelului.

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 în baza de date atunci când documentele nu sunt generate electronic

Tehnicile discutate mai sus s-ar putea să nu funcționeze pentru PDF-urile negenerate electronic, deoarece datele de aici sunt scanate manual printr-o sursă diferită. Acesta este motivul pentru care vom folosi tehnici OCR și Deep Learning pentru a extrage date din documentele scanate și a le exporta în baze de date.

Pe scurt, Optical Character Recognition, OCR este un instrument special care convertește scrisorile tipărite din documente scanate în text editabil. Pentru identificarea tabelelor PDF din documente, mai întâi, trebuie să identificăm poziția tabelului și apoi să aplicăm OCR pentru a extrage date din celulele tabelului. Următorii sunt pașii privind modul în care se realizează:

  1. În primul rând, detectăm segmentele de linie prin aplicarea contururilor orizontale și verticale.
  2. Intersecțiile liniilor dintre linii sunt detectate analizând intensitatea pixelilor tuturor liniilor. Dacă un pixel de linie are mai multă intensitate decât restul pixelului, acesta face parte din două linii și, prin urmare, este o intersecție.
  3. Marginile tabelului sunt determinate prin analizarea intensității pixelilor liniilor intersectate. Aici sunt luați toți pixelii unei linii, iar cele mai externe linii reprezintă limitele tabelului.
  4. Analiza imaginii este tradusă în coordonatele PDF, unde sunt determinate celulele. Textul este atribuit unei celule în funcție de coordonatele x și y.
  5. OCR este aplicat coordonatelor pentru extragerea textului
  6. Textul extras este exportat într-un cadru de date bazat pe poziția tabelului.

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.

Mai jos este o captură de ecran a diferiților pași implicați în formarea unui model de învățare profundă:

Flux de lucru tipic ML (Sursă)

Extragerea datelor din pdf și exportarea lor în baza de date SQL folosind Python

Până acum, am aflat ce este conversia pdf în bază de date și am discutat câteva cazuri de utilizare în care poate fi utilă. Această secțiune va aborda practic această problemă folosind Computer Vision și va detecta tabelele din fișierele PDF scanate și le va exporta în baze de date. Pentru a urma, asigurați-vă că instalați Python și OpenCV pe mașina dvs. locală. Alternativ, puteți utiliza un blocnotes online Google Collab.

Pasul 1: Instalați Tabula și Pandas

În acest exemplu, vom folosi Tabula și Pandas pentru a extrage și împinge tabele în baze de date. Să le instalăm prin pip și să le importăm în programul nostru.

import tabula
import pandas as pd

Pasul 2: Citirea tabelelor în Dataframe

Acum, vom folosi read_pdf funcția din tabelă pentru a citi tabele din PDF-uri; rețineți că această bibliotecă funcționează numai pe documente PDF care sunt generate electronic. Mai jos este fragmentul de cod:

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

df = pd.concat(table)

Aici, după cum putem vedea, mai întâi, folosim pentru a citi conținutul fișierului PDF, setăm parametrul multiple_tables la Fals, deoarece documentul folosit în exemplu are un singur tabel.

Acum, vom încărca această listă într-un cadru de date folosind panda și puteți verifica tipul tabelului folosind metoda tip; aceasta va returna un cadru de date nativ panda.

Pasul 3: Migrarea Dataframe la Postres

Înainte de a ne împinge tabelul în baze de date, mai întâi, ar trebui să stabilim o conexiune la acesta din programul nostru și putem face acest lucru folosind sqlalchemy client în python. În mod similar, diferite limbaje de programare oferă acest tip de clienți de baze de date pentru a interacționa cu bazele de date direct din programele noastre.

În acest program, vom folosi create_engine metodă care ne permite să ne conectăm cu baza de date; asigurați-vă că înlocuiți acreditările bazei de date în șirul dat pentru a funcționa. În continuare, folosim write_frame funcția de a exporta tabelul extras în baza de date conectată.

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

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

Și exact așa, am putut exporta tabele din PDF-uri în baza de date, acest lucru pare destul de simplu și ușor, deoarece am folosit un PDF simplu procesat și generat electronic. Pentru extragerea tabelelor din tabele generate neelectronic, următoarele sunt tehnici populare de învățare profundă care pot fi utilizate:

  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 de învățare profundă pentru detectarea tabelelor de la capăt la capăt și extragerea datelor tabulare din imaginile documentelor scanate

Introduceți Nanonets: OCR avansat pentru conversia tabel PDF în bază de date

Această secțiune va analiza modul în care Nanonets ne poate ajuta să realizăm tabele în baza de date într-un mod mai personalizabil și mai ușor.

Nanonets™ este un OCR bazat pe cloud care vă poate ajuta să vă automatizați introducerea manuală a datelor folosind AI. Vom avea un tablou de bord unde putem construi/instrui modelele noastre OCR pe datele noastre și le putem transporta în JSON/CSV sau în orice format dorit. Iată câteva dintre avantajele utilizării Nanonets ca scaner de documente PDF.

Unul dintre punctele principale ale Nanonets este simplitatea pe care o aduce serviciul. Se poate opta pentru aceste servicii fără niciun fundal de programare și poate extrage cu ușurință datele PDF cu tehnologie de ultimă oră. Mai jos este o scurtă prezentare a cât de ușor este să convertiți PDF în baza de date.

Pasul 1: Accesați nanonets.com și înregistrați-vă/conectați-vă.

Conversia datelor PDF în intrări de bază de date PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Pasul 2: După înregistrare, accesați zona „Alegeți pentru a începe”, unde puteți utiliza extractoarele prefabricate sau puteți crea unul singur folosind setul de date. Aici, vom folosi extractorul de facturi prefabricat pentru factură.

Conversia datelor PDF în intrări de bază de date PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Pasul 3: Încărcați PDF de imagini, pentru a efectua extragerea datelor și alegeți opțiunea de extragere automată.

Conversia datelor PDF în intrări de bază de date PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Etapa 4: Creați o nouă integrare MySQL pentru a exporta datele extrase în baza de date. Alternativ, puteți alege diverse opțiuni pe baza bazelor de date la alegere.

Conversia datelor PDF în intrări de bază de date PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Stabiliți conexiunea de date și faceți clic pe adăugați integrare. Cu aceasta, datele vor fi extrase și încărcate automat într-o bază de date ori de câte ori sunt încărcate fișiere. Dacă nu găsiți integrările necesare, puteți oricând să utilizați API-ul Nanonets și să scrieți scripturi simple pentru a finaliza automatizarea.

Timestamp-ul:

Mai mult de la AI și învățarea automată