Sådan konverteres PDF-data til JSON PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Sådan konverteres PDF-data til 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 Nanonets API to automate batch PDF to JSON conversion from any kind of technical document!


Nanonets Automated PDF to JSON Converter

  • Tilmeld dig for Nanonets’ free plan that offers a 100 page credit – intet kreditkort nødvendigt.
  • 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 – planlægge et opkald with our AI experts to test-drive your use case.
  • Tjek vores OCR API to automate PDF to JSON workflows
Sådan konverteres PDF-data til JSON PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
PDF to JSON conversion with Nanonets

Ønsker du at indsamle data from PDF documents and convert to JSON, csv or Excel? Find out how Nanonets can help.

Sådan konverteres PDF-data til JSON PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
En superglad Nanonets-bruger


Behovet for PDF til JSON-konvertering

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.

Forretningsfordele, der følger med JSON

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

  1. JSON er hurtigere: 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. Mere læsbar: JSON data is more readable; we’ll have a straightforward data mapping with keys and values. Therefore, if you’re searching for something or organising the data from PDFs, JSON will be more convenient. Additionally, JSON supports the nesting of data, and with this, data from tables can be stored more efficiently.
  3. Praktisk skema: JSON is universal for most operating systems and programming languages; Therefore, if you’re building any software or web application to automate your business, JSON should be the right data format. Also, most web browsers support JSON format; hence we don’t have to put in additional effort to use third-party software to read through JSON data.
  4. Nem deling: JSON er det bedste værktøj til at dele data af enhver størrelse, selv store tabeller eller tekst osv. Dette skyldes, at JSON gemmer data i arrays, så dataoverførsel gør det mere tilgængeligt. Af denne grund er JSON et overlegent filformat til web-API'er og webudvikling.

Lad os i næste afsnit se på nogle af de udfordringer, vi kan stå over for, når vi konverterer PDF-filer til JSON-format.


Nanonetter har mange interessante brug sager der kan optimere din virksomheds ydeevne, spare omkostninger og øge væksten. Finde ud af hvordan Nanonets' use cases kan gælde for dit produkt.


Udfordringer med at konvertere fra PDF til JSON

Lad os se på nogle af udfordringerne ved at eksportere fra PDF-filer til JSON.

  1. Registrering af skrifttyper: Folk bruger forskellige skrifttyper, farver og justeringer i PDF-dokumenter. Derfor er det virkelig svært for parsere at læse disse. Mens vi eksporterer dette, bliver vi også nødt til at definere specifikke regler, så efter at parseren har udtrukket dataene, skal alle oplysningerne kortlægges korrekt i JSON-formatet. I sådanne tilfælde bruges regulære udtryk i vid udstrækning til at udvælge specifik tekst og derefter eksportere den til den korrekte nøgle i JSON-formatet.
  2. Registrering af tekst fra scannede dokumenter: Som nævnt, når PDF'erne ikke er elektronisk genereret, bliver vi nødt til at bruge en OCR, og det er afgørende at vælge en OCR. Selvom mange brugere prøver open source-værktøjer som tesseract, har de deres eget sæt begrænsninger. For eksempel, hvis teksten er forkert fanget eller forkert justeret under optagelsen, virker tesseract muligvis ikke, og det kan være dyrt at vælge andre værktøjer.
  1. Identifikation af tabeller: De fleste forretningsdokumenter indeholder tabeloplysninger, og det er en udfordrende opgave at bestemme disse tabeller ud fra PDF-dokumenter og konvertere dem til JSON. Der er nogle biblioteker baseret på Python og Java, som kan hjælpe med at udtrække tabeller fra elektronisk fremstillede PDF-dokumenter.
  2. Identifikation af tabeller fra scannede PDF'er: Når PDF-filerne scannes, virker de fleste pakker ikke. I dette tilfælde, hvis vi vælger en open source OCR som tesseract, kan den udtrække tekst, men kan miste al tabelformatering. Derfor er det udfordrende at vælge konturelementer i et forkert format. Det er her, vi bliver nødt til at bruge Machine Learning og Deep Learning-baserede algoritmer. Nogle populære algoritmer er baseret på CNN'er, og der har været masser af forskning i gang med at forbedre disse algoritmer.

Nedenfor er nogle af de forskningsartikler, der løser problemet med tabeludtræk fra dokumenter:

Lad os i næste afsnit se på, hvordan man analyserer data fra PDF for at generere JSON-filer.

Parsing af data fra PDF'er og generering af JSON-filer ved hjælp af Python og Linux

Parsing gennem PDF'er er ikke en kompliceret opgave, hvis du har udviklererfaring.

For det første skal vi kontrollere, om vores PDF-filer indeholder tekstdata eller består af scannede billeder. Vi bliver nødt til at kontrollere, om vi kan udtrække tekstdata eller sende filerne gennem et OCR-bibliotek, hvis der ikke blev returneret nogen tekst.

Dette kan opnås ved hjælp af et Python-bibliotek eller ved at stole på nogle Linux-kommandolinjeværktøjer.

Pdf til tekst er et af de mest populære biblioteker til at analysere elektroniske PDF-filer. Vi kunne bruge dette til at konvertere alle PDF-data til tekstformat og derefter skubbe det til et JSON-format.

Her er nogle af instruktionerne om, hvordan vi kan bruge pdftotext og parse gennem PDF på en Linux-maskine.

Installer først kommandolinjeværktøjer:

sudo apt-get install poppler-utils

Brug derefter pdftotext kommando og tilføj PDF-filens kildesti og destinationstekstfilplacering.

pdftotext {PDF-file} {text-file}

Med dette skulle vi være i stand til at udtrække al den læsbare tekst fra PDF-filerne.

For at generere en JSON-fil skal vi igen arbejde på et script baseret på vores data, som kan parse gennem teksten og eksportere dem til relevante nøgleværdi-par.

Her er et eksempel script, som vi skrev i Python, der konverterer en simpel .txt fil i JSON-format.

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()

Betragt dataene i tekstfilen som:

invoice_id #234
invoice_name Invoice from AWS
invoice_total $345

Her importerede vi først det indbyggede JSON-bibliotek. Vi opretter nu en ordbogsdatatype til at gemme alle nøgleværdi-parrene fra tekstfilerne. Dernæst itererer vi gennem hver linje i filen og stripper den til kommando, beskrivelse og beholder den i den oprettede ordbog. Til sidst laver vi en ny JSON-fil og bruger json.dump metode til at dumpe ordbogen i JSON-filen med en specifik konfiguration, der inkluderer sortering og indrykning.

Vores data fra PDF'er vil dog ikke være så organiseret som angivet i eksemplet; derfor skal vi muligvis bruge tilpassede pipelines og scripts til at gennemgå kompliceret tekstformatering. I sådanne tilfælde kan værktøjer som f.eks Nanonetter vil være et godt valg, og vi vil også se på, hvordan Nanonets løser dette problem på en meget nemmere måde i de følgende afsnit.

Før det, lad os se på endnu et bibliotek, der konverterer PDF til JSON ved hjælp af node.js:

pdf2json er en node.js modul, der analyserer og konverterer PDF fra binært til JSON-format; den er bygget med pdf.js og udvider det med interaktive formularelementer og tekstindhold, der parser uden for browseren.

Her er et eksempel på brug af dette modul til at parse dine JSON-filer:

Først skal du sørge for at have npm installationsprogram og installer modulet ved hjælp af følgende kommando:

npm install pdf2json

Dernæst kan du i din nodeserver bruge følgende kodestykke, der indlæser pdf2json og eksporterer pdf'er til 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");

Ovenstående kodestykke bruger et eksempel på en JSON-fil fra modulet og eksporterer den til en JSON-fil, vi kan tjekke dette ud i ./test/target/ mappe i dit projekt. B

Nedenfor finder du et skærmbillede af, hvordan modulet eksporterer JSON-filerne:

Sådan konverteres PDF-data til JSON PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
JSON eksport

Til at parse gennem PDF'er i tabeller virker disse biblioteker måske bare ikke!


Du bliver nødt til at udnytte OCR- og Machine Learning-algoritmer til at udtrække tabeldata til JSON. Nanonets gør netop det, som du kan se nedenfor:

Sådan konverteres PDF-data til JSON PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
Nanonetter, der konverterer data fra PDF til JSON 


Tilpasset datakonvertering fra PDF til JSON

Nogle gange, mens vi udtrækker data fra forretningsdokumenter, kan vi kræve tilpasning. For eksempel, hvis vi kun ønsker bestemte sider eller tabeller, kan vi ikke gøre det direkte. I dette tilfælde skal vi muligvis levere yderligere regler til parserne, hvilket igen er tidskrævende. Men lad os se, hvordan vi kan foretage den tilpasning og de handlinger, som de fleste mennesker har brug for.

Nedenfor er nogle af de handlinger, der er nødvendige for tilpasning i PDF til JSON-konvertering:

  • Uddrag kun bestemt tekst eller sider fra PDF'er
  • Uddrag alle tabellerne fra PDF-dokumenter
  • Udtræk bestemte kolonner fra visse tabeller i PDF'er
  • Filtrer tekst fra PDF'er, før du eksporterer dem til JSON
  • Oprettelse af indlejret JSON baseret på de udtrukne data fra PDF'er
  • Formater JSON-struktur baseret på data
  • Opret, slet, opdater værdier for bestemte felter i JSON efter udtrækning

Dette er nogle af de handlinger, der ofte kræves for at gemme vores data på forskellige måder, eller for eksempel hvis vi bygger API'er til en applikation. Lad os se, hvordan vi kan opnå disse.

Uddrag af bestemt tekst: I PDF'er kunne vi udtrække den bestemte tekst ved hjælp af regulære udtryk; for eksempel sige, at hvis vi vil have alle e-mails og telefonnumre ved hjælp af regulært udtryk, kan vi vælge dem ud. Hvis PDF'erne er i scannet format, skal vi enten træne dem i en dyb læringsalgoritme, der kan forstå layoutet af PDF'erne og udtrække felter baseret på koordinaterne og annoteringerne til træningsdataene. Et af de mest populære open source-depoter til at forstå dokumentlayouts og udtrække tekst er LayoutML, og det træner på BERT-modeller til tilpasset tekstudtræk. Vi bør dog have nok data til at opnå højere nøjagtighed ved udtræk af tekst.

Bordtilpasning: Som diskuteret kan tabeller udtrækkes ved hjælp af biblioteker som Camelot og Tabula-py eller ved hjælp af OCR og deep learning-baserede algoritmer. Men til tilpasning bliver vi nødt til at bruge biblioteker som pandaer; dette vil give os mulighed for at oprette, opdatere og serialisere dataene fra tabellerne. Den bruger en brugerdefineret datatype kaldet en dataramme, som er meget brugt til at manipulere og tilpasse tabeldataene. Andre fordele ved at bruge pandaer inkluderer at skrive brugerdefinerede funktioner, der kan udføre visse matematiske operationer under udvindingsprocessen.

Formatering af JSON-data: Efter eksport af PDF-filer til JSON er formatering af dem en ligetil opgave, da vi har en mere tilpasselig datatype, som er nøgleværdi-parrene. Vi kunne enten udvikle simple scripts eller bruge onlineværktøjer til at søge gennem disse nøgleværdi-par og formatere dem. Nogle af de mest almindelige parametre til formatering omfatter indrykning, separatorer, sorteringsnøgler, cirkulære kontroller, datatjek. Hvis JSON bliver brugt som en API, kan vi bruge Postman eller andre browserudvidelser til at formatere dataene og interagere med API'erne.


Vil du udtrække information fra PDF-dokumenter og konvertere dem til et JSON-format? Tjek Nanonets for at automatisere eksport af enhver information fra ethvert PDF-dokument til JSON.


Tidsstempel:

Mere fra AI og maskinindlæring