Rekursives Aufteilen nach Zeichen
Viele Entwickler verwenden einen rekursiven Zeichensplitter, um Dokumente anhand einer bestimmten Liste von Zeichen aufzuteilen. Bei diesen Zeichen handelt es sich um Absätze, Zeilenumbrüche, Leerzeichen und leere Zeichenketten, standardmäßig: ["\n\n", "\n", " ", ""]
.
Der Splitter versucht, nach Absätzen aufzuteilen, prüft, ob die Werte chunk_size
und chunk_overlap
erfüllt sind, und wenn nicht, teilt er nach Sätzen, dann nach Wörtern und schließlich nach einzelnen Zeichen auf.
Oft musst du mit verschiedenen chunk_size
und chunk_overlap
Werten experimentieren, um die richtigen Werte für deine Dokumente zu finden.
Diese Übung ist Teil des Kurses
Entwicklung von LLM Anwendungen mit LangChain
Anleitung zur Übung
- Importiere die entsprechende LangChain-Klasse, um ein Dokument rekursiv nach Zeichen aufzuteilen.
- Definiere einen rekursiven Zeichensplitter, um die Zeichen
"\n"
," "
und""
(in dieser Reihenfolge) mit einemchunk_size
von24
undchunk_overlap
von10
aufzuspalten. - Teile
quote
und drucke die Chunks und Chunk-Längen aus.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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 = ____
# Split the document and print the chunks
docs = ____
print(docs)
print([len(doc) for doc in docs])