从PDF python中提取/识别表[关闭]
Posted
技术标签:
【中文标题】从PDF python中提取/识别表[关闭]【英文标题】:Extract / Identify Tables from PDF python [closed] 【发布时间】:2015-04-16 10:52:15 【问题描述】:是否有任何支持表格识别和提取的开源库?
我的意思是:
-
识别表结构存在
根据内容对表格进行分类
以有用的输出格式从表中提取数据,例如JSON / CSV 等
我查看了有关此主题的类似问题并发现以下内容:
PDFMiner 解决了问题 3,但似乎用户需要向 PDFMiner 指定每个表存在表结构的位置(如果我错了,请纠正我) pdf-table-extract 试图解决问题 1 但根据 To-Do 列表,当前无法识别由空格分隔的表。这是一个问题,因为我的 PDF 中的所有表格都由空格分隔!目前,我认为我必须花费大量时间开发机器学习解决方案来识别 PDF 中的表结构。因此,任何替代方法都将受到欢迎!
【问题讨论】:
如果你也可以使用python以外的工具,你可能想看看tabula。 谢谢。肯定会调查的。我热衷于在 python 中找到解决方案,因为可以编写 python 的速度 【参考方案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】:
你一定要看看我的这个答案:
Extracting table contents from a collection of PDF files并查看其中包含的所有链接。
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 坐标中设置区域,这对于不规则数据显然非常方便。
【讨论】:
以上是关于从PDF python中提取/识别表[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 3.4 中从 PDF 中提取文本的最佳工具 [关闭]
使用 Python 解析 PDF - 提取格式化文本和纯文本 [关闭]