Skip to content

文本切分确实是整个流程里最基础也最关键的环节,尤其当面对PDF、技术文档、多模态资料这些结构复杂的材料时,切分效果直接影响后续的向量表达和检索质量。

首先:我们结合场景来看,你可以先看看下面的场景中,是否存在你正在面对的。

  1. 中文/技术文档:技术手册、法律合同等强逻辑文档。
  2. 高逻辑连贯性要求:学术论文、产品说明书等结构化内容。
  3. 多模态/扫描文档:医疗报告、技术白皮书、扫描版图文文档。

一、语义切分:以逻辑单元为最小单位,确保信息完整

这是处理复杂文档最根本的原则,核心是避免在句子或段落中间生硬切断语义:

  1. 递归分割法:按层级切分(段落→句子→单词),配合重叠机制(20%-30%重叠)保留上下文。例如,用 RecursiveCharacterTextSplitter 工具,设置 chunk_size=512、chunk_overlap=150,兼顾效率与语义连续。
  2. 语义边界检测:用NLP工具识别逻辑转折点:
    • BERT-NSP模型:判断相邻段落是否语义衔接,低于阈值则切分;
    • OpenNLP句子解析:适合英文文档,避免因缩写/小数点误切;
    • 中文专用工具(如HanLP/jieba):解决中文无空格分词问题。

二、动态分块技术:根据内容结构自适应调整粒度

固定分块在面对标题层级复杂或图文混排文档时容易失效:

  1. 标题引导分块:识别PDF中的多级标题,将同一子标题下的段落合并为一个语义块;
  2. 相似性聚类分块:计算句子间余弦相似度,低于阈值时断开(如 SemanticSplitterNodeParser 工具);
  3. 混合分块策略:
    • 正文按语义段切分;
    • 表格/代码块整块保留,避免碎片化。

三、专业文档处理:针对领域特性设计切分规则

领域术语、特殊符号容易导致误分割:

  • 医疗/法律文档:建立领域缩略词库(如 “q.d.” 不视为句尾),保护条款编号完整性;
  • 含代码/公式的文档:用正则隔离非自然语言片段,独立嵌入;
  • 多模态文档(VisRAG方案):
    • 文本与图像协同切分:将关联的图文段落绑定为同一块;
    • 三种召回策略:页面拼接、加权选择、多图像VLM,保留视觉信息。

四、智能切分方法:基于大模型的新兴方案(适合高阶优化)

适合对效果有极致要求的场景,依赖LLM推理能力:

  1. Meta-Chunking(论文《Meta-Chunking: Learning Efficient Text Segmentation via Logical Perception》)
    通过两种策略识别深层逻辑关系:
    • Margin Sampling Chunking:LLM判断连续句子是否应分割,按概率差动态阈值切分;
    • Perplexity Chunking:低困惑度句子视为分块边界(因模型更“确定”此处语义完整)。
  2. LumberChunker:迭代调用LLM定位语义转折点,资源消耗较大但更精准。

五、向量检索协同优化:从分块到检索的端到端设计

切分最终服务于检索,需全局优化:

  1. 关键信息索引:构建二级索引,仅对摘要性“关键信息”做向量化(如标题/实体词),原始文本作为附加内容,减少噪声;
  2. 多粒度向量存储:同步存储句子级、段落级向量,应对粗细粒度查询需求;
  3. 检索后重排序:先召回Top-K块,再用Cross-Encoder重排,提升精度。

效果:在ChatPDF类应用中广泛验证,回答准确率提升30%+。

若希望深入前沿方法,可重点阅读:

  1. 《Meta-Chunking: Learning Efficient Text Segmentation via Logical Perception》(2024)
  2. 《VisRAG: Vision-based Retrieval-augmented Generation》(多模态文档处理)

如果你觉得论文看起来太枯燥,可以看看:Meta-Chunking:一种新的文本切分策略

基于 MIT 许可发布