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
RecursiveCharacterTextSplitterdelangchain_text_splitters. - Crea una instancia de
RecursiveCharacterTextSplitterconseparators=["\n", " ", ""],chunk_size=24ychunk_overlap=10. - Utiliza el método
.split_text()para dividirquotee imprimir los fragmentos y sus longitudes.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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])