Pdf Miner返回奇怪的字母/字符

我在python 3中使用pdfminer,从pdf中恢复的文本中出现了奇怪的字母。

例如,我得到的significant不是significant(请注意,字母fI被合并为一个)。

我不知道为什么会这样。这是我正在使用的代码。

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import StringIO
from nltk.tokenize import sent_tokenize


def convert_pdf_to_txt(path):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
    fp = open(path, 'rb')
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    password = ""
    maxpages = 0
    caching = True
    pagenos=set()

    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
        interpreter.process_page(page)

    text = retstr.getvalue()

    sentences = sent_tokenize(text)

    for s in sentences:
        print(s)
        print("\n\n")

到目前为止,我唯一的猜测是它可能与编码有关,但是似乎没有办法检索pdf的编码

钟洁

PDFminer正常工作。有问题的字符是Unicode字符U + FB01(fi连字)

添加一行来代替fi你的代码:

for s in sentences:
    s = s.replace ('fi', 'fi')
    print (s)

还有另一种非常普遍的纯印刷字体(*),以Unicode定义:连字U + FB02 fl一样对待:

    s = s.replace ('fl', 'fl')

以及“字母表示”块中的其他几个,您也可以包括在内。

(*)你犯错误,以改变æaeœoe这些不是“纯印刷连字”,而是有效的字符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章