文档分块
准备工作:从 PDF 到可用文本
Chunking分块目标:做一个能回答Java编程规范问题的智能助手
用户问: "变量命名有什么规范?"
系统检索规范手册,给出准确答案:”代码中的命名均不能以下划线或美元符号开始...“数据源:阿里巴巴 Java 开发手册
挑战:
- PDF 格式,不是纯文本
- 有页眉页脚、页码等干扰信息
- 有的还是纯图片的 PDF 的内容
- 如何切分才能保证检索准确?
提取 PDF 文本
安装工具
bash
pip install pdfplumberpython
with pdfplumber.open(pdf_path) as pdf:
for page in pdf.pages:
all_text += page.extract_text()
print(f"提取完成,共{len(all_text)}字符")清洗文本
直接提取的文本包含很多干扰信息、有的时候 PDF 不是正版书籍的时候,还会出现一些广告内容以及和书本身内容无关的干扰信息。
摘要
这些都应该去掉
