6

我正在开发发票解析器,它从 pdf 或图像格式的发票中提取数据。它适用于具有非表格数据的简单 pdf,但提供大量输出数据以使用包含表格的 pdf 进行处理。我无法获得一个有效的通用解决方案为此。我尝试了以下库

Invoice2Data:它基于模板。到目前为止,它以 json 格式给出了相当好的结果。但是包含动态表的复杂 pdf 的模板创建很复杂。

表格:表格提取是基于要提取的表格的坐标。如果表格中的数据增加,表格长度会增加,因此坐标会发生变化。所以在这种情况下会给出错误的结果。

Pdftotext:它将任何 pdf 转换为文本,但格式需要我们不想要的大量解析。

Aws_Textract 和 Elis_Rossum_Ai:以 json 格式给出所有数据。但是如果表列包含多行,则 json 解析变得困难。即使给出的 json 大小也很大,无法解析。

Tesseract:与 pdftotext 相同。复杂的 pdf 文件不可解析。

除了所有这些或上述库的组合之外,是否有人能够解析复杂的 pdf 数据,请帮助。

4

1 回答 1

4

我正在处理类似的业务问题。由于发票没有固定格式,因此您不能直接使用任何文本解析方法。

要解决这个问题,您必须使用计算机视觉(深度学习)进行字段检测,使用 Pytesseract OCR 将图像转换为文本。为了更好地理解这里是步骤:

  1. 使用 labelImg 等工具将发票转换为图像并使用地址、金额等字段对图像进行注释。(为获得更好的结果,请使用不同类型的 500-1000 发票)

  2. 在生成 XML 文件之后训练任何对象检测模型,例如 YOLO 或 TF 对象检测 API。

  3. 该模型将检测这些字段并为您提供感兴趣区域 (ROI) 的坐标。喜欢 示例发票

  4. 在 ROI 坐标上应用 Pytessract OCR。点击这里

  5. 最后,使用正则表达式验证提取字段中的文本并执行任何必要的操作/转换。最后将数据存储到 CSV OR 数据库。

希望我的回答对你有帮助!Upvote 答案,以便它达到最多的人。

于 2020-08-13T17:59:56.790 回答