首页 > 解决方案 > 从 PDF 获取树文件(最好使用 Python)

问题描述

我想制作一系列包含此 PDF ( http://mica.lif.univ-mrs.fr/d6.clean2-backup.pdf ) 中的树的文件。文件的名称将是左侧对应的树编号(t0、t1 等)。

我曾尝试使用 python 来提取相关信息和树,但我遇到了麻烦。具体来说,当我尝试将树木提取为图像时(使用https://nedbatchelder.com/blog/200712/extracting_jpgs_from_pdfs.html),没有任何树木出现(可能是因为树木的格式不正确)。但是,当我尝试将其全部提取为文本(如https://www.geeksforgeeks.org/working-with-pdf-files-in-python/)时,树会丢失所有格式(以及它们的一些信息,我思考)。我怎样才能从这个 PDF 中获取我想要的文件?可以用 Python 完成吗?还有其他更简单的方法吗?

或者,我从中获得 PDF的网站( http://mica.lif.univ-mrs.fr/ )具有另一种形式的树(例如:t27 S##1#l# NP#0#2#l #s NP#0#2#r#s VP##3#l# V##4#l#h V##4#r#h NP#1#5#l#s NP#1#5#r #s 副总裁##3#r# S##1#r#)。有没有一种好方法可以将这种形式转换为树木形式的良好视觉效果?

对于这些方法中的任何一种(或其他方法,如果人们有想法)的任何帮助将不胜感激。谢谢!

标签: pythonpdftreenlpextraction

解决方案


如果您查看 PDF 文件的元数据,您会发现它是由TeX (LaTeX)创建的文件。我建议您从创建此文档的人那里获取原始的 LaTeX 源文件(而不是 PDF),而不是尝试对 PDF 中的图表进行 OCR。 pdf的元数据

基本上,由于创建 PDF 的方式,从这个 LaTeX PDF 回到文档是不可能的(没有大量工作)。您可以考虑尝试将 PDF 转换回文档,类似于对软件进行逆向工程(就像其他 Stack Overflow 成员在关于从 PDF 转换回 LaTeX 文档的线程中提到的那样):https:// stackoverflow.com/a/1620020/10382707

有时,如果我尝试对 PDF 进行一些简单的光学字符识别 (OCR),我会尝试将它们上传到 Google Docs,以查看他们的 OCR 引擎如何从 PDF 文档中提取文本。GDocs OCR 适用于以标准方式格式化的 PDF,但它往往会破坏表格、图表等内容。

如果您有兴趣将数学方程式的图片转换为 LaTeX,您可能想查看哈佛的一些研究人员在OpenAI 的研究呼吁中创建的这个简洁的工具, 它将把数学方程式的图像转换为LaTeX 符号


推荐阅读