Suddividere i documenti in modo ricorsivo
Suddividere in base a un singolo carattere è semplice e prevedibile, ma spesso produce blocchi subottimali. In questo esercizio applicherai una suddivisione ricorsiva per caratteri all'articolo Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks che hai caricato in un esercizio precedente.
Ricorda che la suddivisione ricorsiva per caratteri scorre un elenco di caratteri e prova a suddividere via via su ciascuno per verificare se è possibile creare blocchi sotto il limite di chunk_size.
Questo esercizio fa parte del corso
Retrieval Augmented Generation (RAG) con LangChain
Istruzioni dell'esercizio
- Definisci uno splitter ricorsivo di testo per caratteri di LangChain che suddivida in modo ricorsivo usando l'elenco di caratteri
['\n', '.', ' ', '']con una dimensione dei blocchi (chunk size) pari a75e una sovrapposizione (chunk overlap) di10. - Suddividi
documentusando iltext_splitterche hai definito e un metodo appropriato.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
loader = PyPDFLoader("rag_paper.pdf")
document = loader.load()
# Define a text splitter that splits recursively through the character list
text_splitter = ____(
____,
chunk_size=75,
chunk_overlap=10
)
# Split the document using text_splitter
chunks = text_splitter.____
print(chunks)
print([len(chunk.page_content) for chunk in chunks])