語義切片

Semantic Chunking

依語義邊界切分文本的RAG預處理

詳細解釋

語義切片(Semantic Chunking)是根據文本語義內容而非固定長度進行分割的技術,確保每個片段包含完整意義,提升檢索增強生成 (RAG)和語言模型處理效果。

與傳統切片的對比:

  • 固定長度:每N字符或token切分
  • 問題:可能切斷句子、段落,割裂語義
  • 邊界效應:連接處信息丟失
  • 語義切片:基於內容結構
  • 句子邊界:在自然斷句處分割
  • 段落邊界:保持段落完整性
  • 主題轉換:在話題變化處分割

技術方法:

  • 遞歸結構分割:
  • 按段落→句子→短語遞歸
  • 遞歸字元分割:LangChain實現
  • 機器學習:
  • 訓練分類器識別邊界
  • 序列標註模型

應用場景:

  • 檢索增強生成 (RAG)系統:檢索最相關的語義片段
  • 長文檔處理:論文、報告、書籍分章節
  • 對話系統:保持對話輪次的完整上下文
  • 代碼分析:函數、類級別分割
  • 法律文檔:條款級別分割

工具實現:

  • LangChain:RecursiveCharacterTextSplitter
  • LlamaIndex:SentenceSplitter、TokenTextSplitter
  • 自定義:基於標題、關鍵詞的分割
  • 多語言:考慮不同語言的分句規則

最佳實踐:

  • 重疊窗口:相鄰片段保留重疊內容,避免邊界信息丟失
  • 大小平衡:片段不能太大(超過模型限制)或太小(語義不完整)
  • 層次保留:記錄片段間的層次關係(章→節→段)
  • 元數據:保留位置、來源、上下文信息

與其他技術的結合:

  • HyDE:語義切片+假設文檔嵌入
  • 父文檔檢索:檢索片段但返回完整父文檔
  • 重排序:重排序優化檢索結果

語義切片是構建高質量RAG系統的關鍵步驟。

探索更多AI詞彙

查看所有分類,繼續學習AI知識