处理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
拆好的基础上,按标题继续分组,组织得更清楚。