从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 - 提取格式化文本和纯文本 [关闭]

如何从PDF文档中提取文本? [关闭]

从研究论文的 PDF 中提取信息 [关闭]

使用 C# 或经典 ASP (VBScript) 从 PDF 中提取文本的好方法是啥? [关闭]

将 PDF 恢复为 LaTeX [关闭]