División recursiva por caracteres
Muchos programadores utilizan un divisor de caracteres recursivo para dividir documentos basándose en una lista específica de caracteres. Estos caracteres son párrafos, saltos de línea, espacios y cadenas vacías, por defecto: ["\n\n", "\n", " ", ""]
.
En la práctica, el divisor intenta dividir por párrafos, comprueba si se cumplen los valores chunk_size
y chunk_overlap
y, si no es así, divide por frases, luego por palabras y, por último, por caracteres individuales.
A menudo, tendrás que probar diferentes valores de chunk_size
y chunk_overlap
para encontrar los que mejor se adapten a tus documentos.
Este ejercicio forma parte del curso
Desarrollo de aplicaciones LLM con LangChain
Instrucciones del ejercicio
- Importa la clase LangChain adecuada para dividir un documento de forma recursiva por caracteres.
- Define un divisor de caracteres recursivo para dividir los caracteres
"\n"
," "
y""
(en ese orden) con unchunk_size
de24
y unchunk_overlap
de10
. - Divide
quote
e imprime los fragmentos y sus longitudes.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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])