Rekursives Aufteilen nach Zeichen
Viele Entwickler benutzen einen rekursiven Zeichentrenner, um Dokumente anhand einer bestimmten Liste von Zeichen zu trennen. Standardmäßig sind das Absätze, Zeilenumbrüche, Leerzeichen und leere Zeichenfolgen: ["\n\n", "\n", " ", ""].
Der Splitter versucht, den Text nach Absätzen zu teilen, prüft, ob die Werte für chunk_size und chunk_overlap erfüllt sind. Wenn nicht teilt er den Text nach Sätzen, dann nach Wörtern und schließlich nach einzelnen Zeichen.
Oft musst du mit verschiedenen Werten für chunk_size und chunk_overlap experimentieren, um die für deine Dokumente passenden Werte zu finden.
Diese Übung ist Teil des Kurses
<Kurs>Entwickeln von LLM-Anwendungen mit LangChain</Kurs>Übungsanweisungen
- Importiere die Klasse
RecursiveCharacterTextSplitterauslangchain_text_splitters. - Mach eine Instanz von „
RecursiveCharacterTextSplitter” mit „separators=["\n", " ", ""]”, „chunk_size=24” und „chunk_overlap=10”. - Benutze die Methode „
.split_text()“, um „quote“ zu teilen und die Teile und ihre Länge auszugeben.
Interaktive praktische Ü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 = 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])