如何将 PDF 数据转换为 JSON PlatoBlockchain 数据智能。 垂直搜索。 哎。

如何将 PDF 数据转换为 JSON

PDF 是商业文档最常用的数据格式之一。许多企业和组织依赖各种工具来创建和阅读这些 PDF 文档。

然而,很难有选择地从 PDF 中提取特定/重要的数据。

这就是 JSON(Javascript 对象表示法)发挥作用的地方。

它是最受欢迎的信息交换数据格式之一。特别是当涉及到 Web 应用程序时,大多数数据都是通过 API 使用 JSON 进行通信的 数据库查询.

在这篇博文中,我们将讨论:

  • Nanonets 如何自动将复杂的数据从复杂的商业 PDF 文档转换为结构化 JSON 文件。
  • 一些使用 Python、Linux 和 Javascript 模块将 PDF 转换为 JSON 的免费开源技术。
    • 如何从 PDF 中提取特定/复杂的数据,例如表格和特定文本字符串。
    • 自定义工作流程可帮助自动化将 PDF 转换为 JSON 的过程。

Nanonet 将特定 PDF 数据转换为 JSON 输出

想要从 PDF 文档中提取特定数据并转换为 JSON?查看 纳米网络API 自动将任何类型的技术文档批量 PDF 转换为 JSON!


Nanonets 自动 PDF 到 JSON 转换器

  • 注册 Nanonets 的免费计划提供 100 页学分 – 不需要信用卡.
  • 添加一批您的商业 PDF 文件
  • Nanonets 自动捕获一系列文档类型(发票、收据、驾照、护照和表格)中的字段
    • 您还可以训练 Nanonets 的 AI 从任何类型的文档中检测/捕获您感兴趣的数据字段!
  • 验证提取的数据并导出为 JSON 输出
    • 您还可以将 Nanonets 与许多 ERP 软件集成 – 安排一个电话 与我们的人工智能专家一起测试您的用例。
  • 看看我们的 文字识别API 自动化 PDF 到 JSON 工作流程
如何将 PDF 数据转换为 JSON PlatoBlockchain 数据智能。 垂直搜索。 哎。
使用 Nanonets 将 PDF 转换为 JSON

捕获数据 从 PDF 文档转换为 JSON、csv 或 Excel? 了解纳米网如何提供帮助。

如何将 PDF 数据转换为 JSON PlatoBlockchain 数据智能。 垂直搜索。 哎。
超级快乐的 Nanonets 用户


PDF 到 JSON 转换的需要

几乎每个企业都依赖文档来共享信息。这些可以是文件、发票、税务申报、收据、医疗报告等等。

这些文档通常以 PDF 形式共享/接收。

但如果您想要搜索关键信息或构建仪表板来分析和存储所有重要信息,从这些 PDF 中手动收集数据可能是一项艰巨的任务。

如果 PDF 是电子生成的,我们可以将信息复制粘贴到数据源中;否则,我们可能不得不 使用光学字符识别 和机器学习技术来提取信息。

此外,PDF 中的数据未经组织或无法直接由机器读取。因此,我们可能必须手动搜索信息。

但对于 JSON,一切都以键值对的形式组织。这是一个例子。

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

如果您可以看到上面的 JSON 格式,则数据更有条理,您也可以更方便地在网络上共享此信息。这就是为什么将 PDF 数据导出为 JSON 对于许多公司来说至关重要。

JSON 带来的商业利益

对于企业来说,JSON 数据格式比 PDF 有很多优势:

  1. JSON 更快:JSON语法简单易用;每当您尝试解析任何 JSON 数据时,与 PDF 和其他数据格式相比,执行速度要快得多。这是因为语法很轻量并且可以快速执行响应。
  2. 更具可读性: JSON 数据可读性更强; 我们将有一个带有键和值的简单数据映射。 因此,如果您要从 PDF 中搜索内容或组织数据,JSON 会更方便。 此外,JSON 支持数据嵌套,因此可以更有效地存储表中的数据。
  3. 方便的架构: JSON 对于大多数操作系统和编程语言都是通用的; 因此,如果您正在构建任何软件或 Web 应用程序来自动化您的业务,那么 JSON 应该是正确的数据格式。 此外,大多数 Web 浏览器都支持 JSON 格式; 因此,我们不必付出额外的努力来使用第三方软件来读取 JSON 数据。
  4. 轻松分享: JSON 是共享任何大小数据的最佳工具,甚至是大表或文本等。这是因为 JSON 将数据存储在数组中,因此数据传输使其更易于访问。 因此,JSON 是一种用于 Web API 和 Web 开发的高级文件格式。

在下一节中,让我们看看将 PDF 转换为 JSON 格式时可能面临的一些挑战。


纳米网有很多有趣的地方 用例 可以优化您的业务绩效,节省成本并促进增长。 找出 Nanonets的用例如何适用于您的产品。


从 PDF 转换为 JSON 的挑战

让我们看看从 PDF 导出到 JSON 时遇到的一些挑战。

  1. 检测字体:人们在 PDF 文档中使用不同的字体、颜色和对齐方式。 因此,解析器真的很难阅读这些。 此外,在导出时,我们必须定义特定规则,以便在解析器提取数据后,所有信息都应以 JSON 格式正确映射。 在这种情况下,正则表达式被广泛用于挑选特定文本,然后将其导出为 JSON 格式的正确密钥。
  2. 从扫描文档中检测文本: 如前所述,当 PDF 不是以电子方式生成时,我们将不得不使用 OCR,并且选择 OCR 至关重要。 尽管许多用户尝试使用 tesseract 等开源工具,但他们有自己的一套限制。 例如,如果文本捕获不当或在捕获时未对齐,则 tesseract 可能不起作用,并且选择其他工具可能会很昂贵。
  1. 识别表:大多数业务文档都包含表格信息,从 PDF 文档中确定这些表格并将它们转换为 JSON 是一项具有挑战性的任务。 有一些基于 Python 和 Java 的库可以帮助从电子制作的 PDF 文档中提取表格。
  2. 从扫描的 PDF 中识别表格: 扫描 PDF 后,大多数软件包都不起作用。在这种情况下,如果我们选择像 tesseract 这样的开源 OCR,它可以提取文本,但可能会丢失所有表格格式。因此,选择格式不正确的大纲项目是一项挑战。这就是我们必须使用机器学习和基于深度学习的算法的地方。一些流行的算法是基于 CNN 的,并且已经有很多研究在改进这些算法。

以下是一些解决从文档中提取表格问题的研究论文:

在下一节中,我们来看看如何从 PDF 解析数据以生成 JSON 文件。

使用 Python 和 Linux 解析 PDF 数据并生成 JSON 文件

如果您有开发经验,解析 PDF 并不是一项复杂的任务。

首先,我们必须检查 PDF 文件是否包含文本数据或由扫描图像组成。如果没有返回文本,我们必须检查是否可以提取文本数据或通过 OCR 库传输文件。

这可以使用 Python 库或依靠一些 Linux 命令行实用程序来实现。

转文字 是解析电子 PDF 的最流行的库之一。我们可以使用它将所有 PDF 数据转换为文本格式,然后将其推送为 JSON 格式。

以下是我们如何使用的一些说明 pdftotext 并在 Linux 机器上解析 PDF。

首先,安装命令行工具:

sudo apt-get install poppler-utils

接下来,使用 pdftotext 命令并添加 PDF 文件的源路径和目标文本文件位置。

pdftotext {PDF-file} {text-file}

有了这个,我们应该能够从 PDF 文件中提取所有可读文本。

要生成 JSON 文件,我们必须再次根据我们的数据编写一个脚本,该脚本可以解析文本并将它们导出到相关的键值对中。

这是我们用 Python 编写的示例脚本,用于转换简单的 .txt 文件转换为 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()

考虑文本文件中的数据为:

invoice_id #234
invoice_name Invoice from AWS
invoice_total $345

在这里,我们首先导入了内置的 JSON 库。 我们现在创建一个字典数据类型来存储文本文件中的所有键值对。 接下来,我们遍历文件中的每一行并将其剥离为命令、描述并将其保存在创建的字典中。 最后,我们创建一个新的 JSON 文件并使用 json.dump 使用包含排序和缩进的特定配置将字典转储到 JSON 文件的方法。

但是,我们来自 PDF 的数据不会像示例中给出的那样组织; 因此,我们可能不得不使用自定义管道和脚本来处理复杂的文本格式。 在这种情况下,像这样的工具 纳米网 将是不错的选择,我们还将在以下部分中了解 Nanonets 如何以更简单的方式解决此问题。

在此之前,让我们看看另一个使用 node.js 将 PDF 转换为 JSON 的库:

pdf2json 是一个 的node.js 将 PDF 从二进制格式解析和转换为 JSON 格式的模块; 它是用 pdf.js 并通过浏览器外的交互式表单元素和文本内容解析来扩展它。

以下是使用此模块解析 JSON 文件的示例:

首先,确保有 npm 安装程序并使用以下命令安装模块:

npm install pdf2json

接下来,在您的节点服务器中,您可以使用以下代码片段加载 pdf2json 并将 pdf 导出为 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");

上面的代码片段使用模块中的示例 JSON 文件并将其导出为 JSON 文件,我们可以在 ./test/target/ 项目中的文件夹。乙

下面,您将看到该模块如何导出 JSON 文件的屏幕截图:

如何将 PDF 数据转换为 JSON PlatoBlockchain 数据智能。 垂直搜索。 哎。
JSON 导出

对于解析表格中的 PDF,这些库可能不起作用!


您必须利用 OCR 和机器学习算法将表格数据提取为 JSON。 Nanonets 正是这样做的,如下所示:

如何将 PDF 数据转换为 JSON PlatoBlockchain 数据智能。 垂直搜索。 哎。
Nanonet 将数据从 PDF 转换为 JSON 


从 PDF 到 JSON 的自定义数据转换

有时,在从业务文档中提取数据时,我们可能需要进行定制。 例如,假设我们只想要某些页面或表格,我们不能直接做。 在这种情况下,我们可能需要为解析器提供额外的规则,这同样很耗时。 但是让我们看看我们如何进行大多数人需要的定制和操作。

以下是在 PDF 到 JSON 转换中进行自定义所需的一些操作:

  • 仅从 PDF 中提取特定文本或页面
  • 从 PDF 文档中提取所有表格
  • 从 PDF 中的某些表中提取特定列
  • 在将 PDF 导出为 JSON 之前过滤它们中的文本
  • 基于从 PDF 中提取的数据创建嵌套的 JSON
  • 根据数据格式化JSON结构
  • 提取后创建、删除、更新 JSON 中某些字段的值

这些是以不同方式存储我们的数据通常需要的一些操作,或者说我们是否正在为应用程序构建 API。 让我们看看我们如何实现这些。

提取特定文本:在 PDF 中,我们可以使用正则表达式提取特定文本; 例如,假设我们想要使用正则表达式的所有电子邮件和电话号码,我们可以选择它们。 如果 PDF 是扫描格式,我们需要在深度学习算法上训练它们,该算法可以理解 PDF 的布局并根据对训练数据所做的坐标和注释提取字段。 LayoutML 是最流行的用于理解文档布局和提取文本的开源存储库之一,它训练 BERT 模型以进行自定义文本提取。 但是,我们应该有足够的数据来实现更高的文本提取精度。

表定制: 如前所述,可以使用 Camelot 和 Tabula-py 等库或使用 OCR 和基于深度学习的算法来提取表格。 但是对于定制,我们将不得不使用像 pandas 这样的库; 这将允许我们创建、更新和序列化表中的数据。 它使用称为数据框的自定义数据类型,广泛用于操作和自定义表数据。 使用 Pandas 的其他优点包括编写可以在提取过程中执行某些数学运算的自定义函数。

格式化 JSON 数据:将 PDF 导出为 JSON 后,格式化它们是一项简单的任务,因为我们有一个更可定制的数据类型,即键值对。 我们可以开发简单的脚本或使用在线工具来搜索这些键值对并对其进行格式化。 一些最常见的格式化参数包括缩进、分隔符、排序键、循环检查、数据检查。 如果 JSON 被用作 API,我们可以使用 Postman 或任何浏览器扩展来格式化数据并与 API 交互。


想要从 PDF 文档中提取信息并将其转换为 JSON 格式?查看 Nanonets,将任何 PDF 文档中的任何信息自动导出到 JSON。


时间戳记:

更多来自 人工智能与机器学习