便携式文档格式 (PDF) 文件通常用于以电子方式共享文档。 个人和企业使用 PDF 文件来共享信息。 通常我们需要从 PDF 文件中提取一些信息以进行进一步处理。 但是,从 PDF 文件中提取文本可能具有挑战性,尤其是当文档包含复杂的格式和布局时。 幸运的是,有几种方法可以做到这一点。
在这里,我们将提供使用 Python 从 PDF 中提取文本的最常用方法。 Python 包含几个支持高效 PDF 文本提取的库。
本文探讨了一些用于从 PDF 文件中提取文本的流行 Python 库,以及从 PDF 中分步提取文本的过程。
用于 PDF 处理的 Python 库
Python 有几个集成良好的库,可以有效地处理非结构化数据源,例如 PDF 文件。 以下是一些用于 PDF 处理的 Python 库的列表。
- PyPDF2: 它是一个用于 PDF 的 Python 库,可以帮助拆分、合并、裁剪和转换 PDF 文件的页面。 pyPDF2 还允许您从 PDF 文件中提取文本。
- PyMuPDF: PyMuPDF 是 MuPDF C 库的 Python 包装器。 它允许您在 Python 中读取、写入和操作 PDF 文件。 此外,您还可以使用 PyMuPDF 访问 PDF 文档元数据、提取文本和图像以及解密 PDF 文档。
- 报告实验室: 它是一个开源 Python 库,可用于创建和操作 PDF 文件。 它提供了用于从头开始创建 PDF 文档的高级 API,并支持嵌入图像和字体。
- PDF2dox: 它是一个使用 PyMuPDF 库从 PDF 文件中提取数据的 Python 库。
使用 PDF 到文本转换器立即将复杂的 PDF 转换为文本格式。 免费试用。
搭建开发环境
在我们讨论从 PDF 中提取文本的步骤之前,必须设置开发环境并安装所需的 Python 库以提取文本。
- 安装Python: 如果还没有,则需要在系统上安装 Python。 您可以从以下位置下载最新版本的 Python 相关信息.
- 安装点: 要检查您是否在 Python 中安装了 pip,请运行
py -m ensurepip --default-pip
如果 pip 没有自动运行,请下载它 相关信息 并运行以下代码进行安装或升级
pip.python get-pip.py
- 安装所需的库: 安装任何 Python 库以处理 PDF 文件。 在这里,我们将安装常用的库 PyPDF2。 要安装它,请运行以下命令。
pip install PyPDF2
安装 Python 和所需的库后,您的开发环境就设置好了。 您可以使用任何文本编辑器或 IDE 编写 Python 代码,例如 Visual Studio Code、PyCharm 或 Sublime Text。
我们将使用 PyPDF2 Python 库来提取文件。
输入PDF:
# 导入需要的模块 |
输出:
现在,让我们分别理解每个代码。
- reader = PdfReader('nanonets.pdf')
从 PyPDF2 模块,我们创建了 PDFReader 类的对象。 它将采用 pdf 文件路径所需的位置参数。
- 打印(len(reader.pages))
pages 属性提供了一个 PageObjects 列表。 在这里,我们可以使用内置的 len() Python 函数来获取 pdf 文件中的页数。
- 页面 = reader.pages[0]
我们还可以通过点击页面索引来获取特定的 pdf 文件页面。 列表索引在 Python 中从 0 开始,因此此命令将为我们提供文件的第一页。
- 文本 = page.extract_text()
打印(文字)
我们将使用此命令从 pdf 页面中提取文本。
预处理提取的文本以对其进行清理和规范化
不同的预处理技术,例如删除停用词、小写、删除标点符号、词干提取或词形还原,用于在 Python 中清理和规范化提取的文本。
输入: Python 是一种流行的编程语言,用于数据分析和机器学习。 它易于学习,并具有适用于各种应用程序的范围广泛的库。
代码:
文字 = “Python 是一种流行的编程语言,用于数据分析和机器学习。 它易于学习,并且拥有适用于各种应用程序的范围广泛的库。” |
输出: ['python''流行''编程''语言''使用''数据''分析''机器'''学习''简单''学习''广泛''范围,''图书馆','各种','应用程序']
这一步删除了停用词,如“is”、“a”、“for”、“and”、“it”和“has”,并将文本中的所有单词小写。
将提取的文本保存到文件或数据库
运行以下代码:
打开('extracted_text.txt', 'w') as f: |
此代码将打开一个名为 提取的文本.txt 在写模式。 这 f.write() 方法将预处理后的文本写入文件。 它将单词列表转换为 干净的文本 通过将单词与空格字符 (' ') 连接到一个字符串,然后将生成的字符串写入文件。
所以,结果是预处理后的文本被保存到一个名为 提取的文本.txt 在当前工作目录中。
使用 PDF 到文本转换器立即将复杂的 PDF 转换为文本格式。 免费试用。
可以使用多种高级技术来提高文本提取的准确性。 以下是一些技巧:
- 光学字符识别 (OCR): OCR 是将扫描图像转换为机器编码文本的过程。 OCR 可用于从包含图像或扫描页面的 PDF 文件中提取文本。 有多种 OCR 引擎可用,包括 Tesseract、Google Cloud Vision 和 Amazon Textract。
- 预处理技术: 预处理技术涉及在实际提取过程之前处理 PDF 文件。 这包括去偏斜、去噪和阈值化等技术,以消除可能影响提取过程准确性的噪声、偏斜和其他失真。
- 布局分析: 它涉及识别和分类 PDF 文件的不同元素,例如文本块、表格和图像。 此信息可以通过识别文档的结构来提高文本提取的准确性。
- 机器学习工具: 几种文本提取工具,例如 纳米网,使用机器学习技术准确地从 PDF 文件中提取文本。
在 Python 中优化性能和减少内存使用的技巧
在 Python 中有效地管理内存可能很复杂,需要了解 Python 的数据结构和对象。 以下是在 Python 中运行代码时优化性能和减少内存使用的一些技巧。
1. 使用内置的 Python 函数和库
使用内置的 Python 函数是加速代码的有效方法。 建议在适当的时候将这些函数合并到您的代码中,因为它们针对性能进行了优化和测试。
这些函数速度很快,因为它们是用高性能语言 C 执行的。 这些函数的示例包括 max、min、all、map 和许多其他函数。
2. 利用 Pytorch 数据加载器
训练大型数据集可能会占用大量内存。 使用 PyTorch 的 DataLoader 可以从整个数据集中创建多个小批量数据,从而解决了这个问题。 每个 mini-batch 可以包含多个由可用内存决定的样本,它们被无缝加载到模型中,从而可以对大型数据集进行高效训练。
3. 在循环中使用列表理解
在 Python 中,循环很常见,但列表推导式提供了一种更简洁、更快速的创建新列表的方法。 它比将元素添加到 Python 列表的 append 方法更好。
4.导入语句开销
在 Python 中,import 语句的放置会影响代码的性能和内存使用。 在函数外部导入包可以加快代码执行速度,但也可能比在函数内部导入包需要更多内存。 在决定在 Python 中放置导入语句的位置时,考虑性能和内存使用之间的权衡很重要。
5.数据块
在 Python 中处理大型数据集时,以小批量分块或加载数据是防止内存错误的有用技术。 在许多情况下,并非一次需要所有数据,尝试一次加载所有数据可能会导致程序因内存限制而崩溃。 通过以更小的块处理数据,可以避免这些内存错误并根据需要保存结果。 因此,分块数据在数据处理和分析中很常见,以防止与内存相关的问题。
6. 字符串连接
在 Python 中连接字符串的两种常见方法是使用“+”运算符或 join() 方法。 虽然 '+' 运算符被广泛使用,但 join() 方法在连接字符串时更有效、更快速。 主要原因是在每个步骤中,“+”运算符都会创建一个新字符串并复制旧字符串,而 join() 方法的工作方式不同,从而导致更快的连接。
使用 PDF 到文本转换器立即将复杂的 PDF 转换为文本格式。 免费试用。
总结
在 Python 中处理内存错误可能具有挑战性,但是有多种方法可以优化内存使用并防止内存溢出。 第一步是确定问题的核心原因并应用适用的内存优化方法。 如果问题仍然存在,可以优化相关流程,或者可以使用外部数据库服务将操作分解为更小的块。
使用这些提示和技术,可以优化内存使用并避免在 Python 中处理大型数据集时出现与内存相关的问题。 虽然 Python 库提供了一种从 PDF 文件中提取文本的便捷方法,但值得考虑其他用于文本提取的自动化工具,例如 纳米网。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图区块链。 Web3 元宇宙智能。 知识放大。 访问这里。
- Sumber: https://nanonets.com/blog/extract-text-from-pdf-file-using-python/
- :是
- $UP
- 1
- 7
- 8
- a
- 加快
- ACCESS
- 准确
- 高级
- 影响
- 所有类型
- 允许
- 允许
- 已经
- Amazon
- 亚马逊Textract
- 分析
- 和
- API
- 相应
- 应用领域
- 应用
- 适当
- 保健
- 论点
- 刊文
- AS
- At
- 尝试
- 自动化
- 自动
- 可使用
- BE
- 因为
- before
- 更好
- 之间
- 吹氣梢
- 破
- 内建的
- 企业
- by
- CAN
- 例
- 原因
- 挑战
- 字符
- 字符识别
- 查
- 程
- 云端技术
- 码
- 相当常见
- 常用
- 复杂
- 考虑
- 包含
- 包含
- 便捷
- 核心
- 崩溃
- 创建信息图
- 创建
- 创造
- 创建
- 作物
- 电流
- data
- 数据分析
- 数据处理
- 数据库
- 数据集
- 决定
- 解码
- 决心
- 研发支持
- 不同
- 讨论
- 文件
- 文件
- 向下
- 下载
- 每
- 编辑
- 有效
- 只
- 高效
- 电子
- 分子
- enable
- 使
- 引擎
- 英语
- 整个
- 环境
- 故障
- 特别
- 必要
- 一切
- 例子
- 执行
- 提取
- 高效率
- 快
- 少数
- 文件
- 档
- (名字)
- 以下
- 字体
- 针对
- 格式
- 幸好
- 自由的
- 止
- 功能
- 功能
- 进一步
- 得到
- 越来越
- GIF
- 给
- 谷歌
- 谷歌云
- 处理
- 有
- 帮助
- 相关信息
- 高水平
- 高性能
- 创新中心
- How To
- 但是
- HTTPS
- 确定
- 图片
- 影响力故事
- 进口
- 重要
- 输入
- 改善
- in
- 包括
- 包括
- 包含
- 结合
- 指数
- 个人
- 信息
- 安装
- 安装
- 涉及
- 问题
- 问题
- IT
- 加盟
- 语言
- 大
- 最新
- 布局
- 学习用品
- 学习
- 库
- 自学资料库
- 喜欢
- 限制
- 清单
- 书单
- 加载
- 装载
- 机
- 机器学习
- 主要
- 使
- 制作
- 管理的
- 操纵
- 许多
- 地图
- 最大
- 内存
- 合并
- 元数据
- 方法
- 方法
- 时尚
- 模型
- 模块
- 更多
- 最先进的
- 多
- 命名
- 需求
- 全新
- 噪声
- 数
- 对象
- 对象
- OCR
- of
- 提供
- 老
- on
- 打开
- 开放源码
- 操作
- 操作者
- 优化
- 优化
- 优化
- 追求项目的积极优化
- 其他名称
- 其它
- 学校以外
- 包
- 页
- 径
- 性能
- 仍然存在
- 地方
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 热门
- 可能
- 防止
- 过程
- 过程
- 处理
- 曲目
- 代码编程
- 财产
- 提供
- 提供
- 蟒蛇
- pytorch
- 范围
- 阅读
- 读者
- 原因
- 承认
- 建议
- 减少
- 有关
- 去掉
- 去除
- 删除
- 要求
- 必须
- 导致
- 导致
- 成果
- 运行
- 运行
- s
- 保存
- 无缝
- 服务
- 集
- 几个
- Share
- 共享
- 单
- 歪斜
- 小
- 小
- So
- 方案,
- 一些
- 来源
- 太空
- 具体的
- 分裂
- 启动
- 个人陈述
- 声明
- 步
- 步骤
- Stop 停止
- 结构体
- 工作室
- 这样
- 支持
- 系统
- 采取
- 技术
- 正方体
- 这
- 因此
- 博曼
- 秘诀
- 至
- 令牌
- 工具
- 产品培训
- 改造
- 理解
- 理解
- 升级
- us
- 用法
- 使用
- 利用
- 各个
- Ve
- 版本
- 愿景
- W
- 方法..
- 方法
- 是否
- 这
- 而
- 宽
- 大范围
- 广泛
- 将
- Word
- 话
- 工作
- 加工
- 合作
- 价值
- 写
- 完全
- 您一站式解决方案
- 和风网