RAG知识库SentenceSplitter分段问题分析与优化方案
当前问题
项目在使用 SentenceSplitter 进行文档分段时遇到了语义被拆分的问题。SentenceSplitter 主要基于句子边界进行分割,这可能导致以下问题:
- 相关的句子被分到不同的块中
 - 上下文信息丢失
 - 语义连贯性被破坏
 
更好的分段方案
以下是几种可以考虑的替代分段方式:
1. 使用 TextSplitter 并基于段落分割
from llama_index.core.node_parser 
import TokenTextSplitter# 使用基于段落的分割器
self.node_parser = TokenTextSplitter(chunk_size=512,  # 令牌数量chunk_overlap=50,  # 重叠令牌数separator="\n\n"  # 使用双换行符作为段落分隔符
)
 
2. 使用 HierarchicalNodeParser 进行层次化分割
from llama_index.core.node_parser 
import HierarchicalNodeParser# 层次化分割,先按段落,再按句子
s