Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Importeer de klasse RecursiveCharacterTextSplitter uit langchain_text_splitters.
  • Maak een RecursiveCharacterTextSplitter-instantie met separators=["\n", " ", ""], chunk_size=24 en chunk_overlap=10.
  • Gebruik de methode .split_text() om de quote te 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])
Code bewerken en uitvoeren