Recursief splitsen op teken
Veel ontwikkelaars gebruiken een recursieve tekensplitser om documenten te splitsen op basis van een specifieke lijst met tekens. Standaard zijn dat alinea’s, regeleinden, spaties en lege strings: ["\n\n", "\n", " ", ""].
De splitter probeert eerst op alinea’s te splitsen, controleert of de waarden van chunk_size en chunk_overlap gehaald worden, en zo niet, splitst hij vervolgens op zinnen, dan woorden en individuele tekens.
Vaak moet je met verschillende waarden voor chunk_size en chunk_overlap experimenteren om te vinden wat goed werkt voor jouw documenten.
Deze oefening maakt deel uit van de cursus
LLM-toepassingen ontwikkelen met LangChain
Oefeninstructies
- Importeer de klasse
RecursiveCharacterTextSplitteruitlangchain_text_splitters. - Maak een
RecursiveCharacterTextSplitter-instantie metseparators=["\n", " ", ""],chunk_size=24enchunk_overlap=10. - Gebruik de methode
.split_text()om dequotete splitsen en print de chunks en de chunklengtes.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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])