No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Fragmentación de Texto con Contexto en Documentos de Programación

4/17
Recursos

¿Qué es la fragmentación de texto sin contexto?

La fragmentación de texto sin contexto implica cortar un texto sin considerar la semántica o la estructura del mismo. Esto puede llevar a que secciones importantes, como bloques de código, queden a la mitad, afectando la comprensión y el rendimiento de modelos de lenguaje. Por ejemplo, si se le pregunta a un modelo qué hace una función y no tiene toda la información de ese fragmento, no sabrá responder correctamente.

  • Consecuencias: Los fragmentos incompletos pueden deteriorar la utilidad del texto y afectar la interpretación.
  • Desafío principal: Mantener la cohesión y el significado al fraccionar el texto.

¿Cómo mejorar la fragmentación del texto considerando el contexto?

Al abordar la fragmentación de texto, es crucial incorporar el contexto para evitar cortes que interrumpan estructuras significativas como bloques de código o párrafos completos. Esto se logra mediante métodos que identifican patrones y distribuciones de tokens más efectivas.

¿Cómo se aplican funciones para contar tokens?

Para obtener un mejor control sobre la fragmentación, se pueden usar funciones diseñadas para contar el número de tokens en un documento o una cadena específica. Esto permite adaptar la segmentación según la longitud del contenido y las demandas del modelo.

Ejemplo de código:

# Función para contar tokens
def contar_tokens(texto):
    # Lógica para contar tokens
    pass

# Aplicación de la función en un documento
numero_de_tokens = contar_tokens(mi_documento)

¿Por qué es importante la distribución de tokens?

Entender cómo se distribuyen los tokens a lo largo de los documentos es esencial para evitar cortes no deseados durante la fragmentación. Usar herramientas como pandas permite obtener estadísticas precisas sobre esta distribución.

  • Ventajas:
    • Identificar documentos extremadamente largos o cortos que pueden influir en la segmentación.
    • Ajustar parámetros de corte de forma informada basándose en datos reales.

¿Cómo se pueden realizar cortes más efectivos con contexto?

Existen diversas estrategias para aplicar fragmentación con conocimiento de contexto, como el uso de heathers y caracteres delimitadores específicos. Esto ayuda a separar el texto de una manera que respete la estructura lógica y semántica.

¿Cómo utilizar la fragmentación basada en heathers?

La fragmentación basada en heathers consiste en identificar y usar los títulos o encabezados (ej. h1, h2) para delimitar el contenido. Al hacerlo, se logra que cada fragmento mantenga su coherencia temática.

Ejemplo de código:

# Usar Markdown headers para fragmentar
from mi_paquete import MarkdownHeaderTextSplitter

splitter = MarkdownHeaderTextSplitter()
documentos_fragmentados = splitter.split(mi_documento)

Consideraciones:

  • Asegurar que los títulos se reflejen en la meta data de los documentos.
  • Evaluar si hay errores de reconocimiento de heathers dentro del código.

¿Cuánto contexto es necesario entre fragmentos?

Determinar el número adecuado de tokens y overlays (superposición de tokens entre fragmentos) es crítico. Un análisis cuidadoso te permitirá balancear entre fragmentación y cohesión textual.

  • Parámetros comunes:
    • Tokens máximo por fragmento (ej. 1000 tokens).
    • Overlap comúnmente de 50 tokens para mantener continuidad.

¿Cómo se pueden aplicar técnicas avanzadas de fragmentación con contexto?

Para textos más complejos o especializados, como los documentos de código, se pueden usar funciones más avanzadas que consideran las características del lenguaje como delimitadores específicos y bloques de comentarios.

¿Cómo optimizar para documentos de lenguaje específico?

Al trabajar con textos de programación o documentos técnicos que usan lenguaje de marcado o código, es fundamental considerar caracteres específicos y la estructura del documento.

  • Ejemplo de aplicación:
    • Identificar bloques de código y comentarios que actúan como delimitadores.
    • Usar herramientas para segmentar respetando la lógica del contenido.

Nota final: Si bien las herramientas automáticas facilitan gran parte del proceso, se recomienda siempre verificar y ajustar manualmente los fragmentos para casos en los que la precisión es crítica.

Aportes 6

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Mucha de la información de este curso, completa muy bien con el curso de chatbot con langchain también de platzi: <https://platzi.com/cursos/langchain-chatbots/>
Profesor, en los recursos no está la lectura recomendada
Super Interesante, tener en cuenta el contexto tanto de los modelos que vamos a usar, (la cantidad de tokens, la distribución de los mismos en los documentos) como la data que vamos a estar depurando.
Falta adjuntar la lectura sobre cómo elegir el chunk\_overlap usando RecursiveCharacterTextSplitter
Para quienes quieren explorar un poco más sobre splitter, el siguiente enlace: <https://github.com/FullStackRetrieval-com/RetrievalTutorials/blob/main/5_Levels_Of_Text_Splitting.ipynb>
como puedo hacer un splitting de un archivo CSV que tiene varias columnas para que me pueda devolverl 100 documentos? para que el usuario pueda preguntar: "Dame todos los nombres de los promotores regulados por sigma54" porque actualmente nomas me devuelven 15 como máximo