Cum să convertiți datele PDF în JSON PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Cum să convertiți datele PDF în JSON

PDFs are one of the most used data formats for business documents. Many businesses and organizations depend on various tools to create and read these PDF documents.

However, it’s hard to extract specific/important data from PDFs selectively.

This is where JSON (Javascript Object Notation) comes into the picture.

It’s one of the most loved data formats for information exchange. Especially when it comes to web applications, most of the data is communicated using JSON through APIs and DB queries.

In this blog post, we’ll be looking at:

  • How Nanonets automates complex data conversion from complicated business PDF documents to structured JSON files.
  • Some free open source techniques for converting PDFs into JSON using Python, Linux and Javascript modules.
    • How to extract specific/complex data from PDFs such as tables and specific strings of text.
    • Custom workflows that can help automate the process of converting PDFs to JSON.

Nanonets converting specific PDF data to JSON outputs

Want to extract specific data  from PDF documents and convert to JSON? Check out API Nanonets to automate batch PDF to JSON conversion from any kind of technical document!


Nanonets Automated PDF to JSON Converter

  • Înregistrează-te for Nanonets’ free plan that offers a 100 page credit – nu este nevoie de card de credit.
  • Add a batch of your business PDF files
  • Nanonets auto-captures fields from a range of document types (invoices, receipts, driver’s license, passports & tables)
    • You can also train Nanonets’ AI to detect/capture just the data fields of your interest from any kind of document!
  • Verify the extracted data and export as JSON outputs
    • You can also integrate Nanonets with a host of ERP software – programează un apel with our AI experts to test-drive your use case.
  • Check out nostru API OCR to automate PDF to JSON workflows
Cum să convertiți datele PDF în JSON PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
PDF to JSON conversion with Nanonets

Vrei sa captarea datelor from PDF documents and convert to JSON, csv or Excel? Find out how Nanonets can help.

Cum să convertiți datele PDF în JSON PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
Un utilizator super-fericit Nanonets


Nevoia de conversie PDF în JSON

Almost every business relies on documents for information sharing. These can be documentation, invoices, tax filings, receipts, medical reports and so much more.

These documents are often shared/received as PDFs.

But if you want to search for critical information or build a dashboard to analyse and store all the important information, manually collecting data from these PDFs can be an uphill task.

If the PDFs are electronically generated, we can copy-paste information into data sources; else, we might have to use OCR and machine learning techniques to extract information.

Also, the data in the PDFs is not organised or directly machine-readable. Therefore, we might have to search for information manually.

But when it comes to JSON, everything is organised in key-value pairs. Here’s an example.

{
  "company_name": "Company Name",
  "Invoice_date": "Date ",
  "Invoice_total":"$0.00",
  "Invoice_line_items: "",
  "Invoice_tax": ""
} 

If you can see the above JSON format, the data is more organised, and you could also share this information on the web more conveniently. This is why exporting data from PDFs into JSON is crucial for a lot of companies.

Beneficii comerciale care vin cu JSON

JSON data format has a lot of advantages over PDFs for businesses:

  1. JSON este mai rapid: JSON syntax is easy to use; whenever you’re trying to parse through any JSON data, the execution is much faster when compared to PDFs and other data formats. This is because the syntax is lightweight and executes the response quickly.
  2. Mai lizibil: Datele JSON sunt mai lizibile; vom avea o mapare simplă a datelor cu chei și valori. Prin urmare, dacă căutați ceva sau organizați datele din PDF-uri, JSON va fi mai convenabil. În plus, JSON acceptă cuibărirea datelor și, cu aceasta, datele din tabele pot fi stocate mai eficient.
  3. Schema convenabilă: JSON este universal pentru majoritatea sistemelor de operare și a limbajelor de programare; Prin urmare, dacă creați orice software sau aplicație web pentru a vă automatiza afacerea, JSON ar trebui să fie formatul de date potrivit. De asemenea, majoritatea browserelor web acceptă formatul JSON; prin urmare, nu trebuie să depunem eforturi suplimentare pentru a utiliza software-ul terților pentru a citi datele JSON.
  4. Partajare ușoară: JSON este cel mai bun instrument pentru partajarea datelor de orice dimensiune, chiar și tabele mari sau text etc. Acest lucru se datorează faptului că JSON stochează date în tablouri, astfel încât transferul de date îl face mai accesibil. Din acest motiv, JSON este un format de fișier superior pentru API-urile web și dezvoltarea web.

In the next section, let’s look at some of the challenges that we may face when converting PDFs to JSON format.


Nanonets are multe interesante cazuri de utilizare care ar putea optimiza performanța afacerii dvs., ar putea economisi costuri și ar putea stimula creșterea. Afla modul în care cazurile de utilizare Nanonets se pot aplica produsului dvs.


Provocări cu conversia de la PDF la JSON

Let’s look at some of the challenges in exporting from PDFs to JSON.

  1. Detectarea fonturilor: Oamenii folosesc fonturi, culori și alinieri diferite în interiorul documentelor PDF. Prin urmare, este foarte greu pentru analizați să citească acestea. De asemenea, în timp ce exportăm acest lucru, va trebui să definim reguli specifice, astfel încât după ce parserul extrage datele, toate informațiile ar trebui să fie mapate corect în format JSON. În astfel de cazuri, expresiile regulate sunt utilizate pe scară largă pentru a selecta textul specific și apoi pentru a-l exporta la cheia corectă în format JSON.
  2. Detectarea textului din documentele scanate: După cum sa discutat, atunci când PDF-urile nu sunt generate electronic, va trebui să folosim un OCR și alegerea unui OCR este crucială. Deși mulți utilizatori încearcă instrumente open-source precum tesseract, ei au propriul lor set de limitări. De exemplu, dacă textul este capturat necorespunzător sau nealiniat atunci când este capturat, este posibil ca tesseract să nu funcționeze și alegerea altor instrumente poate fi costisitoare.
  1. Tabelele de identificare: Majoritatea documentelor comerciale conțin informații tabulare, iar determinarea acestor tabele din documente PDF și convertirea lor în JSON este o sarcină provocatoare. Există câteva biblioteci bazate pe Python și Java care pot ajuta la extragerea tabelelor din documente PDF realizate electronic.
  2. Identificarea tabelelor din PDF-urile scanate: When the PDFs are scanned, most packages don’t work. In this case, if we choose an open-source OCR like tesseract, it could extract text but can lose all the table formatting. Therefore, it’s challenging to pick outline items in an incorrect format. This is where we’ll have to use Machine Learning and Deep Learning-based algorithms. Some popular algorithms are based on CNNs, and there has been lots of research going on in improving these algorithms.

Mai jos sunt câteva dintre lucrările de cercetare care rezolvă problema extragerii tabelelor din documente:

În secțiunea următoare, să vedem cum să analizăm datele din PDF pentru a genera fișiere JSON.

Parsing Data from PDFs and Generating JSON Files using Python and Linux

Parsing through PDFs isn’t a complicated task if you have developer experience.

Firstly, we’ll have to check if our PDF files contain text data or consist of scanned images. We’d have to check if we can extract text data or pipe the files through an OCR library if no text was returned.

This could be achieved using a Python library or by relying on some Linux command-line utilities.

Pdftotext is one of the most popular libraries to parse electronic PDFs. We could use this to convert all the PDF data into text format and then push it into a JSON format.

Here are some of the instructions on how we can use pdftotext și analizați prin PDF pe o mașină Linux.

Mai întâi, instalați instrumente din linia de comandă:

sudo apt-get install poppler-utils

Apoi, utilizați pdftotext comandați și adăugați calea sursă a fișierului PDF și locația fișierului text de destinație.

pdftotext {PDF-file} {text-file}

Cu aceasta, ar trebui să putem extrage tot textul lizibil din fișierele PDF.

To generate a JSON file, we will have to again work on a script based on our data that can parse through the text and export them into relevant key-value pairs.

Here’s an example script that we wrote in Python that converts a simple .txt fișier în format JSON.

import json
  
filename = 'data.txt'
 
dict1 = {}
  
with open(filename) as fh:
  
    for line in fh:
        command, description = line.strip().split(None, 1)
        dict1[command] = description.strip()
  
# creating json file
# the JSON file is named as test1
out_file = open("test1.json", "w")
json.dump(dict1, out_file, indent = 4, sort_keys = False)
out_file.close()

Luați în considerare datele din fișierul text ca fiind:

invoice_id #234
invoice_name Invoice from AWS
invoice_total $345

Aici, am importat mai întâi biblioteca JSON încorporată. Acum creăm un tip de date din dicționar pentru a stoca toate perechile cheie-valoare din fișierele text. Apoi, iterăm fiecare linie din fișier și o decupăm în comandă, descriere și o păstrăm în dicționarul creat. În cele din urmă, realizăm un nou fișier JSON și folosim json.dump metodă pentru a arunca dicționarul în fișierul JSON cu o configurație specifică care include sortare și indentare.

Cu toate acestea, datele noastre din fișiere PDF nu vor fi la fel de organizate ca în exemplul dat; prin urmare, este posibil să trebuiască să folosim conducte și scripturi personalizate pentru a trece prin formatarea textului complicată. În astfel de cazuri, instrumente precum Nanoneți va fi o alegere excelentă și vom analiza, de asemenea, modul în care Nanonets rezolvă această problemă într-un mod mult mai ușor în următoarele secțiuni.

Înainte de asta, să ne uităm la încă o bibliotecă care convertește PDF în JSON folosind node.js:

pdf2json este node.js modul care analizează și convertește PDF din format binar în format JSON; este construit cu pdf.js și îl extinde cu elemente de formă interactive și analiză de conținut text în afara browserului.

Iată un exemplu de utilizare a acestui modul pentru a analiza fișierele JSON:

În primul rând, asigurați-vă că aveți npm instalator și instalați modulul folosind următoarea comandă:

npm install pdf2json

Apoi, în serverul de noduri, puteți utiliza următorul fragment care încarcă pdf2json și exportă pdf-uri către JSON:

let fs = require('fs'),
        PDFParser = require("pdf2json");
 
    let pdfParser = new PDFParser();
 
    pdfParser.on("pdfParser_dataError", errData => console.error(errData.parserError) );
    pdfParser.on("pdfParser_dataReady", pdfData => {
        fs.writeFile("./pdf2json/test/F1040EZ.json", JSON.stringify(pdfData));
    });
 
    pdfParser.loadPDF("./pdf2json/test/pdf/fd/form/F1040EZ.pdf");

Fragmentul de cod de mai sus folosește un exemplu de fișier JSON din modul și îl exportă într-un fișier JSON, putem verifica acest lucru în ./test/target/ folder in your project. B

elow, you’ll find a screenshot of how the module exports the JSON files:

Cum să convertiți datele PDF în JSON PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
Export JSON

For parsing through PDFs in tables, these libraries might just not work!


You’ll have to leverage OCR & Machine Learning algorithms to extract tabular data into JSON. Nanonets does just that as you can see below:

Cum să convertiți datele PDF în JSON PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
Nanonets converting data from PDF to JSON 


Conversie de date personalizată de la PDF la JSON

Uneori, în timp ce extragem datele din documentele comerciale, s-ar putea să necesită personalizare. De exemplu, spuneți dacă dorim doar anumite pagini sau tabele, nu o putem face direct. În acest caz, s-ar putea să trebuiască să oferim reguli suplimentare analizoarelor, care consumă din nou timp. Dar să vedem cum putem face personalizarea și acțiunile de care au nevoie majoritatea oamenilor.

Mai jos sunt câteva dintre acțiunile necesare pentru personalizare în conversia PDF în JSON:

  • Extrageți numai anumite texte sau pagini din PDF-uri
  • Extrageți toate tabelele din documente PDF
  • Extrageți anumite coloane din anumite tabele din PDF-uri
  • Filtrează textul din fișiere PDF înainte de a le exporta în JSON
  • Crearea JSON imbricat pe baza datelor extrase din PDF-uri
  • Formatați structura JSON pe baza datelor
  • Creați, ștergeți, actualizați valorile anumitor câmpuri din JSON după extragere

Acestea sunt câteva dintre acțiunile care sunt deseori necesare pentru stocarea datelor noastre în moduri diferite sau care spun dacă construim API-uri pentru o aplicație. Să vedem cum le putem realiza.

Extragerea textului particular: În PDF-uri, am putea extrage textul particular folosind expresii regulate; de exemplu, spuneți dacă dorim toate e-mailurile și numerele de telefon folosind regex, le putem alege. Dacă PDF-urile sunt în format scanat, trebuie să le instruim pe un algoritm de învățare profundă care poate înțelege aspectele PDF-urilor și poate extrage câmpuri pe baza coordonatelor și adnotării făcute datelor de instruire. Unul dintre cele mai populare depozite open-source pentru înțelegerea aspectelor documentelor și extragerea textului este LayoutML și se antrenează pe modelele BERT pentru extragerea textului personalizat. Cu toate acestea, ar trebui să avem suficiente date pentru a obține o precizie mai mare în extragerea textului.

Personalizare tabel: După cum sa discutat, tabelele pot fi extrase utilizând biblioteci precum Camelot și Tabula-py sau folosind OCR și algoritmi bazate pe învățare profundă. Dar pentru personalizare, va trebui să folosim biblioteci precum panda; acest lucru ne va permite să creăm, să actualizăm și să serializăm datele din tabele. Folosește un tip de date personalizat numit cadru de date, care este utilizat pe scară largă pentru manipularea și personalizarea datelor din tabel. Alte avantaje ale utilizării pandelor includ scrierea de funcții personalizate care pot efectua anumite operații matematice în timpul procesului de extracție.

Formatarea datelor JSON: După exportul PDF-urilor în JSON, formatarea acestora este o sarcină simplă, deoarece avem un tip de date mai personalizabil, care este perechile cheie-valoare. Putem fie să dezvoltăm scripturi simple, fie să folosim instrumente online pentru a căuta printre aceste perechi cheie-valoare și a le forma. Unii dintre cei mai comuni parametri pentru formatare includ indentare, separatoare, chei de sortare, verificări circulare, verificări de date. Dacă JSON este utilizat ca API, am putea folosi Postman sau orice extensii de browser pentru a formata datele și a interacționa cu API-urile.


Want to extract information from PDF documents and convert them into a JSON format? Check out Nanonets to automate export of any information from any PDF document into JSON.


Timestamp-ul:

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