開始使用免費開始

以字元遞迴分割

許多開發者會使用遞迴字元分割器,依照一組特定的字元清單來分割文件。預設的字元包含段落、換行、空白與空字串:["\n\n", "\n", " ", ""]

實際運作上,分割器會先嘗試用段落來分割,檢查是否符合 chunk_sizechunk_overlap 的設定;若不符合,則改以句子、接著以單字,最後到單一字元進行分割。

通常你需要嘗試不同的 chunk_sizechunk_overlap 組合,才能找出最適合你文件的設定。

本練習屬於課程

使用 LangChain 開發 LLM 應用

檢視課程

練習說明

  • langchain_text_splitters 匯入 RecursiveCharacterTextSplitter 類別。
  • 建立一個 RecursiveCharacterTextSplitter 實例,設定 separators=["\n", " ", ""]chunk_size=24chunk_overlap=10
  • 使用 .split_text() 方法分割 quote,並印出各分段與其長度。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Import the recursive character splitter
from langchain_text_splitters import ____

quote = 'Words are flowing out like endless rain into a paper cup,\nthey slither while they pass,\nthey slip away across the universe.'
chunk_size = 24
chunk_overlap = 10

# Create an instance of the splitter class
splitter = RecursiveCharacterTextSplitter(
    separators=____,
    chunk_size=____,
    chunk_overlap=____)

# Split the document and print the chunks
docs = splitter.____(quote)
print(docs)
print([len(doc) for doc in docs])
編輯並執行程式碼