Paso 03 de 22
Fragmentación
Divide los documentos en pasajes lo bastante pequeños para generar embeddings y recuperarlos. Los fragmentos que cortan una tabla o una definición por la mitad devuelven media respuesta. La fragmentación fija la unidad que el modelo ve de verdad.
Por Sheela · Comprobado el 19 oct 2026 · Cómo hacemos las reseñas
Cómo elegir
- Empieza dividiendo según la estructura (por encabezado o sección) antes de probar nada sofisticado.
- Deja un poco de solapamiento y añade el título del documento y la sección a cada fragmento.
- Mide la recuperación antes y después de cada cambio; el tamaño del fragmento es un ajuste que se prueba, no una creencia.
Qué tener en cuenta
Las preguntas que distinguen las opciones, por orden de importancia.
01
Primero, división según la estructura
Dividir por encabezados, secciones y límites de listas mantiene de una pieza una definición o un procedimiento. Esto requiere que el parser aporte la estructura, así que los chunkers que leen un documento ya procesado (HybridChunker de Docling, by_title de Unstructured, los divisores por encabezados de Markdown) suelen ser mejores que dividir texto en bruto. Empieza por aquí antes de probar nada sofisticado.
02
Tamaño medido en tokens de tu modelo de embeddings
Los modelos de embeddings truncan la entrada que supera su límite de tokens, a menudo sin avisar, así que los límites de los fragmentos deben contarse con el mismo tokenizador que usa el modelo. Los límites por caracteres (max_characters de Unstructured, el divisor por defecto de LangChain) solo se aproximan. HybridChunker de Docling y los divisores por tokens de LangChain, LlamaIndex y Chonkie aceptan directamente un tokenizador.
03
Contexto en cada fragmento
Un fragmento que dice 'el límite es de 30 días' no sirve de nada si no se sabe a qué política pertenece. Mejor los chunkers que añaden el título del documento, la ruta de encabezados y los pies de figura como metadatos o los anteponen al texto antes de generar el embedding. Un pequeño solapamiento ayuda cuando una frase queda a caballo entre dos fragmentos, pero no sustituye a los encabezados.
04
Tablas y código tratados como unidades
Los divisores de texto genéricos cortan las tablas a mitad de fila y las funciones a mitad de cuerpo. Busca opciones que entiendan las tablas, como Docling, que repite la fila de encabezado de una tabla en cada trozo, o Unstructured, que aísla las tablas en sus propios fragmentos, y divisores de código que sigan la sintaxis (LangChain, LlamaIndex, el divisor por AST de Python de Haystack).
05
Desconfía de la fragmentación semántica
Los chunkers semánticos dividen donde cae la similitud de embeddings entre frases. Un estudio de 2024 de investigadores de Vectara concluyó que el cómputo adicional no aportaba mejoras consistentes frente a fragmentos de tamaño fijo, y un estudio de agosto de 2026 sobre ocho estrategias vio que el mejor método cambiaba según el modelo de embeddings, el conjunto de datos y la métrica. Pruébala solo después de medir una base sencilla. No hay una clasificación pública de chunkers; todo lo que leas es un estudio aislado o un gráfico de un proveedor.
06
Mide la recuperación, no la estética de los fragmentos
Crea un pequeño conjunto de pruebas con preguntas reales y los pasajes que las responden, y compara el recall at k (con qué frecuencia el pasaje correcto está entre los k primeros resultados) para cada configuración de fragmentación. El tamaño del fragmento es un parámetro que se prueba, no una creencia. Repite la prueba cada vez que cambies el parser o el modelo de embeddings.
07
Mantenimiento y dónde vive el código
El código de fragmentación es pequeño, así que el riesgo es el abandono más que los errores. LangChain archivó en mayo de 2026 su paquete langchain-experimental, que es donde estaba su SemanticChunker, y una petición para pasarlo al paquete principal de divisores se cerró como no prevista. Mejor los chunkers incluidos en una biblioteca de la que ya dependes, o fija las versiones.
En qué se diferencian las opciones
La mayoría de equipos no necesitan una biblioteca de fragmentación aparte. Los divisores de los frameworks (los text splitters de LangChain, los node parsers de LlamaIndex, los preprocesadores de Haystack) cubren la división recursiva, por tokens, por encabezados y de código, y son la opción sensata por defecto si ya usas ese framework. Los chunkers nativos de los parsers (HybridChunker de Docling, las estrategias basic y by_title de Unstructured) tienen una ventaja: ven la estructura real del documento, así que pueden mantener juntas las secciones, las tablas y los pies de figura.
Las bibliotecas dedicadas como Chonkie ofrecen el menú más amplio, desde la división por tokens y por frases hasta la fragmentación semántica, tardía y guiada por LLM, en una instalación ligera, lo que ayuda si quieres probar estrategias sin cambiar de framework. La fragmentación tardía genera primero el embedding de todo el documento y luego agrupa los vectores de tokens por fragmento, de modo que el vector de cada fragmento lleva el contexto que lo rodea; requiere un modelo de embeddings de contexto largo que exponga salidas a nivel de token.
6 herramientas comparadas
Ordenadas por nuestra nota. Abre cualquier reseña para ver las fuentes, los precios y el veredicto completo.
| Herramienta | Nota | Nuestro veredicto | Ideal para | Precio |
|---|---|---|---|---|
| Doclingrepo | 4.5/5 | Docling es el parser de código abierto que acierta con las tablas, y aquel cuyas versiones de seguridad no te puedes permitir saltarte. | Equipos que montan RAG autoalojado sobre PDF y documentos de Office con tablas complejas. | Gratuito y de código abierto con licencia MIT. |
| LlamaIndexrepo | 4.3/5 | Sigue siendo una herramienta profunda para RAG con muchos documentos, pero su creador dice ya abiertamente que el framework no es su prioridad. | Desarrolladores de Python que crean RAG o agentes de documentos sobre fuentes de datos grandes y variadas. | Framework gratuito bajo MIT. LlamaParse (nube de pago): Free con 10k créditos, Starter 50 $/mes (40k créditos), Pro 500 $/mes (400k créditos), Enterprise a medida; 1.000 créditos = 1,25 $. |
| LangChainrepo | 4.2/5 | Sigue siendo la librería con más integraciones para aplicaciones con LLM, mucho más ordenada desde la 1.0, y ya no es la opción por defecto automática que fue. | Equipos que crean agentes que necesitan muchas integraciones de proveedores y datos y que pueden acabar en flujos de LangGraph a medida. | Gratuito y de código abierto bajo licencia MIT. LangSmith va aparte: Developer gratis para un puesto, Plus 39 $/puesto/mes, Enterprise a medida. |
| Haystackrepo | 4.2/5 | Un framework para quien quiere leer su sistema de RAG en lugar de fiarse de él, a cambio de escribir más conexiones por su cuenta. | Equipos de ingeniería que construyen en Python pipelines de RAG y agentes para producción fáciles de mantener. | Gratuito y de código abierto bajo la licencia Apache 2.0. deepset Studio es gratis para un usuario; la Haystack Enterprise Platform tiene precio a medida. |
| Unstructuredrepo | 3.8/5 | Sigue siendo la red más amplia para formatos de archivo raros, pero sus creadores publican ahora las cifras que muestran por qué deberías pagarles. | Equipos que construyen pipelines de ETL que ingieren muchos formatos de documento para RAG. | Biblioteca gratuita con Apache 2.0. Plataforma alojada: 10.000 páginas gratis y después 0,015 $ por página; plan Business con despliegue en VPC o dedicado, con precio a consultar. |
| Chonkierepo | 3.7/5 | Una biblioteca de chunking cuidada y en plena reescritura: la v1.7 funciona hoy, pero casi todo lo que la distingue está previsto que desaparezca en la v2. | Equipos que necesitan un paso ligero de chunking recursivo o de código y pueden asumir pronto una migración a la v2. | Gratuito y de código abierto bajo la licencia MIT. |
Lado a lado
Las especificaciones que importan en este paso. Comprobado el 19 oct 2026; confírmalo en la web del proveedor antes de decidirte.
| Herramienta | Estrategias | Tamaño por tokens | Según la estructura | Lenguaje | Licencia |
|---|---|---|---|---|---|
| Docling | Jerárquica, híbrida, por líneas | Sí (Hugging Face o tiktoken) | Maquetación completa; repite los encabezados de las tablas | Python | MIT |
| LlamaIndex | Por frases, por tokens, semántica, jerárquica | Sí (TokenTextSplitter) | Markdown, HTML, JSON, código | Python | MIT |
| LangChain | Recursiva, por caracteres, por tokens, código | Sí (tiktoken y otros) | Encabezados de Markdown, HTML, JSON | Python | MIT |
| Haystack | Recursiva, jerárquica, por embeddings | Mediante el divisor por tokens de Chonkie | Encabezados de Markdown, AST de Python, CSV | Python | Apache 2.0 |
| Unstructured | basic, by_title | No (límites por caracteres) | Tipos de elemento, secciones, páginas | Python | Apache 2.0 |
| Chonkie | Por tokens, recursiva, semántica, tardía, LLM | Sí | Receta para Markdown, código, tablas | Python; servidor REST | MIT |
Dónde encaja esta etapa
- Chatea con tus documentos: empezaríamos con Chonkie.
- Agente de atención al cliente: empezaríamos con Chonkie.
- Agente de programación: empezaríamos con LlamaIndex.
- Investigación y grafo de conocimiento: empezaríamos con Chonkie.
- Asistente con memoria a largo plazo: empezaríamos con Chonkie.
- Agente de voz: empezaríamos con Chonkie.
- IA privada y local: empezaríamos con Chonkie.
- Tu propio modelo con fine-tuning: empezaríamos con Chonkie.
Fuentes de esta guía
- LangChain text splitters
- Sunsetting langchain-experimental (GitHub issue #87)
- LlamaIndex node parser modules
- Docling chunking concepts
- Unstructured chunking
- Haystack preprocessors
- feyninc/chonkie on GitHub
- Is Semantic Chunking Worth the Computational Cost? (arXiv)
- Chunking strategies study, August 2026 (arXiv)
- Late Chunking (Jina AI, arXiv)