Karaktere göre özyinelemeli bölme
Birçok geliştirici, belgeleri belirli bir karakter listesine göre bölmek için özyinelemeli bir karakter ayırıcı kullanıyor. Bu karakterler varsayılan olarak paragraflar, satır sonları, boşluklar ve boş dizelerdir: ["\n\n", "\n", " ", ""].
Özetle, ayırıcı önce paragraflara göre bölmeyi dener, chunk_size ve chunk_overlap değerlerinin karşılanıp karşılanmadığını kontrol eder; eğer karşılanmazsa cümlelere, ardından kelimelere ve tek tek karakterlere göre böler.
Çoğu zaman, belgelerin için iyi çalışan değerleri bulmak üzere farklı chunk_size ve chunk_overlap değerleriyle denemeler yapman gerekecek.
Bu egzersiz
LangChain ile LLM Uygulamaları Geliştirme
kursunun bir parçasıdırEgzersiz talimatları
langchain_text_splittersiçindenRecursiveCharacterTextSplittersınıfını içe aktar.separators=["\n", " ", ""],chunk_size=24vechunk_overlap=10ile birRecursiveCharacterTextSplitterörneği oluştur.quotemetnini bölmek için.split_text()yöntemini kullan ve parçaları ile parça uzunluklarını yazdır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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])