Problem
我试图通过搜索文本来确定文档的类型(例如诉状、信件、传票等),最好使用 python。所有 PDF 都是可搜索的,但我还没有找到使用 python 解析它并应用脚本来搜索它的解决方案(不需要先将其转换为文本文件,但这对于 n 个文档来说可能是资源密集型的)。
到目前为止我做了什么
我研究了 pypdf、pdfminer、adobe pdf 文档以及我能找到的任何问题(尽管似乎没有一个问题可以直接解决这个问题)。 PDFminer 似乎最有潜力,但在阅读完文档后我什至不知道从哪里开始。
有没有一种简单、有效的方法来阅读 PDF 文本,无论是按页、按行还是整个文档?或者还有其他解决方法吗?
这称为 PDF 挖掘,并且非常困难,因为:
- PDF 是一种旨在打印而非解析的文档格式。在 PDF 文档中,
大多数情况下,文本没有特定的顺序(除非顺序对于打印很重要)
原始文本结构丢失(字母可能无法分组
因为单词和单词可能不会分组在句子中,并且它们的放置顺序
纸张通常是随机的)。
- 生成 PDF 的软件有很多,但很多都有缺陷。
PDFminer 等工具使用启发式方法根据字母和单词在页面中的位置再次对其进行分组。我同意,界面水平相当低,但当你知道时它就更有意义了
他们试图解决什么问题(最后,重要的是选择字母/单词/行与相邻字母/单词/行的距离必须有多远才能被视为段落的一部分)。
一个昂贵的替代方案(就时间/计算机能力而言)是为每个页面生成图像并将其输入 OCR,如果您有很好的 OCR,可能值得一试。
所以我的答案是否定的,不存在从 PDF 文件中提取文本的简单有效的方法 - 如果您的文档具有已知的结构,您可以微调规则并获得良好的结果,但这始终是一场赌博。
我真的很想被证明是错的。
[update]
答案没有改变,但最近我参与了两个项目:其中之一是使用计算机视觉从扫描的医院表格中提取数据。另一个从法庭记录中提取数据。我学到的是:
计算机视觉在 2018 年将成为普通人的能力。如果您有大量已分类文档的样本,您可以使用 OpenCV 或 SciKit-Image 来提取特征并训练机器学习分类器来确定文档的类型。
如果您正在分析的 PDF 是“可搜索的”,您可以使用类似软件提取所有文本pdf转文本和贝叶斯过滤器(与垃圾邮件分类算法相同)。
因此,没有可靠且有效的方法从 PDF 文件中提取文本,但您可能不需要一种方法来解决手头的问题(文档类型分类)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)