W
AI-Wiki
CONCEPT

语义分块

定义

语义分块 是一种面向 RAG 文档摄取的切分方法:它不是按固定词元数、固定字符数或固定长度对文档“一刀切”,而是根据文本之间的语义连续性、主题是否真实变化来决定 chunk 边界。

在本文语境里,它要解决的不是泛泛的“切得更智能”,而是非常具体的老问题:固定长度分块常把一句话切成两段、把同一主题拆散、把跨页内容和文档结构打碎,最终让检索阶段拿不到完整上下文。

在本文档中的语境

LongParser v0.1.5 的升级说明中,语义分块 被列为核心能力之一,定位是修复传统分块导致的上下文割裂问题。文章明确指出,很多 RAG 项目检索效果差,并不一定先出在向量库或模型参数上,而是出在文档解析阶段:

  • 固定词元限制容易把一整句切断。
  • 一个本应作为同一知识单元的主题会被拆到不同 chunk。
  • 多栏论文、跨页表格、嵌套标题等复杂结构,若按长度硬切,信息顺序和归属会错乱。

因此,语义分块 在这里的直接目标,是让进入知识库的 chunk 更接近“完整可检索的上下文单元”,从而减少检索失败,而不是单纯追求块更大或更小。

关键机制

文章给出的实现信号比较明确:LongParser v0.1.5 使用 all-MiniLM-L6-v2 模型,对相邻文本块之间的余弦相似度进行跟踪,并且只在主题发生真实变化时创建边界。

这意味着它的判断逻辑不是“到多少 token 就切”,而是更关注以下问题:

  • 当前文本与前后文本在语义上是否仍连续;
  • 相似度变化是否足以说明主题已经切换;
  • 是否应该把相邻段落保留在同一个 chunk 中,以维护完整语义。

从效果上看,这种做法的核心价值是:当内容仍围绕同一主题展开时,即使形式上已经换段、换页,系统也倾向于保持连续;只有当主题真的发生切换时,才建立新的分块边界。

混合分块模式

本文同时强调,语义分块 并不是完全脱离长度约束的纯语义策略。LongParser v0.1.5 支持混合分块模式,会把语义判断与其他边界条件一起使用。

文章点明了三类共同参与切分的因素:

  • 词元限制;
  • 标题层级;
  • 表格结构。

这说明它并非简单否定固定长度控制,而是把长度约束降级为一种边界条件:

  • 当语义上应当连在一起时,尽量避免过早切断;
  • 当 chunk 已逼近或超过可接受的词元上限时,仍需要结合长度限制进行控制;
  • 当标题或表格结构明确提示内容边界时,也会参与切分判断。

因此,语义分块 在本文中更准确的理解应是“语义优先、结构辅助、长度兜底”的混合切分方式,而不是与长度限制完全对立。

与文档结构的结合

文章特别提到,LongParser 的分块并不只看纯文本语义,还会结合文档结构信息做判断,这一点对复杂文档尤其重要。

它适配的结构场景至少包括:

  • 多栏论文;
  • 跨页表格;
  • 嵌套标题。

这里的含义是:

  • 对多栏论文,不能只按页面线性文本流粗暴切分,否则不同栏内容可能互相串扰;
  • 对跨页表格,不能在页尾和页首之间直接断开,否则同一张表会被拆碎;
  • 对嵌套标题,父子层级本身就是主题边界和上下文归属的重要信号。

因此,语义分块 在本文里不是单一的 embedding 相似度算法,而是与 文档边界标记、标题层级、表格连续性等结构线索共同工作。它更像一种“语义+结构”的联合切分策略。

在 RAG 中的直接效果

从文章表述看,语义分块 的价值不是抽象的“效果更好”,而是直接作用于 RAG文档摄取 和后续召回质量:

  • 保留更完整的上下文;
  • 减少因句子被切断造成的语义残缺;
  • 减少同一主题被拆散后检索只召回半块内容的问题;
  • 降低复杂排版文档进入向量库后发生信息错乱的概率;
  • 提高检索命中的可用性,而不只是提高命中次数。

文章甚至把它描述为解决“上下文割裂核心问题”的能力。也就是说,在该文语境里,语义分块 的评价标准首先是“是否更容易检索到完整答案所需片段”,而不是 chunk 数量是否减少,或单块是否更大。

细节与边界

尽管文章对这项能力评价较高,但并没有把它描述成没有代价的万能方案,反而明确给出了边界。

1. 依赖特定模型实现

文中明确提到该能力依赖 all-MiniLM-L6-v2。这意味着分块质量会受 embedding 模型表达能力影响,不是一个与模型无关的抽象过程。

2. 超长文档可能出现性能与准确性问题

文章明确提出:对于超长篇文档,例如上千页的论文或合同,虽然 all-MiniLM-L6-v2 属于轻量模型,但仍可能出现两类问题:

  • 性能下降;
  • 分块不准。

也就是说,语义分块 在长文档场景下并不天然稳定,尤其当文档很长、结构很复杂、主题变化细密时,实际效果仍需测试验证。

3. 复杂文档场景仍需实测

文章进一步提出值得继续观察的场景,包括:

  • 多语言混合文档解析;
  • 模糊扫描件 OCR 后文本的切分;
  • 跨页复杂表格解析。

这些内容虽然不全是语义分块单独造成的问题,但都会影响语义边界判断的稳定性。换言之,语义分块 的表现不仅取决于算法本身,也取决于前置解析质量和文档结构恢复质量。

与其他分块思路的关系

语义分块 与固定长度分块并不是简单替代关系。结合本文可作如下区分:

  • 固定长度分块的优点是简单、稳定、易控制上下文窗口;
  • 其主要缺点是容易制造语义断裂;
  • 语义分块的优点是更强调知识单元完整性;
  • 其代价是需要额外语义计算,并在超长文档中可能出现性能或准确性挑战;
  • 最终工程上更可行的方案,是把语义判断与词元上限、标题层级、表格边界结合起来。

这也使它与 数据库文档分块结构化文档标注 形成互补:前者强调围绕完整知识单元组织 chunk,后者强调通过显式结构帮助系统识别边界,而 语义分块 则提供了在自然文本连续性层面识别边界的能力。

适用场景

依据本文,语义分块 特别适合以下 RAG 文档场景:

  • 段落之间主题连续但长度不均匀的说明文档;
  • 同一知识点跨多段展开、不能被中间切断的文档;
  • 有明显标题层级、嵌套章节的技术材料;
  • 包含跨页表格、多栏排版等复杂结构的文档;
  • 对召回完整性要求高、不能只拿到半段信息的企业知识库。

对于这类场景,是否采用 语义分块,会直接影响知识入库后 chunk 的可检索性和答案拼接质量。

相关条目