【问题标题】:Extract / Identify Tables from PDF python [closed]从PDF python中提取/识别表[关闭]
【发布时间】:2015-04-16 10:52:15
【问题描述】:

是否有任何支持表格识别和提取的开源库?

我的意思是:

  1. 识别表结构存在
  2. 根据内容对表格进行分类
  3. 以有用的输出格式从表中提取数据,例如JSON / CSV 等

我查看了有关此主题的类似问题并发现以下内容:

  • PDFMiner 解决了问题 3,但似乎用户需要向 PDFMiner 指定每个表存在表结构的位置(如果我错了,请纠正我)
  • pdf-table-extract 试图解决问题 1 但根据 To-Do 列表,当前无法识别由空格分隔的表。这是一个问题,因为我的 PDF 中的所有表格都由空格分隔!

目前,我认为我必须花费大量时间开发机器学习解决方案来识别 PDF 中的表结构。因此,任何替代方法都将受到欢迎!

【问题讨论】:

  • 如果你也可以使用python以外的工具,你可能想看看tabula
  • 谢谢。肯定会调查的。我热衷于在 python 中找到解决方案,因为可以编写 python 的速度

标签: python pdf scrape pdf-parsing pdf-scraping


【解决方案1】:

在探索 OCR 库、边界框和聚类算法许多富有成效的小时后,我找到了一个简单到让你想哭的解决方案!

希望你使用的是 Linux;

pdftotext -layout NAME_OF_PDF.pdf

太棒了!!

现在你有一个漂亮的文本文件,所有信息都排列在漂亮的列中,现在格式化为 csv 等很简单。

正是在这样的时刻,我爱上了 Linux,这些人为所有事情想出了惊人的解决方案,并免费提供!

【讨论】:

  • 链接到文档?例子?如果您提到的图书馆是我怀疑的图书馆,它似乎不符合 1. 或 2. 的标准。
  • 谢谢,这很好用! :)
  • 天啊,这个效果非常好!!!
  • 我能够在 Windows 10 上获得pdftotext。只需下载适用于 Windows 的 [XPDFTools][1]。 [1]:xpdfreader.com/download.html
  • 它仅适用于数字 pdf,不适用于扫描的 pdf。
【解决方案2】:

你一定要看看我的这个答案:

并查看其中包含的所有链接。

Tabula/TabulaPDF是目前最好的可用于PDF抓取的表格提取工具。

【讨论】:

  • 只是关于这个答案有效性的更新......我去年使用tabula 一起破解了一个解决方案,以迭代大约 100 个具有几种共同格式的 PDF。它并不漂亮,但它是最坏中最好的,节省了大量时间。
  • pypi.python.org/pypi/pdftable 能满足要求吗?
  • 它只适用于基于文本的 pdf,而不适用于图像。有没有类似的东西可以从 pdf 图像中提取数据?
  • @Sundeep:当然它只能用于基于文本的 PDF。如果要从图像中提取表格,则必须先尝试在图像上运行 OCR(光学字符识别)过程,然后对文本应用表格提取。最终结果的质量很大程度上取决于 OCR 步骤的成功。没有什么可以直接从仅包含图像的 PDF 中提取表格(或文本)。
  • 我正在寻找可以做到这一点的工具,顺便说一句,感谢@KurtPfeifle 提供的信息
【解决方案3】:

我想补充一下来自 Kurt Pfeifle 的非常有帮助的答案 - 现在有一个用于 Tabula 的 Python 包装器,到目前为止这似乎工作得很好:https://github.com/chezou/tabula-py

这会将您的 PDF 表格转换为 Pandas 数据框。您还可以在 x,y 坐标中设置区域,这对于不规则数据显然非常方便。

【讨论】: