PDF verilerini JSON PlatoBlockchain Veri Zekasına Dönüştürme. Dikey Arama. Ai.

PDF verilerini JSON'a dönüştürme

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 Nanonetler API'sı to automate batch PDF to JSON conversion from any kind of technical document!


Nanonets Automated PDF to JSON Converter

  • Kayıt ol for Nanonets’ free plan that offers a 100 page credit – kredi kartına gerek yok.
  • 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 – bir arama planla with our AI experts to test-drive your use case.
  • Check out bizim OCR API'si to automate PDF to JSON workflows
PDF verilerini JSON PlatoBlockchain Veri Zekasına Dönüştürme. Dikey Arama. Ai.
PDF to JSON conversion with Nanonets

Ister veri yakala from PDF documents and convert to JSON, csv or Excel? Find out how Nanonets can help.

PDF verilerini JSON PlatoBlockchain Veri Zekasına Dönüştürme. Dikey Arama. Ai.
Süper mutlu bir Nanonet kullanıcısı


PDF'den JSON'a Dönüştürme İhtiyacı

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.

JSON ile Gelen İş Avantajları

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

  1. JSON Daha Hızlıdır: 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. Daha Okunabilir: JSON verileri daha okunabilir; anahtarlar ve değerlerle basit bir veri eşlememiz olacak. Bu nedenle, bir şey arıyorsanız veya PDF'lerdeki verileri düzenliyorsanız, JSON daha uygun olacaktır. Ek olarak, JSON verilerin yuvalanmasını destekler ve bununla tablolardaki veriler daha verimli bir şekilde depolanabilir.
  3. Uygun Şema: JSON, çoğu işletim sistemi ve programlama dili için evrenseldir; Bu nedenle, işinizi otomatikleştirmek için herhangi bir yazılım veya web uygulaması oluşturuyorsanız, JSON doğru veri formatı olmalıdır. Ayrıca, çoğu web tarayıcısı JSON biçimini destekler; bu nedenle, JSON verilerini okumak için üçüncü taraf yazılımları kullanmak için ek çaba sarf etmemize gerek yok.
  4. Kolay paylaşım: JSON, her boyuttaki veriyi, hatta büyük tabloları veya metinleri vb. paylaşmak için en iyi araçtır. Bunun nedeni, JSON'un verileri dizilerde depolamasıdır, bu nedenle veri aktarımı onu daha erişilebilir hale getirir. Bu nedenle JSON, web API'leri ve web geliştirme için üstün bir dosya formatıdır.

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


Nanonetlerin birçok ilginç kullanım durumları iş performansınızı optimize edebilir, maliyetlerden tasarruf edebilir ve büyümeyi artırabilir. Bulmak Nanonetlerin kullanım durumlarının ürününüze nasıl uygulanabileceği.


PDF'den JSON'a Dönüştürmenin Zorlukları

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

  1. Yazı tiplerini algılama: İnsanlar PDF belgelerinde farklı yazı tipleri, renkler ve hizalamalar kullanır. Bu nedenle, ayrıştırıcıların bunları okuması gerçekten zor. Ayrıca, bunu dışa aktarırken, ayrıştırıcı verileri çıkardıktan sonra tüm bilgilerin JSON formatında doğru şekilde eşlenmesi için belirli kurallar tanımlamamız gerekecek. Bu gibi durumlarda, belirli bir metni seçmek ve ardından onu JSON biçiminde doğru anahtara dışa aktarmak için normal ifadeler yaygın olarak kullanılır.
  2. Taranan belgelerden metin algılama: Tartışıldığı gibi, PDF'ler elektronik olarak oluşturulmadığında bir OCR kullanmamız gerekecek ve bir OCR seçmek çok önemlidir. Birçok kullanıcı tesseract gibi açık kaynaklı araçları denese de, kendi sınırlamaları vardır. Örneğin, metin yanlış yakalanırsa veya yakalama sırasında yanlış hizalanırsa, tesseract çalışmayabilir ve diğer araçları seçmek pahalı olabilir.
  1. Tabloları Tanımlama: Çoğu iş belgesi tablo halinde bilgiler içerir ve bu tabloları PDF belgelerinden belirlemek ve bunları JSON'a dönüştürmek zorlu bir iştir. Elektronik olarak oluşturulmuş PDF belgelerinden tabloların çıkarılmasına yardımcı olabilecek Python ve Java tabanlı bazı kitaplıklar vardır.
  2. Taranan PDF'lerden Tabloları Tanımlama: 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.

Aşağıda, belgelerden tablo çıkarma sorununu çözen araştırma makalelerinden bazıları verilmiştir:

Bir sonraki bölümde, JSON dosyaları oluşturmak için PDF'den verilerin nasıl ayrıştırılacağına bakalım.

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.

PDF metni 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 ve bir Linux makinesinde PDF aracılığıyla ayrıştırın.

İlk önce komut satırı araçlarını kurun:

sudo apt-get install poppler-utils

Ardından, pdftotext komutunu verin ve PDF dosyasının kaynak yolunu ve hedef metin dosyası konumunu ekleyin.

pdftotext {PDF-file} {text-file}

Bununla, tüm okunabilir metni PDF dosyalarından çıkarabilmeliyiz.

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 dosyayı JSON formatına dönüştürün.

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

Metin dosyasının içindeki verileri şöyle düşünün:

invoice_id #234
invoice_name Invoice from AWS
invoice_total $345

Burada ilk önce dahili JSON kitaplığını içe aktardık. Şimdi, metin dosyalarından tüm anahtar/değer çiftlerini depolamak için bir sözlük veri türü oluşturuyoruz. Daha sonra, dosyadaki her satırı yineliyoruz ve onu komuta, açıklamaya ayırıyoruz ve oluşturulan sözlükte tutuyoruz. Son olarak yeni bir JSON dosyası oluşturuyoruz ve json.dump sözlüğü, sıralama ve girinti içeren belirli bir yapılandırmayla JSON dosyasına boşaltma yöntemi.

Ancak, PDF'lerdeki verilerimiz örnekte verildiği gibi organize olmayacaktır; bu nedenle, karmaşık metin biçimlendirmesinden geçmek için özel işlem hatları ve komut dosyaları kullanmamız gerekebilir. Bu gibi durumlarda, araçlar Nanonetler harika bir seçim olacak ve ayrıca ilerleyen bölümlerde Nanonets'in bu sorunu çok daha kolay bir şekilde nasıl çözdüğüne bakacağız.

Ondan önce, node.js kullanarak PDF'yi JSON'a dönüştüren bir kitaplığa daha bakalım:

pdf2json bir node.js PDF'yi ikili dosyadan JSON formatına ayrıştıran ve dönüştüren modül; ile inşa edilmiştir pdf.js ve tarayıcının dışında ayrıştırılan etkileşimli form öğeleri ve metin içeriği ile genişletir.

JSON dosyalarınızı ayrıştırmak için bu modülü kullanmanın bir örneği:

İlk olarak, sahip olduğunuzdan emin olun npm aşağıdaki komutu kullanarak modülü kurun ve kurun:

npm install pdf2json

Ardından, düğüm sunucunuzda, aşağıdakileri yükleyen aşağıdaki parçacığı kullanabilirsiniz: pdf2json ve pdf'leri JSON'a aktarır:

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");

Yukarıdaki kod parçacığı, modülden bir örnek JSON dosyası kullanır ve onu bir JSON dosyasına aktarır, bunu şurada kontrol edebiliriz: ./test/target/ folder in your project. B

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

PDF verilerini JSON PlatoBlockchain Veri Zekasına Dönüştürme. Dikey Arama. Ai.
JSON dışa aktarma

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:

PDF verilerini JSON PlatoBlockchain Veri Zekasına Dönüştürme. Dikey Arama. Ai.
Nanonets converting data from PDF to JSON 


PDF'den JSON'a Özelleştirilmiş Veri Dönüştürme

Bazen iş belgelerinden verileri çıkarırken özelleştirme gerektirebilir. Örneğin, yalnızca belirli sayfaları veya tabloları istiyorsak, bunu doğrudan yapamayacağımızı varsayalım. Bu durumda, ayrıştırıcılara yine zaman alan ek kurallar sağlamamız gerekebilir. Ancak, çoğu insanın ihtiyaç duyduğu özelleştirmeyi ve eylemleri nasıl yapabileceğimizi görelim.

Aşağıda, PDF'den JSON'a dönüştürmede özelleştirme için gerekli olan eylemlerden bazıları verilmiştir:

  • PDF'lerden yalnızca belirli metinleri veya sayfaları çıkarın
  • Tüm tabloları PDF belgelerinden çıkarın
  • PDF'lerdeki belirli tablolardan belirli sütunları çıkarın
  • JSON'a aktarmadan önce PDF'lerdeki metni filtreleyin
  • PDF'lerden ayıklanan verilere dayalı olarak iç içe JSON oluşturma
  • JSON yapısını verilere göre biçimlendir
  • Çıkarma işleminden sonra JSON'da belirli alanların değerlerini oluşturun, silin, güncelleyin

Bunlar, verilerimizi farklı şekillerde depolamak veya bir uygulama için API oluşturup oluşturmadığımızı söylemek için genellikle gerekli olan eylemlerden bazılarıdır. Bakalım bunlara nasıl ulaşacağız.

Belirli Metni Çıkarma: PDF'lerde, belirli metni normal ifadeler kullanarak çıkarabilirdik; örneğin, tüm e-postaların ve telefon numaralarının normal ifade kullanmasını istiyorsak, onları seçebileceğimizi varsayalım. PDF'ler taranmış biçimdeyse, bunları PDF'lerin yerleşimlerini anlayabilen bir derin öğrenme algoritması üzerinde eğitmemiz ve eğitim verilerine yapılan koordinatlara ve açıklamalara dayalı olarak alanları çıkarmamız gerekir. Belge düzenlerini anlamak ve metin çıkarmak için en popüler açık kaynak havuzlarından biri LayoutML'dir ve özel metin çıkarma için BERT modelleri üzerinde eğitim alır. Ancak, metin çıkarmada daha yüksek doğruluk elde etmek için yeterli veriye sahip olmamız gerekir.

Tablo Özelleştirme: Tartışıldığı gibi, tablolar Camelot ve Tabula-py gibi kitaplıklar kullanılarak veya OCR ve derin öğrenme tabanlı algoritmalar kullanılarak çıkarılabilir. Ancak kişiselleştirme için pandalar gibi kütüphaneler kullanmamız gerekecek; bu, tablolardaki verileri oluşturmamıza, güncellememize ve serileştirmemize olanak tanır. Tablo verilerini işlemek ve özelleştirmek için yaygın olarak kullanılan veri çerçevesi adı verilen özel bir veri türü kullanır. Panda kullanmanın diğer avantajları, çıkarma işlemi sırasında belirli matematik işlemlerini gerçekleştirebilen özel işlevler yazmayı içerir.

JSON Verilerini Biçimlendirme: PDF'leri JSON'a aktardıktan sonra, anahtar/değer çiftleri olan daha özelleştirilebilir bir veri türümüz olduğundan, bunları biçimlendirmek basit bir iştir. Bu anahtar/değer çiftlerini aramak ve biçimlendirmek için basit komut dosyaları geliştirebilir veya çevrimiçi araçları kullanabiliriz. Biçimlendirme için en yaygın parametrelerden bazıları girinti, ayırıcılar, sıralama anahtarları, dairesel kontroller, veri kontrolleridir. JSON bir API olarak kullanılıyorsa, verileri biçimlendirmek ve API'lerle etkileşim kurmak için Postman veya herhangi bir tarayıcı uzantısını kullanabiliriz.


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.


Zaman Damgası:

Den fazla AI ve Makine Öğrenimi