0Pricing
AI Agents · Lección

Estrategias de segmentación (fija, por frases y semántica)

Conozca las ventajas y desventajas de la segmentación por tamaño fijo, basada en frases y semántica para mejorar la calidad de recuperación.

Estrategias de segmentación (fija, por frases y semántica) es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.

¿Por qué fragmentar?

No puede generar un único vector a partir de un PDF entero de 200 páginas: el vector sería demasiado abstracto para coincidir con consultas específicas. Debe fragmentar el documento en piezas más pequeñas (de ~200 a 800 tokens cada una), generar un embedding para cada una y buscar a nivel de fragmento.

Fragmentación de tamaño fijo

El enfoque más sencillo: dividir cada N caracteres o tokens:

def fixed_chunks(text, chunk_size=1000, overlap=200):
    chunks = []
    i = 0
    while i < len(text):
        chunks.append(text[i:i + chunk_size])
        i += chunk_size - overlap
    return chunks

sample_text = "A" * 2500
chunks = fixed_chunks(sample_text, chunk_size=1000, overlap=200)
print(f"Split {len(sample_text)} characters into {len(chunks)} chunks")
for i, c in enumerate(chunks):
    print(f"Chunk {i+1}: {len(c)} chars")

¿Por qué solapar?

El solapamiento (normalmente del 10-20 % del tamaño del fragmento) garantiza que una oración que cruza el límite aparezca completa al menos en un fragmento. Sin él, un dato clave dividido entre varios fragmentos podría no ser recuperable.

Fragmentación por oraciones

Dividir en los límites de las oraciones, sin cortar nunca una oración por la mitad:

import re

def sentence_chunks(text, max_chars=1000):
    sentences = re.split(r'(?<=[.!?])\s+', text)
    chunks = []
    current = ''
    for s in sentences:
        if len(current) + len(s) > max_chars and current:
            chunks.append(current.strip())
            current = s
        else:
            current += ' ' + s
    if current:
        chunks.append(current.strip())
    return chunks

sample_text = "This is sentence one. This is sentence two! Is this sentence three? Yes it is."
chunks = sentence_chunks(sample_text, max_chars=40)
for i, c in enumerate(chunks):
    print(f"Chunk {i+1}: {c!r}")

División recursiva (LangChain)

RecursiveCharacterTextSplitter de LangChain intenta dividir primero por límites de párrafo, después por oraciones y, por último, por palabras, preservando la estructura tanto como sea posible.

from langchain.text_splitter import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(
    chunk_size=800,
    chunk_overlap=100,
    separators=['\n\n', '\n', '. ', ' ']
)
chunks = splitter.split_text(document)

Fragmentación semántica

Dividir donde cambia el tema. Las implementaciones generan un embedding de cada oración y dividen cuando los embeddings de oraciones consecutivas están muy alejados.

Es más lento de calcular, pero produce fragmentos coherentes desde el punto de vista temático.

Fragmentación compatible con Markdown

Para documentos Markdown, divida en los límites de los encabezados para mantener las secciones juntas. Cada fragmento hereda sus encabezados principales como contexto.

Fragmentación consciente del código

Para código fuente, divida en los límites de funciones o clases, no según el número de caracteres. Herramientas como tree-sitter permiten una fragmentación consciente del AST.

Elegir el tamaño de los fragmentos

Equilibrios:

  • Fragmentos pequeños (~200 tokens): coincidencias precisas, pero más fragmentos que gestionar
  • Fragmentos grandes (~1000 tokens): más contexto por coincidencia, pero menor precisión

Valor predeterminado: 500-800 tokens con un solapamiento del 10-20 %.

Conservación de metadatos

Asocie metadatos a cada fragmento:

  • URL de origen / ruta del archivo
  • Número de página
  • Título del documento
  • Sección / encabezado
  • Marcas de tiempo de creación / actualización

Resultan útiles para filtrar, incluir citas y hacer re-ranking.

Fragmentos contextuales

Técnica reciente: anteponga a cada fragmento una línea de contexto generada por un LLM (por ejemplo, "Este fragmento procede del informe financiero de la empresa del segundo trimestre de 2024 y trata sobre los ingresos."). Mejora la recuperación entre un 30 y un 50 %.

Fragmentos padre-hijo

Indexe fragmentos pequeños para obtener coincidencias precisas, pero recupere su párrafo padre MÁS GRANDE para disponer de contexto:

  1. Genere embeddings de fragmentos a nivel de oración
  2. Cuando haya una coincidencia, devuelva el fragmento padre de 800 tokens

¿Por qué solapar?

¿Por qué los fragmentos suelen solaparse entre un 10 y un 20 %?

Resumen

Comience con una división recursiva por caracteres de ~800 tokens y un solapamiento del 10 %. Añada conciencia semántica o estructural a medida que aumenten sus necesidades.

Preguntas frecuentes

¿La lección «Estrategias de segmentación (fija, por frases y semántica)» es gratis?

Sí — el texto completo de «Estrategias de segmentación (fija, por frases y semántica)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.

¿Qué aprenderé en «Estrategias de segmentación (fija, por frases y semántica)»?

Conozca las ventajas y desventajas de la segmentación por tamaño fijo, basada en frases y semántica para mejorar la calidad de recuperación. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AI Agents?

No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Estrategias de segmentación (fija, por frases y semántica)»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AI Agents?

Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Qué resuelve RAG (fecha de corte del conocimiento y alucinaciones)
  2. Estrategias de segmentación (fija, por frases y semántica)
  3. Indexar un conjunto de documentos
  4. Crear un RAG ingenuo con FAISS o Chroma
← Volver a AI Agents