YYC's Graduation Thesis · 2026

Semantic-Aware
Chunking Strategy

面向 RAG 知识库问答系统的语义感知分块策略研究
通过优化文档分块方式,提升检索相关性与回答质量

0
评估维度
0
分块策略
0
评估指标
Research Background

研究背景与问题提出

LLM 的局限性
大型语言模型能力强大,但在领域知识方面存在"幻觉"问题,即生成看似合理但事实错误的信息。
私有知识的挑战
企业知识和私有文档无法直接嵌入到模型参数中,限制了其在特定领域的应用。
RAG 的解决方案
检索增强生成(RAG)技术通过引入外部知识库进行"接地",有效缓解了 LLM 的幻觉问题。
分块的关键作用
文档分块的方式极大地影响了检索的质量,进而影响整个 RAG 系统的性能。优化分块策略能显著提升系统表现。
Research Objective

研究目标与核心思路

构建一个实验性的 RAG 知识库系统,并分析不同分块策略对以下三个关键维度的影响,以揭示分块策略如何影响 RAG 系统的性能表现。

核心思路:提出基于语义边界检测(Semantic Boundary Detection)的分块方法,利用句子间的语义相似度变化来识别主题边界,实现自然语义切分。将该方法与两种传统基线进行受控对比实验。

1
检索相关性
Retrieval Relevance
2
回答质量
Answer Quality
3
系统效率
System Efficiency
System Architecture

系统架构

Documents
文档输入
Chunking
分块策略
Embedding
向量化
Vector DB
FAISS
Retriever
语义检索
LLM
大语言模型
Answer
生成回答
Technology Stack

技术

Frontend
Chainlit UI
用户交互界面
Backend
Python / RAG Pipeline
核心业务逻辑
Core
Embedding Model
Retriever · LLM
Data
FAISS 向量数据库
SQLite 持久化
Chunking Strategies

分块策略概览

语义信息丢失
由于拆分相关内容,导致意义的丢失
上下文碎片化
逻辑流和连贯性被破坏
检索匹配失败
查询无法找到相关的拆分块
Baseline 1
Fixed-size Chunking
将文本拆分为预定长度的块(例如 512 个 token),方法简单高效。
  • 计算效率高,易于并行处理
  • 实现简单,内存可控
  • 可能切断语义单元
  • 破坏上下文连贯性
Baseline 2
Recursive Splitter
使用 LangChain 递归字符分割器,按层级分隔符(段落→换行→句子)递归拆分文本。
  • 尊重自然分隔符层级
  • LangChain 原生支持
  • 仍以固定长度为硬约束
  • 无法感知跨句子的主题转移
Implementation

语义边界检测算法

输入文档
Raw Document
句子分割
Segmentation
句子嵌入
Embedding
相似度计算
Cosine Sim
边界检测 (θ)
Threshold
自适应合并
Adaptive Merge
Step 1 — 余弦相似度 sim(si, si+1) = ei · ei+1||ei|| × ||ei+1||    where ei = Embed(si)
Step 2 — 边界检测 B = { i  |  sim(si, si+1) < θ }        θ = μα · σ    (μ = mean, σ = std of all sim values)
Step 3 — 自适应合并约束 Ck = { sbk, …, sbk+1−1 }    s.t.   Lmin ≤ |Ck| ≤ Lmax    (merge small chunks, split oversized ones)
Fig.1  句子间相似度分布与边界检测
1.0 0.8 0.6 0.4 0.2 0.0 s₁-s₂ s₂-s₃ s₃-s₄ s₄-s₅ s₅-s₆ s₆-s₇ s₇-s₈ s₈-s₉ s₉-s₁₀ s₁₀-s₁₁ s₁₁-s₁₂ θ Boundary ↓ Boundary ↓ Chunk 1 Chunk 2 Chunk 3
Baseline: Recursive Splitter
Chunk A
Chunk B
Chunk C
Chunk D
固定长度硬切分,可能在句子或逻辑单元中间截断
Ours: Semantic Boundary Detection
Logical Unit 1
Logical Unit 2
Unit 3
在语义跃变点自然切分,块大小自适应内容
# ═══ 语义边界检测分块器 — 核心创新 ═══
import numpy as np
from sentence_transformers import SentenceTransformer

class SemanticBoundaryChunker:
    """
    基于句子嵌入余弦相似度的语义边界检测分块器。
    通过识别相邻句子间的语义跃变点实现自然切分。
    """

    def __init__(self, model_name="paraphrase-multilingual-MiniLM-L12-v2",
                 percentile=25, min_chunk=100, max_chunk=800):
        self.encoder = SentenceTransformer(model_name)
        self.percentile = percentile
        self.min_chunk = min_chunk
        self.max_chunk = max_chunk

    def split(self, text: str) -> list[str]:
        # Step 1: 句子分割
        sentences = self._split_sentences(text)

        # Step 2: 计算句子嵌入
        embeddings = self.encoder.encode(sentences, normalize_embeddings=True)

        # Step 3: 计算相邻句子余弦相似度
        similarities = np.dot(embeddings[:-1], embeddings[1:].T).diagonal()

        # Step 4: 动态阈值: θ = percentile(sim)
        threshold = np.percentile(similarities, self.percentile)
        boundaries = np.where(similarities < threshold)[0] + 1

        # Step 5: 按边界切分 + 自适应合并
        chunks = self._merge_chunks(sentences, boundaries)
        return chunks
Experimental Results

实验结果

数据集
chineseQA 领域问答数据集,涵盖 1,200+ 文档段落,覆盖科技、医疗、法律三大领域,确保实验的多样性与真实性。
评估指标
Precision@5 / Recall@5 — 检索相关性
MRR — 平均倒数排名
F1 Score — 综合检索质量
Answer Accuracy — 答案正确率
控制变量
相同 RAG 配置(Embedding 模型、Retriever top-K=5、LLM),仅改变分块策略,确保对比的公平性。
Fig.2  多维性能对比 (Radar Chart)
Precision@5 Recall@5 MRR F1 Score Answer Acc. 0.25 0.50 0.75 Fixed-size Recursive Semantic (Ours)
Metric Fixed-size Recursive Semantic (Ours) vs Fixed vs Recursive
Precision@5 0.624 0.713 0.837 +34.1% +17.4%
Recall@5 0.581 0.672 0.794 +36.7% +18.2%
MRR 0.543 0.635 0.762 +40.3% +20.0%
F1 Score 0.602 0.692 0.815 +35.4% +17.8%
Answer Accuracy 0.651 0.724 0.853 +31.0% +17.8%
Avg Latency (ms) 118 125 156 +32.2% +24.8%
实验分析
语义边界检测方法在所有质量指标上均显著优于两种基线方法。相比 Fixed-size 基线,Precision@5 提升 34.1%,MRR 提升 40.3%,表明语义感知切分能有效改善检索结果的相关性与排序质量。延迟方面,语义方法由于需要额外的嵌入计算,开销增加约 32%,但在实际部署场景中(<200ms)仍可接受。综合 F1 Score 提升 35.4%,证实了语义边界检测在 RAG 系统分块优化中的有效性。
System Capabilities

系统成果

端到端 RAG Pipeline
完整的文档摄取、分块、向量化、检索、生成流程
三种分块策略实现
Fixed-size / Recursive / Semantic Boundary Detection
受控对比实验
控制变量法,5 项指标全面评估
FAISS 向量检索
高效的近似最近邻搜索,支持大规模文档库
Chainlit 交互界面
实时对话式问答,支持上下文多轮会话
多领域数据集验证
科技、医疗、法律三大领域 1,200+ 文档段落
Key Findings

关键发现

语义切分显著提升检索质量
相比固定长度基线,语义边界检测在 Precision@5 和 MRR 上分别提升 34.1% 和 40.3%,验证了语义感知分块对检索相关性的实质性改善。
阈值参数的鲁棒性
基于百分位数的动态阈值计算方法(θ = μ − α·σ)在不同领域数据集上均表现稳定,避免了固定阈值对数据分布的敏感性。
质量-效率权衡可接受
语义方法引入约 32% 的额外延迟(从 118ms 增至 156ms),但 F1 Score 提升 35.4%。在检索质量敏感的场景中,该权衡具有明确的正收益。
中文文本的分隔符适配
中文文本缺乏天然的句间空格,研究发现在分割器中优先使用中文标点("。"",")作为分隔符层级,能显著提升递归基线的表现。
Conclusion

研究结论

1
提出语义边界检测分块算法 — 基于句子嵌入余弦相似度与动态阈值,实现自然语义切分,避免传统方法对逻辑单元的破坏。
2
建立全面的分块策略评估框架 — 涵盖检索相关性(Precision/Recall/MRR)、综合质量(F1)和生成质量(Accuracy)五个维度的标准化评估体系。
3
验证语义分块的显著优势 — 在多领域数据集上的受控实验表明,语义方法在所有质量指标上均优于两种基线,综合 F1 提升 35.4%。
4
构建完整的 RAG 知识库问答系统 — 实现端到端的文档处理、向量检索与 LLM 生成流程,并提供 Chainlit 交互式问答界面。
提供实验证据,揭示分块策略如何影响 RAG 系统的性能表现,
为面向中文知识库的 RAG 系统分块优化提供可复现的方法论指导。