当前位置: 首页 > news >正文

处理pdf文件的常用库unstructured和PyPDF2

from unstructured.partition.pdf import partition_pdf
from unstructured.chunking.title import chunk_by_title
from PyPDF2 import PdfReader

第 1 行

from unstructured.partition.pdf import partition_pdf
  • 什么意思?
    unstructured.partition.pdf 这个模块里,把 partition_pdf 这个函数导入到你的代码里来。

  • 作用?
    partition_pdf 是一个函数,专门用来把 PDF 文件的内容切分成结构化的小块(比如标题、段落、表格、图片等),方便后续处理,比如提取文本、做问答、做搜索。

  • 简单举个例子:
    假设你有一份 PDF 文件,里面有标题、正文、表格,partition_pdf 能帮你自动识别出:“这是标题”“这是段落”“这是表格”,然后把每个部分整理成清晰的数据格式(比如一个个 Python 对象),而不是只给你一堆糊在一起的文字。

  • 再直白一点:
    以前你要自己用 pdfminer 慢慢扒内容、分段,超麻烦。现在 partition_pdf 一行搞定,帮你自动分好类、拆好块。


第 2 行

from unstructured.chunking.title import chunk_by_title
  • 什么意思?
    unstructured.chunking.title 这个模块里,导入 chunk_by_title 这个函数。

  • 作用?
    chunk_by_title 是用来按照标题来切分文本块的。
    简单说,它会把一整段长长的文本,根据标题来自动断开成一块块小文档

  • 简单举个例子:
    你有一份 PDF 文档,结构像这样:

    第一章 什么是人工智能
    (正文内容)
    第二章 深度学习简介
    (正文内容)
    第三章 未来展望
    (正文内容)
    

    —— chunk_by_title 会聪明地发现:“哎,这些第一章第二章是标题哦!”然后按照这些标题,把文档切成三块,每块对应一个小节,分别保存。

  • 再直白一点:
    有标题的地方就是新的开始,切开它!


第 3 行

from PyPDF2 import PdfReader
  • 什么意思?
    PyPDF2 这个库里,导入 PdfReader 类(注意:这里是,不是函数)。

  • 作用?
    PdfReader 主要用来打开 PDF 文件并读取里面的内容,比如读取每一页的文本、查看总页数、提取元数据(比如作者、标题)等等。

  • 简单举个例子:
    假设你有个 PDF 文件 example.pdf,你可以这样用:

    reader = PdfReader("example.pdf")
    page = reader.pages[0]     # 取第一页
    text = page.extract_text() # 把第一页的文字提取出来
    print(text)
    
  • 再直白一点:
    PdfReader 就像一个“PDF 文件的阅读器”,可以帮你一页一页打开,拿到里面的文字或者其它信息。


总结整体关系

  • partition_pdf:高级,自动把 PDF 内容拆成结构化块(标题、段落、表格、图片等)。
  • chunk_by_title:基于标题进一步细分文本块,适合做摘要、检索、问答。
  • PdfReader:底层读取 PDF 文件的内容,可以自己提取文字,但不会帮你分块或理解结构。

类比解释一下

  • PdfReader:像你自己拿着 PDF 翻页、抄笔记。
  • partition_pdf:像有个人自动帮你看 PDF,告诉你:这里是标题,这里是正文,这里是表格。
  • chunk_by_title:在 partition_pdf 拆好的基础上,按标题继续分组,组织得更清楚。

相关文章:

  • centos上安装python的3.13版本
  • SpringBoot、微服务与AI场景题深度解析
  • 【Unity】使用LitJson保存和读取数据的例子
  • 微信小程序封装选择年月日时分秒组件
  • 基于 STM32 的智慧图书馆智能控制系统设计与实现
  • 什么是缓存?在NGINX中如何配置缓存以提升性能?
  • LSTM预测模型
  • JavaScript性能优化实战:从基础到高级的全面指南
  • MySQL 8.4.4 安全升级指南:从漏洞修复到版本升级全流程解析
  • AWS SQS 队列策略配置指南:常见错误与解决方案
  • Spring计时器StopWatch 统计各个方法执行时间和占比
  • 大前端开发——前端知识渐变分层讲解 利用金字塔原理简化前端知识体系
  • 测试基础笔记第十六天
  • JAVA---集合ArrayList
  • 虹科新品 | 汽车通信新突破!PCAN-XL首发上线!
  • go编解码json和http请求
  • 时序数据库 TDengine × Perspective:你需要的可视化“加速器”
  • 仿腾讯会议——注册登录UI
  • 数据库系统概论|第三章:关系数据库标准语言SQL—课程笔记7
  • Android Framework常见问题
  • 华夏幸福:去年营业收入237.65亿元,同比减亏12亿元
  • 外交部亚洲司司长刘劲松向菲方严肃交涉
  • 铁路五一假期运输今日启动,预计发送旅客1.44亿人次
  • 王毅会见俄罗斯外长拉夫罗夫
  • 自称“最美”通缉犯出狱当主播?央广网:三观怎能跟着“五官”跑
  • “冲刺万亿城市”首季表现如何?温州领跑,大连GDP超徐州