【问题标题】:Paragraph extraction in PyMuPDFPyMuPDF中的段落提取
【发布时间】:2021-02-18 21:17:47
【问题描述】:

我正在使用 PyMuPDF 从块单元的 PDF 中提取文本。在许多情况下,“块”似乎只是默认为换行符分隔的单元,而不是逻辑段落。

import fitz
doc = fitz.open("example.pdf")
blocks = [x[4] for x in  doc[0].getText("blocks")]
print(blocks)

(example.pdf可以找到here

如果不是从 Mac 的沼泽标准预览应用程序直接复制/粘贴,我可以忍受这一点,精美地保留了段落。 PyMuPDF 不做的 Preview 是什么?我的管道的其余部分几乎都锁定在 PyMuPDF 中,所以我不能真正使用 Preview 进行提取。

【问题讨论】:

    标签: mupdf pdf-extraction pymupdf


    【解决方案1】:

    我希望有一种方法可以调用 Preview 使用的引擎。它比我为 Python 找到的任何东西都要好得多。但要回答你的问题,我认为 PyMuPDF 在段落之间插入了一个包含单个空格 (' ') 的字符串。

    例如,在第一段和第二段之间,你有:

    ...ontspannen. ', ' ', 'Kunnen...

    您可以使用换行符 ('\n') 替换所有单个空格字符串,如下所示:

    for i in range(len(blocks)):
        if blocks[i] == ' ':
            blocks[i] = '\n'
    

    由于每行文本都是作为单独的字符串返回的,因此您可能还想连接组成段落的字符串。

    【讨论】:

    • 是的,我也想知道 Preview 的秘诀是什么。现在,我只是提取整页,然后在很多上执行句子标记化。有点工作,但希望我能从源头上得到它。
    猜你喜欢
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-05
    • 2011-06-29
    相关资源
    最近更新 更多