【问题标题】:Is there a way to search a pdf for a particular keyword and display the value associated with that keyword?有没有办法在 pdf 中搜索特定关键字并显示与该关键字关联的值?
【发布时间】:2019-01-07 23:13:22
【问题描述】:

假设我获得了一些关键字,并且这些关键字在 PDF 文件中。有没有办法提取与关键字关联的值?

我尝试了以下-

我使用 pdfminer 读取 PDF 文件并将其转换为文本文件。在这一步之后,我能够提取表格数据(使用 tabula 包中的 area 参数),但是如何搜索与关键字关联的值?我这里有 2 个问题-

  1. 没有保留表格结构,并且表格中有意义的数据(在 PDF 中)没有以正确的方式显示在文本文件中。一些 SO 消息来源说不能保留 PDF 中的表结构。那么有没有办法能够以有意义的方式阅读故事内容?
  2. 由于问题 1,我无法提取与关键字关联的值。

一些 SO 答案建议使用 OCR,但是如何读取值? 一些人还建议使用机器学习/深度学习算法,该算法应该找出 PDF 中表格的位置并提取表格。但我的问题是,如何提取与关键字相关的值?

示例-假设我的 pdf 内容为-“你好,你好吗。我的身高是 6 英尺。你的身高是 5 英尺”。并假设关键字是“高度”。我应该能够提取数字“6 , 5”作为输出。这意味着,一个关键字可以在 PDF 中重复多次,并且必须提取与该关键字关联的所有值。

【问题讨论】:

  • 如果您要在表格中查找数据,那么您要做的第一步就是从 pdf 中提取表格。为此,请查看本教程stanford.edu/~mgorkove/cgi-bin/rpython_tutorials/…,它展示了如何从 .pdf 中的表中获取数据并将其写入 .csv 文件

标签: python ocr


【解决方案1】:

一旦您转换/OCRed PDF 并从中获取文本,那么您可能想要阅读文本中的每个句子(可能使用split("."))并使用“高度”浏览句子并搜索数字使用regex 如下所示。这只是基于问题中有限信息的一个相当简单的建议,您可能必须使用不同和/或多种此类模式才能获得满意的结果。

patt = r"\d+"
if "height" in sentence:
    print(re.findall(patt, m_s))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多