RecursiveCharacterTextSplitter

0 阅读1分钟

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