始める無料で始める

文字ごとに再帰的に分割

多くの開発者は、特定の文字リストをもとにドキュメントを分割するために、再帰的文字スプリッターを活用しています。デフォルトでは、段落、改行、スペース、空文字列の順に分割が試みられます(["\n\n", "\n", " ", ""])。

スプリッターはまず段落単位での分割を試み、chunk_sizechunk_overlap の条件を満たしているか確認します。条件を満たさない場合は、文単位、単語単位、そして文字単位へと順に分割を試みます。

実際には、ドキュメントに合った chunk_sizechunk_overlap の値を見つけるために、さまざまな組み合わせを試してみることが重要です。

この演習はコースの一部です

LangChainを使ったLLMアプリケーション開発

コースを見る

演習の手順

  • RecursiveCharacterTextSplitter から langchain_text_splitters クラスをインポートします。
  • RecursiveCharacterTextSplitterseparators=["\n", " ", ""]chunk_size=24 を指定して chunk_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])
コードを編集して実行