RAG的5种切分策略
├── 固定大小切分
│   ├── 根据字符数、单词数或Token数量均匀切分
│   │   ├── Token切分
│   │   │   ├── 基于自然语言处理中的Token标准
│   │   │   ├── 常见方法:字节对编码(BPE)、WordPiece等
│   │   │   └── 案例:GPT模型中的BPE策略
│   │   ├── 单词切分
│   │   │   ├── 适用于语法相对固定的语言
│   │   │   ├── 优点:计算简单,节省资源
│   │   │   └── 缺点:可能丢失语义连接
│   │   └── 字符切分
│   │       ├── 适用于字符为主的语言如中文
│   │       ├── 保证基础语义完整性
│   │       └── 案例:汉字处理中的字符粒度切分
│   ├── 保留部分重叠(如段落交接)
│   │   ├── 提升语义流畅性
│   │   ├── 避免关键信息丢失
│   │   └── 调整重叠比例以适应不同任务
│   ├── 优点:实现简单,段落大小统一,便于批处理
│   └── 缺点:可能破坏语义流畅性,重要信息可能分散
├── 语义切分
│   ├── 按句子、段落或主题进行切分
│   │   ├── 句子级切分
│   │   │   ├── 使用标点符号作为边界
│   │   │   ├── 保持句子逻辑完整
│   │   │   └── 适用于总结性任务
│   │   ├── 段落级切分
│   │   │   ├── 结合段落主旨
│   │   │   ├── 避免主旨混乱
│   │   │   └── 示例:大规模文档中的自然段处理
│   │   └── 主题级切分
│   │       ├── 使用主题建模(如LDA)划分内容
│   │       ├── 提升相似主题语义流畅性
│   │       └── 案例:基于知识图谱的主题提取
│   ├── 基于嵌入余弦相似度判定切片
│   │   ├── 嵌入向量生成
│   │   │   ├── 使用预训练模型生成向量
│   │   │   ├── 例如:Transformer模型
│   │   │   └── 案例:BERT嵌入应用
│   │   ├── 判定相似度阈值
│   │   │   ├── 高相似度段落组成切片
│   │   │   ├── 动态调整阈值以适应不同文档
│   │   │   └── 案例:基于余弦相似度动态切片
│   │   └── 相似度显著下降后重新开始
│   ├── 优点:语言流畅性高,完整思想保留
│   └── 缺点:阈值选择因文档而异
├── 递归切分
│   ├── 首次按内在分隔符切分(如段落、章节)
│   │   ├── 内在分隔符类型
│   │   │   ├── 标题
│   │   │   │   ├── 一级标题
│   │   │   │   └── 二级标题
│   │   │   ├── 段落
│   │   │   └── 章节
│   │   ├── 切分规则定义
│   │   │   ├── 保持章节内逻辑完整
│   │   │   └── 灵活设置分隔符优先级
│   │   └── 案例:书籍章节的递归处理
│   ├── 对超出大小限制的切片再次切分
│   │   ├── 二次切分策略
│   │   │   ├── 结合内容权重评估
│   │   │   ├── 优先处理超长段落
│   │   │   └── 案例:超限段落的逐步切分
│   │   └── 动态调整规则适应特定文档
│   ├── 优点:语言流畅性高,思想完整
│   └── 缺点:实现复杂,计算开销较高
├── 基于文档结构的切分
│   ├── 依照文档标题、章节或段落自然分隔
│   │   ├── 标题识别
│   │   │   ├── 文档级标题提取
│   │   │   ├── 子标题与主标题关系明确
│   │   │   └── 案例:论文结构化切分
│   │   ├── 章节分隔
│   │   │   ├── 适用于内容层级明确的文档
│   │   │   ├── 避免混乱交叉
│   │   │   └── 案例:教材章节提取
│   │   └── 段落分隔
│   │       ├── 使用换行符作为标记
│   │       ├── 简化处理逻辑
│   │       └── 案例:新闻段落分隔
│   ├── 优点:逻辑结构完整,清晰对齐文档部分
│   └── 缺点:文档结构不清晰时效果受限
└── 基于LLM的切分
    ├── 利用LLM的语义理解生成切片
    │   ├── 基于上下文窗口的切分
    │   │   ├── 结合上下文窗口大小
    │   │   ├── 避免超出LLM处理范围
    │   │   └── 案例:ChatGPT生成内容切分
    │   ├── 利用提示词辅助切分
    │   │   ├── 编写任务导向提示词
    │   │   ├── 提高切分与任务目标的相关性
    │   │   └── 案例:问答任务的提示词优化
    │   └── 自适应语义切分
    │       ├── 根据内容复杂度动态调整
    │       ├── 提升切片与上下文一致性
    │       └── 案例:动态生成对话历史
    ├── 优点:语义准确性高,上下文理解强
    └── 缺点:计算成本最高,上下文窗口限制明显