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_sizede24y unchunk_overlapde10. - Divide
quotee 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])