【问题标题】:How i can extract only text without tables inside a pdf file using PDFplumber?如何使用 PDFplumber 在 pdf 文件中仅提取没有表格的文本?
【发布时间】:2021-02-20 16:31:38
【问题描述】:

我想使用 NLP 模块处理一些 pdf 文件,然后我想从所有现有表中清除这些文件。

这是使用pdfplumber提取表格的代码

import pdfplumber
pdf = pdfplumber.open("file.pdf")
page = pdf.pages[1]
table=page.extract_table()

但我想反转操作以仅提取文本

【问题讨论】:

    标签: python pdf text nlp


    【解决方案1】:

    免责声明:我是pText 的作者,此答案中使用的库。

    1. 加载Document

    2. 你需要定义一个LocationFilter

    LocationFilter 的作用与它在锡上所说的差不多。它会监听解析事件(如“渲染文本”或“将字体更改为”),但它只允许那些在给定边界内的事件通过。

    请记住,PDF 坐标的原点位于左下角。 因此,此示例中的LocationFilter 将仅匹配页面左下角的文本。

    1. SimpleTextExtraction 添加到LocationFilter

    下一个问题是“LocationFilter 要将事件传递给什么?” 在这种情况下,您可以先尝试SimpleTextExtraction

    把它们放在一起:

    l0 = LocationFilter(0, 0, 100, 100)
    
    l1 = SimpleTextExtraction()
    l0.add_listener(l1)
    
    doc = PDF.loads(pdf_file_handle, [l])
    

    加载文档后,您可以向SimpleTextExtraction 询问给定Page 上的所有文本。

    l1.get_text(0)
    

    您可以通过GitHub 或使用PyPi 获取pText 还有很多 examples,请查看它们以了解有关处理图像的更多信息。

    【讨论】:

      【解决方案2】:

      你真的必须坚持使用 pdfplumber 吗? 如果没有,我可以建议一个更好的解决方案,改用 tabula。 这是您可以查看的类似问题的答案:tabula

      【讨论】:

      • 答案应该不仅仅是指向外部网站的链接。至少展示一下你如何使用制表符解决这个人的问题。
      猜你喜欢
      • 1970-01-01
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多