文字ごとに分割する

LangChainはテキストを分割する最もシンプルな方法です。デフォルトでは、分割は文字(デフォルトは「\n\n」)に基づいており、チャンクの長さは文字数で測定されます。

  1. テキストの分割方法: 文字ごとに分割されます。
  2. チャンクのサイズの測定方法: 文字数で測定されます。

パッケージのインストール

%pip install -qU langchain-text-splitters

with open('../../../state_of_the_union.txt') as f:
    state_of_the_union = f.read()
from langchain_text_splitters import CharacterTextSplitter

text_splitter = CharacterTextSplitter(        
    separator="\n\n",
    chunk_size=1000,
    chunk_overlap=200,
    length_function=len,
)
texts = text_splitter.create_documents([state_of_the_union])
print(texts[0])
page_content='Madam Speaker, Madam Vice President ...' lookup_str='' metadata={} lookup_index=0

これは、ドキュメントと一緒にメタデータを渡す例です。どのようにドキュメントと一緒に分割されるかに注目してください。

metadatas = [{"document": 1}, {"document": 2}]
documents = text_splitter.create_documents([state_of_the_union, state_of_the_union], metadatas=metadatas)
print(documents[0])
page_content='.. Ignoring text ..' lookup_str='' metadata={'document': 1} lookup_index=0
text_splitter.split_text(state_of_the_union)[0]