Cách chuyển đổi dữ liệu PDF sang JSON PlatoBlockchain Data Intelligence. Tìm kiếm theo chiều dọc. Ai đó.

Cách chuyển đổi dữ liệu PDF sang 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

  • Đăng ký for Nanonets’ free plan that offers a 100 page credit – không cần thẻ tín dụng.
  • 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 – lên lịch cuộc gọi with our AI experts to test-drive your use case.
  • Kiểm tra của chúng tôi API OCR to automate PDF to JSON workflows
Cách chuyển đổi dữ liệu PDF sang JSON PlatoBlockchain Data Intelligence. Tìm kiếm theo chiều dọc. Ai đó.
PDF to JSON conversion with Nanonets

Muốn thu thập dữ liệu from PDF documents and convert to JSON, csv or Excel? Find out how Nanonets can help.

Cách chuyển đổi dữ liệu PDF sang JSON PlatoBlockchain Data Intelligence. Tìm kiếm theo chiều dọc. Ai đó.
Một người dùng Nanonets siêu hạnh phúc


Nhu cầu chuyển đổi PDF sang 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.

Lợi ích kinh doanh đi kèm với JSON

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

  1. JSON nhanh hơn: 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. Đọc thêm: Dữ liệu JSON dễ đọc hơn; chúng ta sẽ có một ánh xạ dữ liệu đơn giản với các khóa và giá trị. Do đó, nếu bạn đang tìm kiếm thứ gì đó hoặc sắp xếp dữ liệu từ các tệp PDF, JSON sẽ thuận tiện hơn. Ngoài ra, JSON hỗ trợ lồng dữ liệu và với điều này, dữ liệu từ các bảng có thể được lưu trữ hiệu quả hơn.
  3. Lược đồ thuận tiện: JSON phổ biến cho hầu hết các hệ điều hành và ngôn ngữ lập trình; Do đó, nếu bạn đang xây dựng bất kỳ phần mềm hoặc ứng dụng web nào để tự động hóa doanh nghiệp của mình, thì JSON phải là định dạng dữ liệu phù hợp. Ngoài ra, hầu hết các trình duyệt web đều hỗ trợ định dạng JSON; do đó chúng tôi không phải nỗ lực thêm khi sử dụng phần mềm của bên thứ ba để đọc qua dữ liệu JSON.
  4. Chia sẻ dễ dàng: JSON là công cụ tốt nhất để chia sẻ dữ liệu ở bất kỳ kích thước nào, ngay cả các bảng hoặc văn bản lớn, v.v. Điều này là do JSON lưu trữ dữ liệu trong các mảng, do đó, việc truyền dữ liệu làm cho nó dễ truy cập hơn. Vì lý do này, JSON là một định dạng tệp cao cấp cho các API web và phát triển web.

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


Nanonet có nhiều điều thú vị trường hợp sử dụng có thể tối ưu hóa hiệu suất kinh doanh của bạn, tiết kiệm chi phí và thúc đẩy tăng trưởng. Tìm ra cách các trường hợp sử dụng của Nanonets có thể áp dụng cho sản phẩm của bạn.


Những thách thức với Chuyển đổi từ PDF sang JSON

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

  1. Phát hiện phông chữ: Mọi người sử dụng các phông chữ, màu sắc và căn chỉnh khác nhau bên trong tài liệu PDF. Do đó, người phân tích cú pháp thực sự khó đọc những thứ này. Ngoài ra, trong khi xuất tệp này, chúng tôi sẽ phải xác định các quy tắc cụ thể để sau khi trình phân tích cú pháp trích xuất dữ liệu, tất cả thông tin phải được ánh xạ chính xác ở định dạng JSON. Trong những trường hợp như vậy, biểu thức chính quy được sử dụng rộng rãi để chọn văn bản cụ thể và sau đó xuất nó sang khóa chính xác ở định dạng JSON.
  2. Phát hiện văn bản từ tài liệu được quét: Như đã thảo luận, khi các tệp PDF không được tạo bằng điện tử, chúng tôi sẽ phải sử dụng OCR và việc chọn một OCR là rất quan trọng. Mặc dù rất nhiều người dùng thử các công cụ mã nguồn mở như tesseract, nhưng chúng có những hạn chế riêng. Ví dụ: nếu văn bản được chụp không đúng hoặc bị lệch khi chụp, tesseract có thể không hoạt động và việc lựa chọn các công cụ khác có thể tốn kém.
  1. Bảng xác định: Hầu hết các tài liệu kinh doanh đều chứa thông tin dạng bảng và việc xác định các bảng này từ tài liệu PDF và chuyển đổi chúng thành JSON là một nhiệm vụ đầy thách thức. Có một số thư viện dựa trên Python và Java có thể giúp trích xuất bảng từ các tài liệu PDF được tạo điện tử.
  2. Nhận dạng bảng từ các tệp PDF được quét: 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.

Dưới đây là một số bài nghiên cứu giải quyết vấn đề trích bảng từ tài liệu:

Trong phần tiếp theo, hãy xem cách phân tích cú pháp dữ liệu từ PDF để tạo tệp 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.

văn bản pdf 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 và phân tích cú pháp qua PDF trên máy Linux.

Đầu tiên, hãy cài đặt các công cụ dòng lệnh:

sudo apt-get install poppler-utils

Tiếp theo, sử dụng pdftotext và thêm đường dẫn nguồn và vị trí tệp văn bản đích của tệp PDF.

pdftotext {PDF-file} {text-file}

Với điều này, chúng tôi sẽ có thể trích xuất tất cả văn bản có thể đọc được từ các tệp 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 tệp ở định dạng 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()

Hãy coi dữ liệu bên trong tệp văn bản là:

invoice_id #234
invoice_name Invoice from AWS
invoice_total $345

Ở đây, đầu tiên chúng tôi đã nhập thư viện JSON có sẵn. Bây giờ chúng tôi tạo một kiểu dữ liệu từ điển để lưu trữ tất cả các cặp khóa-giá trị từ các tệp văn bản. Tiếp theo, chúng tôi lặp qua từng dòng trong tệp và tách nó thành lệnh, mô tả và giữ nó trong từ điển đã tạo. Cuối cùng, chúng tôi tạo một tệp JSON mới và sử dụng json.dump phương thức để kết xuất từ ​​điển vào tệp JSON với cấu hình cụ thể bao gồm sắp xếp và thụt lề.

Tuy nhiên, dữ liệu của chúng tôi từ các tệp PDF sẽ không được sắp xếp như trong ví dụ; do đó, chúng tôi có thể phải sử dụng các đường ống và tập lệnh tùy chỉnh để thực hiện định dạng văn bản phức tạp. Trong những trường hợp như vậy, các công cụ như Ống nano sẽ là lựa chọn tuyệt vời, và chúng ta cũng sẽ xem xét cách Nanonets giải quyết vấn đề này theo cách dễ dàng hơn nhiều trong các phần sau.

Trước đó, hãy xem xét một thư viện khác có thể chuyển đổi PDF sang JSON bằng cách sử dụng node.js:

pdf2json là một Node.js mô-đun phân tích cú pháp và chuyển đổi PDF từ định dạng nhị phân sang JSON; nó được xây dựng bằng pdf.js và mở rộng nó với các phần tử biểu mẫu tương tác và phân tích cú pháp nội dung văn bản bên ngoài trình duyệt.

Dưới đây là một ví dụ về việc sử dụng mô-đun này để phân tích cú pháp các tệp JSON của bạn:

Trước tiên, hãy đảm bảo có npm trình cài đặt và cài đặt mô-đun bằng lệnh sau:

npm install pdf2json

Tiếp theo, trong máy chủ nút của bạn, bạn có thể sử dụng đoạn mã sau để tải pdf2json và xuất pdf sang 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");

Đoạn mã trên sử dụng tệp JSON mẫu từ mô-đun và xuất nó thành tệp JSON, chúng ta có thể kiểm tra điều này trong ./test/target/ folder in your project. B

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

Cách chuyển đổi dữ liệu PDF sang JSON PlatoBlockchain Data Intelligence. Tìm kiếm theo chiều dọc. Ai đó.
Xuất 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:

Cách chuyển đổi dữ liệu PDF sang JSON PlatoBlockchain Data Intelligence. Tìm kiếm theo chiều dọc. Ai đó.
Nanonets converting data from PDF to JSON 


Chuyển đổi dữ liệu tùy chỉnh từ PDF sang JSON

Đôi khi, trong khi trích xuất dữ liệu từ các tài liệu kinh doanh, chúng tôi có thể yêu cầu tùy chỉnh. Ví dụ: giả sử nếu chúng tôi chỉ muốn các trang hoặc bảng nhất định, chúng tôi không thể làm điều đó trực tiếp. Trong trường hợp này, chúng tôi có thể cần cung cấp các quy tắc bổ sung cho trình phân tích cú pháp, việc này lại tốn nhiều thời gian. Nhưng hãy xem cách chúng tôi có thể thực hiện tùy chỉnh và các hành động mà hầu hết mọi người cần.

Dưới đây là một số hành động cần thiết để tùy chỉnh chuyển đổi PDF sang JSON:

  • Chỉ trích xuất văn bản hoặc các trang cụ thể từ các tệp PDF
  • Trích xuất tất cả các bảng từ tài liệu PDF
  • Trích xuất các cột cụ thể từ các bảng nhất định trong tệp PDF
  • Lọc văn bản từ các tệp PDF trước khi xuất chúng thành JSON
  • Tạo JSON lồng nhau dựa trên dữ liệu được trích xuất từ ​​các tệp PDF
  • Định dạng cấu trúc JSON dựa trên dữ liệu
  • Tạo, xóa, cập nhật giá trị của các trường nhất định trong JSON sau khi trích xuất

Đây là một số hành động thường được yêu cầu để lưu trữ dữ liệu của chúng tôi theo những cách khác nhau hoặc giả sử chúng tôi có đang xây dựng API cho một ứng dụng hay không. Hãy xem làm thế nào chúng ta có thể đạt được những điều này.

Trích xuất văn bản cụ thể: Trong các tệp PDF, chúng tôi có thể trích xuất văn bản cụ thể bằng cách sử dụng các biểu thức chính quy; ví dụ: giả sử nếu chúng tôi muốn tất cả các email và số điện thoại sử dụng regex, chúng tôi có thể chọn chúng ra. Nếu các tệp PDF ở định dạng được quét, chúng tôi cần đào tạo chúng về một thuật toán học sâu có thể hiểu bố cục của tệp PDF và trích xuất các trường dựa trên tọa độ và chú thích được thực hiện cho dữ liệu đào tạo. Một trong những kho mã nguồn mở phổ biến nhất để hiểu bố cục tài liệu và trích xuất văn bản là LayoutML và nó đào tạo trên các mô hình BERT để trích xuất văn bản tùy chỉnh. Tuy nhiên, chúng ta nên có đủ dữ liệu để đạt được độ chính xác cao hơn trong việc trích xuất văn bản.

Tùy chỉnh bảng: Như đã thảo luận, các bảng có thể được trích xuất bằng các thư viện như Camelot và Tabula-py hoặc sử dụng OCR và các thuật toán dựa trên học sâu. Nhưng để tùy biến, chúng ta sẽ phải sử dụng các thư viện như gấu trúc; điều này sẽ cho phép chúng tôi tạo, cập nhật và tuần tự hóa dữ liệu từ các bảng. Nó sử dụng kiểu dữ liệu tùy chỉnh được gọi là khung dữ liệu, được sử dụng rộng rãi để thao tác và tùy chỉnh dữ liệu bảng. Các ưu điểm khác của việc sử dụng gấu trúc bao gồm viết các hàm tùy chỉnh có thể thực hiện các phép toán nhất định trong quá trình trích xuất.

Định dạng dữ liệu JSON: Sau khi xuất các tệp PDF sang JSON, việc định dạng chúng là một công việc đơn giản, vì chúng tôi có một kiểu dữ liệu có thể tùy chỉnh hơn là các cặp khóa-giá trị. Chúng tôi có thể phát triển các tập lệnh đơn giản hoặc sử dụng các công cụ trực tuyến để tìm kiếm thông qua các cặp khóa-giá trị này và định dạng chúng. Một số tham số phổ biến nhất để định dạng bao gồm thụt đầu dòng, dấu phân cách, khóa sắp xếp, kiểm tra vòng tròn, kiểm tra dữ liệu. Nếu JSON đang được sử dụng làm API, chúng tôi có thể sử dụng Postman hoặc bất kỳ tiện ích mở rộng trình duyệt nào để định dạng dữ liệu và tương tác với các API.


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.


Dấu thời gian:

Thêm từ AI & Máy học