Dividir recursivamente por caracteres
Muchos desarrolladores utilizan un divisor de caracteres recursivo para dividir documentos basándose en una lista específica de caracteres. Estos caracteres son párrafos, nuevas líneas, espacios y cadenas vacías, por defecto: ["\n\n", "\n", " ", ""]
.
Efectivamente, el divisor intenta dividir por párrafos, comprueba si se cumplen los valores chunk_size
y chunk_overlap
y, si no, divide por frases, luego por palabras y por caracteres individuales.
A menudo, tendrás que experimentar con diferentes valores de chunk_size
y chunk_overlap
para encontrar los que funcionen bien para tus documentos.
Este ejercicio forma parte del curso
Desarrollar aplicaciones LLM con LangChain
Instrucciones de ejercicio
- Importa la clase LangChain adecuada para dividir un documento recursivamente por caracteres.
- Define un divisor de caracteres recursivo para dividir en los caracteres
"\n"
," "
, y""
(en ese orden) con unchunk_size
de24
ychunk_overlap
de10
. - Divide
quote
, e imprime los trozos y la longitud de los trozos.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este 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])