RecursiveCharacterTextSplitter是 LangChain 框架中最常用的递归字符文本分割器,通过优先级分隔符列表实现智能文本分块,广泛应用于 RAG(检索增强生成)系统的文档处理环节。
参数
chunk_size :每个块的最大字符数,默认值500-1000,依据模型上下文窗口设定,中文建议 500-600,英文建议 800-1000。
chunk_overlap:相邻块重叠字符,默认chunk_size 的 10%-20%,防止语义断层,重叠太少导致断裂,太多增加存储成本。
separators:分隔符优先级列表,默认["\n\n", "\n", " ", ""],中文文档需加入"。"、"!"、"?"等标点。
length_function:长度计算函数,len(默认),可改为 tiktoken 等 token 计数函数,更贴近 LLM 实际输入。
# 初始化分割器
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=500, # 每块最大 500 字符
chunk_overlap=100, # 重叠 100 字符
separators=["\n\n", "\n", "。", " ", ""], # 中文分隔符优先级
length_function=len, # 使用字符数计算长度
is_separator_regex=False # 分隔符为普通字符串
)
# 分割文本
chunks = text_splitter.split_text(your_text)
# 或分割 Document 对象
split_docs = text_splitter.split_documents(docs)
引用自百度AI