我用最清晰、最标准、面试能直接背、代码能直接用的方式,给你讲 LangChain 数据预处理的完整步骤,零基础也能秒懂。
一句话总结
LangChain 数据预处理 = 把杂乱文件 → 变成模型能检索、能理解的干净小文本片段
这是
RAG 项目第一步,也是最关键一步。
? LangChain 数据预处理 5 个标准步骤(必须背)
步骤 1:加载文档(Load)
把 PDF / Word / TXT / Excel 等文件读进程序。
- 作用:让代码拿到原始文本
- 工具:
PyPDFLoader、TextLoader、Docx2txtLoader
步骤 2:文档合并与清理(Clean)
去掉多余换行、空格、乱码、水印、无用符号。
步骤 3:文本切分(Split)【最核心】
把长文章切成小片段(Chunk)。
- 原因:大模型一次读不完长文本
- 工具:
RecursiveCharacterTextSplitter
- 参数:
chunk_size=500,chunk_overlap=100
步骤 4:元数据添加(Metadata)
给每个片段加上来源信息,比如:
- 文件名
- 页码
- 段落位置
- 作用:后续检索能告诉用户 “答案来自哪一页”
步骤 5:向量化准备(Ready for Embedding)
把切好的干净片段,交给嵌入模型转成向量。
? 用最通俗的比喻(一秒理解)
- 加载 = 把书翻开
- 清理 = 把错别字、乱码擦掉
- 切分 = 把书撕成小纸条
- 元数据 = 每张纸条写上 “来自第 3 页”
- 准备向量 = 把纸条交给电脑存档
? 每一步对应的 可运行代码(复制即用)
# ==========================
# LangChain 数据预处理 完整版
# ==========================
# 1. 加载文档
from langchain.document_loaders import PyPDFLoader
loader = PyPDFLoader("test.pdf")
docs = loader.load() # 步骤1完成
# 2. 清理文本(去掉换行、空格)
def clean_text(text):
text = text.replace("\n", " ")
text = text.strip()
return text
for doc in docs:
doc.page_content = clean_text(doc.page_content) # 步骤2完成
# 3. 文本切分(核心步骤)
from langchain.text_splitter import RecursiveCharacterTextSplitter
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=500, # 每段500字符
chunk_overlap=100 # 重叠100,保证语义连贯
)
splits = text_splitter.split_documents(docs) # 步骤3完成
# 4. 查看元数据(自动带文件名、页码,无需手动写)
# print(splits[0].metadata)
# 5. 预处理完成 → 可以进入向量库了
print("✅ 数据预处理全部完成!")
print(f"总片段数:{len(splits)}")
? 面试标准答案(背这段就能过)
LangChain 数据预处理分为 5 个步骤:
- 文档加载:读取 PDF、Word、TXT 等格式文件;
- 数据清洗:去除多余符号、乱码、空白行;
- 文本切分:使用递归字符切分工具将长文本分成固定长度的小片段;
- 元数据管理:记录片段来源、页码、文件信息;
- 向量化准备:将干净片段送入嵌入模型,完成预处理。
? 超级精简版(30 秒记住)
加载 → 清理 → 切分 → 加元数据 → 准备向量化
如果你愿意,我可以下一步教你:
预处理完 → 如何存入向量库 → 完成 RAG 检索问答
一步到位,让你彻底掌握 RAG 全流程!
声明:
1.本站主要是为了记录工作学习中遇到的问题,可能由于本人技术有限,内容难免有纰漏,一切内容仅供参考。
2.本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!
3.本站所有原创作品,包括文字、资料、图片、网页格式,转载时请标注作者与来源。
------------------------------------------------------------------------------------------------
出处:网际迅联
网址:https://www.wjxlkj.com
联系方式:
手机号码:13910758317
微信:13910758317
客服QQ:58053012
或下图二维码微信扫码或长按识别添加微信