始める無料で始める

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

ひとつの文字を基準に分割する方法は、シンプルで予測しやすいものの、最適とは言えないチャンクが生成されることがあります。この演習では、再帰的な文字分割を使って、前の演習で読み込んだRetrieval-Augmented Generation for Knowledge-Intensive NLP Tasksという論文を分割します。

再帰的な文字分割では、文字のリストを順番に処理し、それぞれの文字で分割を試みながら、chunk_sizeの上限以下のチャンクを作成できるか確認していきましょう。

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

LangChainで学ぶ検索拡張生成(RAG)

コースを見る

演習の手順

  • 文字リスト「['\n', '.', ' ', '']」を使って再帰的に分割するLangChainのRecursiveCharacterTextSplitterを定義してください。chunksizeは75、chunkoverlapは10とします。
  • 定義した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])
コードを編集して実行