Rekurzivní dělení podle znaků
Mnoho vývojářů používá rekurzivní character splitter k dělení dokumentů podle konkrétního seznamu znaků. Ve výchozím nastavení jsou to odstavce, nové řádky, mezery a prázdné řetězce: ["\n\n", "\n", " ", ""].
Splitter se nejprve pokusí rozdělit text podle odstavců, zkontroluje, zda jsou splněny hodnoty chunk_size a chunk_overlap, a pokud ne, přejde na dělení podle vět, slov a jednotlivých znaků.
Často budeš muset experimentovat s různými hodnotami chunk_size a chunk_overlap, abys našel/a ty, které pro tvoje dokumenty fungují nejlépe.
Toto cvičení je součástí kurzu
Vývoj LLM aplikací s LangChain
Pokyny k cvičení
- Importuj třídu
RecursiveCharacterTextSplitterzlangchain_text_splitters. - Vytvoř instanci
RecursiveCharacterTextSplitters parametryseparators=["\n", " ", ""],chunk_size=24achunk_overlap=10. - Použij metodu
.split_text()k rozdělení proměnnéquotea vypiš výsledné části i jejich délky.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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])