Divisione ricorsiva per carattere
Molti sviluppatori usano uno splitter ricorsivo per caratteri per dividere i documenti in base a un elenco specifico di caratteri. Per impostazione predefinita, questi caratteri sono paragrafi, a capo, spazi e stringhe vuote: ["\n\n", "\n", " ", ""].
In pratica, lo splitter prova prima a dividere per paragrafi, verifica se i valori di chunk_size e chunk_overlap sono rispettati e, in caso contrario, divide per frasi, poi parole e infine singoli caratteri.
Spesso dovrai sperimentare con diversi valori di chunk_size e chunk_overlap per trovare quelli che funzionano meglio per i tuoi documenti.
Questo esercizio fa parte del corso
Sviluppare applicazioni LLM con LangChain
Istruzioni dell'esercizio
- Importa la classe
RecursiveCharacterTextSplitterdalangchain_text_splitters. - Crea un'istanza di
RecursiveCharacterTextSplitterconseparators=["\n", " ", ""],chunk_size=24echunk_overlap=10. - Usa il metodo
.split_text()per dividerequotee stampa i chunk e le rispettive lunghezze.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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])