我一直在不停地寻找一个工具,它可以在维护结构的同时从PDF中提取文本。也就是说,给出这样的文本:
标题
Subtitle1
Body1
Subtitle2
Body2
或
标题
Subtitle1。Body1
Subtitle2。Body2
我想要一个工具,可以输出一个标题,字幕和身体的列表。或者,如果有人知道如何做到这一点,那也是有用的:)
如果这三个类别采用相同的格式,这会更容易,但有时字幕可以是粗体、斜体、下划线,或者是3的随机组合。从HTML/PDF/Docx进行简单解析的问题是,这些文本没有标准,因此我们经常会遇到在几个标记中划分的句子(在HTML的情况下),并且很难解析。正如您所看到的,字幕并不总是在给定段落的上方,或者有时是在要点中。很多可能的格式组合..。
到目前为止,我在使用Tesseract的这里和使用OpenCV的这里中都遇到过类似的查询,但它们都没有完全回答我的问题。
我知道有一些机器学习工具可以从科学论文中提取“目录”部分,但这也不能割断它。是否有人知道包/库,或者是否已经实现了这种功能?或者有人知道解决这个问题的方法,最好是用Python?
谢谢!
编辑:
我所指的文档是来自公司的10-Ks,比如这个10,并且说,我想像上面提到的那样,以一种编程和结构化的方式提取项目7。但并不是所有这些代码都是标准化的,可以进行HTML解析。( PDF文档就是保存为PDF格式的HTML )
发布于 2019-10-30 11:23:35
有一些工具可以在一定程度上完成所请求的功能。说“一定程度”,我的意思是,标题和标题的字体属性将保留后,OCR转换。
看看Adobe的Document平台。该系统仍处于发射阶段,并将于2020年初发射。但是,开发人员可以通过注册早期访问程序来实现早期访问。所有信息都可以在以下链接中获得:
https://www.adobe.com/devnet-docs/dcsdk/servicessdk/index.html
我亲自尝试过这项服务,结果似乎很有希望。所有标题和标题的情况都会在输入文档中得到认可。提供此功能的微型服务是"ExportPDF“服务,它将扫描的PDF文档转换为Microsoft文档。
示例代码可在:https://www.adobe.com/devnet-docs/dcsdk/servicessdk/howtos.html#export-a-pdf上获得
发布于 2021-07-21 17:43:57
这里有很多代码要做,但是让我描述一下我在Python中会做些什么。这是基于在字体大小和样式方面存在一些结构:
word_num将单个单词组合成一行单词cv2.ximgproc.thinning)(sum_inverted_pixels - sum_skeleton_pixels) / sum_skeleton_pixels (有时会出现零除数误差,检查骨架之和为0,然后返回0)请注意,有一些方法可以检测表、页脚等,我不会深入研究这些方法。找像下面这样的研究论文。
相关研究论文:
发布于 2021-07-19 02:45:20
我做了一些关于这个话题的研究和实验,所以让我试着给出一些我从工作中得到的提示,这还远远不够完美。
我没有找到任何可靠的库来做这件事,尽管我有足够的时间和可能的能力(我在阅读别人的代码方面仍然相对缺乏经验),我很想检查一下其中的一些工作,特别是一个(帕斯尔)。
通过将过滤器应用于Tesseract's hOCR输出,我在标题/标题识别方面确实取得了一些不错的结果。它需要大量的工作,即
这个列表要长得多。例如,您可能还需要应用其他一些标准,比如比较相同的单词宽度:如果在一行中您发现超过一定数量的单词(我使用>= 50%)大于平均值(与文档中其他地方的相同单词相比),那么您几乎肯定有一个很好的候选标题或标题。(标题和标题通常也会出现在文档中,通常是多次出现)
另一个标准是检查所有大写行,增强可以是单行(属于只有一行的段落的行)。
对不起,我不能发布任何代码(*),但希望你得到了要点。
这并不是一个简单的壮举,如果您不使用ML,则需要大量的工作。也不确定有多少ML能使它更快,因为有大量的PDF存在,而且可能是大人物(Adobe、Google、Abbyy等)训练了他们的模型很长一段时间。
(*)我的代码是用JS编写的,它在一个大型的转换应用程序中被严重地交织在一起,到目前为止,我还不能发布开源。我相当肯定您可以在Python中完成这项工作,尽管JS操作在那里可能有一定的优势。
https://stackoverflow.com/questions/51252872
复制相似问题