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
Entwickeln von LLM-Anwendungen mit LangChain
Anleitung zur Übung
- Importiere die passende LangChain-Klasse, um ein Dokument rekursiv nach Zeichen aufzuteilen.
- Definiere einen rekursiven Zeichentrenner, um die Zeichen
"\n"
," "
und""
(in dieser Reihenfolge) zu trennen, mit einerchunk_size
von24
und einemchunk_overlap
von10
. - Teile das Zitat (
quote
) auf und lasse die Chunks und deren Länge ausgeben.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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])