我使用 .txt 文件将 PDF 文件转换为 txt 文件pdftotext
。举个例子,我有一个句子“这是关于……的功能相关性的第一个研究”,注意“first”中的 f;当我通过 GATE 处理这个句子时,我将“first”扭曲为“ï�rst”。另外,在“蛋白质从附加型转染的 HEK293EBNA 细胞中分离出来,并通过 a 上的亲和层析进行纯化”中,一些包含字符的单词看起来像 f,但它不是 f 也被扭曲了“蛋白质从附加型转染的 HEK293EBNA 细胞中分离出来并纯化”通过亲和色谱法在“a”上进行。
如何pdftotext
以可读的编码输出文本?
答案1
请注意,在您粘贴的文本中,“first”中的“fi”和“affinity”中的“ffi”是连字(多个字符组合成一个字形)。据推测,pdftotext
将每个连字打印为单个字符,而您用来阅读文本的工具不支持该字符。
作为一个超级用户问题建议,试试这个:
pdftotext -enc ASCII7 input.pdf output.txt
这应该可以防止pdftotext
逐字打印连字,强制将其扩展为 ASCII 字符。
答案2
由于我已经在 Python 中将 pdf 转换为文本,因此我使用简单的 Python 命令对 pdf 文本进行后处理:
# efficient ->
# efficient
import unicodedata
pdf_text = unicodedata.normalize("NFKC", pdf_text)