LlamaIndex 的 SentenceSplitter 句子分割器中文配置 作者:马育民 • 2026-05-21 22:30 • 阅读:10000 ``` from llama_index.core.node_parser import SentenceSplitter # 中文专属最优配置 node_parser = SentenceSplitter( # 中文字符长度,适配常规embedding上下文 chunk_size=512, # 重叠量,避免语义截断丢失信息 chunk_overlap=100, # 基础单词分隔符(通常用不到,但保留默认以防万一) separator=" ", # 优先按段落切分,保留大块语义 paragraph_separator="\n\n", # 将中文标点加入备用切分正则,精准断句 secondary_chunking_regex=r'[^,.;;。?!……,]+[,.;;。?!……,]?|[,.;;。?!……,]' ) ``` ### 参数解释 - chunk_size:中文建议 400-500,兼顾语义完整与向量精度 - chunk_overlap:60-80 区间最佳,跨块关联内容不割裂 - secondary_chunking_regex:正则表达式 - `[^,.;;。?!……,]+`:匹配一连串不是这些中英文标点的字符(也就是句子的正文内容)。 - `[,.;;。?!……,]?`:如果正文后面紧跟着一个这些标点,就把它也带上(零次或一次)。 - `|`:表示“或者”。 - `[,.;;。?!……,]`:兜底规则:单独匹配任意一个标点符号(防止连续标点被漏掉)。 ### 微调适配场景 - 公文 / 论文:chunk_size=500,overlap=80 - 小说 / 口语文本:chunk_size=400,overlap=60 - 短句问答类文档:chunk_size=300,overlap=50 原文出处:http://malaoshi.top/show_1GW3LzEEHD6T.html