我正在尝试从 PDF 格式的研究论文中提取标题、标题和副标题。我尝试了各种方法,但未能获得准确的结果。以下是我采取的步骤:
1。尝试使用 PyMuPDF (fitz) 我使用 PyMuPDF (fitz) 从 PDF 中提取文本。虽然我能够获取文本,但问题是格式丢失了(例如,标题和副标题不容易区分)。文档的其他部分(例如引文和脚注)也存在额外的噪音。
2。提示语言模型 我还尝试使用提示语言模型 (LLM) 来分析提取的文本。我使用Ollama进行离线处理,但结果不够准确。当我尝试 OpenAI 的 GPT 和 Gemini 时,它们提供了准确的输出,但我想要一个可以离线工作的解决方案。
我尝试过的:
我需要什么:
是否有可靠的离线方法或我可以采取的一些额外步骤:
没有“确定”的方法可以知道 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
/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