【发布时间】:2019-03-22 17:23:33
【问题描述】:
我有大量不同格式的 pdf。除其他外,我需要提取它们的标题(不是文档名称,而是文本中的标题)。由于格式的范围,标题不在 pdf 中的相同位置。此外,一些 pdf 文件实际上是扫描图像(我需要对它们使用 OCR/光学字符识别)。标题有时是一行,有时是 2 行。它们的词组往往不同。在标题通常出现的物理位置范围内,通常还有其他词(即,如果 doc 1 在 x1, y1 有标题 1,则 doc 2 可能在 x2, y2 有标题 2,但在 x1 y1 有其他非标题文本)。此外,在极少数情况下 pdf 没有标题。
到目前为止,我可以使用 pdftotext 在给定的边界框中提取文本,并将其转换为文本文件。如果有标题,这可以让我捕捉到标题,但通常会包含其他无关的词。这也仅适用于非图像 pdf。我想知道是否a)有一种从我为文档提取的所有单词中识别标题的好方法(因为经常有无关的单词),理想情况下是一种识别标题不存在的好方法,并且b)如果有任何与 pdftotext 等效的工具也适用于扫描的图像(我确实有一个 ocr 脚本工作,但它对整个图像而不是一个部分进行 ocr)。
在一定程度上解决标题困境的一种方法是提取边界框中的单词,使用文档的其余部分来识别哪些边界框单词是文档的关键字,并根据关键字构造标题。这不会提取实际标题,但可能会给出可以构建合理替代方案的单词。我已经在为项目的其他部分提取关键字,但我肯定更喜欢提取实际标题,因为人们可能会使用逐字标题进行查找。
如果不清楚,请进一步注意 - 我正在尝试使用开源/免费工具以编程方式执行此操作,最好是在 Python 中,并且我将拥有大量文档(10,000 多个)。
【问题讨论】:
-
这听起来像是一项艰巨的任务,不仅仅是 OCR,还有标题在哪里的识别。我很想知道是否有办法以编程方式做到这一点。我建议考虑像Amazon Mechanical Turk 这样的东西来完成这项任务。它不会是免费的,但你的时间也不是,而且可以通过这种方式完成。
标签: python pdf nlp ocr pdf-scraping