如何从PDF研究论文中准确提取标题、标题和副标题?

问题描述 投票:0回答:1

我正在尝试从 PDF 格式的研究论文中提取标题、标题和副标题。我尝试了各种方法,但未能获得准确的结果。以下是我采取的步骤:

1。尝试使用 PyMuPDF (fitz) 我使用 PyMuPDF (fitz) 从 PDF 中提取文本。虽然我能够获取文本,但问题是格式丢失了(例如,标题和副标题不容易区分)。文档的其他部分(例如引文和脚注)也存在额外的噪音。

2。提示语言模型 我还尝试使用提示语言模型 (LLM) 来分析提取的文本。我使用Ollama进行离线处理,但结果不够准确。当我尝试 OpenAI 的 GPT 和 Gemini 时,它们提供了准确的输出,但我想要一个可以离线工作的解决方案。

我尝试过的:

  • PyMuPDF(菲茨)
  • Ollama(llama3.1,gemma)
  • OpenAI GPT 和 Gemini 可以准确提取,但需要在线使用。
  • PyPDF2 和类似的库,但它们也返回非结构化文本。

我需要什么:

  • 从 PDF 研究论文中准确提取标题、标题和副标题。
  • 离线解决方案。
  • 引文、页码等额外内容带来的噪音最小

是否有可靠的离线方法或我可以采取的一些额外步骤:

  • 识别并准确提取标题、标题和副标题。
  • 最大限度地减少输出中的噪音和不相关内容。
python machine-learning pdf nlp
1个回答
0
投票

没有“确定”的方法可以知道 PDF 阅读器可以将哪种字体应用于 PDF 内容,因为它们不需要通过嵌入来固定。也不知道作者是谁,因为本文档是由

Anita
使用英语以德语输入的。

<xmp:CreatorTool>Microsoft® Word für Microsoft 365</xmp:CreatorTool>
/Title (Academic paper)
/Author (Anita Zehrer)
/Lang (en-GB)

在定义良好的 PDF 中,您可能可以肯定“嵌入”字体的大小或样式明显相似。但除非您调查工作面的差异,否则就不存在“确定性”。

这里是完全相同的文件,在两个 PDF 查看器中同时打开。 Acrobat Reader(左)显示无衬线字体 大多数其他阅读器将使用粗体和非粗体的 Times Serif 字体。

请注意,不同的样式也会产生宽度和高度差异。

MARKUS
(名义上的出版“作者”)使用的字体是对象编号 54,具有“TimesNewRomanPS-BoldMT”的概念,它是字体 /F2。并按 12 单位平方公制缩放。由于在此之前没有明显的变换,我们可以假设它是直立的并且高 12 点。没有什么可说的,马库斯是假定的作者。

BT
/F2 12 Tf
1 0 0 1 234.53 656.62 Tm
0 g
0 G
[(M)4(AR)4(KUS)] TJ
ET

enter image description here

/Resources<</Font<</F1 53 0 R/F2 54 0 R
...
54 0 obj
<</Type/Font/Subtype/TrueType/Name/F2/BaseFont/TimesNewRomanPS-BoldMT/Encoding/WinAnsiEncoding/FontDescriptor 356 0 R/FirstChar 32/LastChar 121/Widths[250 0 0 0 0 0 0 0 333 333 0 0 0 0 250 278 500 500 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 722 667 722 722 667 611 778 778 389 0 778 667 944 722 778 611 0 722 556 667 722 722 1000 0 722 0 0 0 0 0 0 0 500 556 444 556 444 333 500 556 278 0 556 278 833 556 500 556 0 444 389 333 556 500 722 0 500]>>
endobj

Acrobat 知道存在字体名称,但无法将其应用到该页面! enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.