【问题标题】:How to extract numbers from PDF?如何从PDF中提取数字?
【发布时间】:2017-05-10 09:52:36
【问题描述】:

我想从 PDF 文件中提取数字。我想创建一个直方图来描述获得大学批准的学生的分数;这些分数存储在 PDF 文件中。有哪些方法可以提取它们?

【问题讨论】:

    标签: python pdf extract python-3.4


    【解决方案1】:

    您首先需要一个 PDF 解析器,因为默认情况下 Python 无法读取它。此处发布的 SO 答案 Python module for converting PDF to text 建议使用 PDFMINER - http://www.unixuser.org/~euske/python/pdfminer/index.html

    但是,您没有提供任何数字表示方式的示例。您需要使用 regex/patterns 制作某种自定义行解析器来定义如何提取这些数字的规则。难点主要看PDF是否只包含原始的统计数据,如果不是,还需要注意不要全部取入,也就是那些实际上没有引用任何统计数据,只是一个句子的数字。

    你可以从这里https://docs.python.org/3/library/re.html了解更多关于python中的正则表达式

    如果您对正则表达式不熟悉,您可以在这里学习和试验它 http://regexr.com/.

    【讨论】:

    • 好的,谢谢。这些数字是浮点数,如 731.9、655.4、701.8 等。它们的范围从 600 到 900。关于它们真的还有什么需要注意的吗?我在我的问题中已经说过了,因为 pdf 中不仅有数据。
    • 您可以将 PDF 的内容粘贴到 regexr.com,然后从那里开始构建您的正则表达式,尝试使用它,例如将 [A-Z] 更改为 [600-900] 和走着瞧吧。匹配的模式将突出显示。这种模式不会完全符合您的要求,但您需要自己解决正确的模式。我只是为你指出正确的方向。最后,如果你得到了你想要提取的所有内容,你可以将表达式放入 python 中。然后就可以开始处理数据了。一开始制作正则表达式可能很困难,但不要放弃:)
    • 我使用了正则表达式,效果很好;幸运的是,我得到了我想要的数字,没有太多麻烦。然后我用输出创建了a histogram
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-09
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多