始める無料で始める

ドキュメントを再帰的に分割する

単一の文字で分割するのは簡単で予測しやすい反面、最適とは言えないチャンクになることがよくあります。この演習では、先の演習で読み込んだ論文「Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks」に対して、再帰的な文字分割を適用します。

再帰的な文字分割では、文字のリストを順にたどり、それぞれの文字で分割を試みて、chunk_size の制限内でチャンクを作成できるかを確認します。

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

LangChain で学ぶ Retrieval Augmented Generation (RAG)

コースを見る

演習の手順

  • 文字リスト ['\n', '.', ' ', ''] を順にたどって再帰的に分割する LangChain の再帰的文字テキストスプリッターを定義し、chunk_size75chunk_overlap10 に設定します。
  • 定義した text_splitter と適切なメソッドを使って document を分割します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

loader = PyPDFLoader("rag_paper.pdf")
document = loader.load()

# Define a text splitter that splits recursively through the character list
text_splitter = ____(
    ____,
    chunk_size=75,  
    chunk_overlap=10  
)

# Split the document using text_splitter
chunks = text_splitter.____
print(chunks)
print([len(chunk.page_content) for chunk in chunks])
コードを編集して実行