Saltearse al contenido

Natural Language Text Splitter

El Natural Language Text Splitter es una herramienta sencilla que toma un bloque de texto y lo divide en partes más pequeñas, respetando los límites naturales del lenguaje (párrafos, oraciones, etc.). Esto facilita que otras partes del sistema, como modelos de IA o procesos de análisis, trabajen con fragmentos manejables y coherentes.

¿Cómo funciona?

Internamente el componente utiliza la clase NLTKTextSplitter de la librería langchain_text_splitters.

  1. Idioma: Se especifica el idioma del texto (por defecto “English”). El splitter usa reglas lingüísticas específicas para ese idioma.
  2. Separador: Se define el carácter o secuencia de caracteres que indica dónde se pueden dividir los fragmentos. Si no se indica, se usa el salto de línea doble (\n\n).
  3. Tamaño del fragmento: Se indica el número máximo de caracteres que puede contener cada fragmento.
  4. Superposición: Se indica cuántos caracteres deben repetirse entre fragmentos consecutivos, lo que ayuda a mantener contexto entre partes.
  5. Procesamiento local: Todo el trabajo se realiza en el servidor donde se ejecuta Nappai; no se envían datos a servicios externos.

Entradas

  • Input
    El texto completo que deseas dividir. Puede ser un documento o cualquier bloque de datos de texto.

  • Chunk Overlap
    El número de caracteres que se repetirán entre fragmentos consecutivos. Ayuda a mantener contexto entre partes.

  • Chunk Size
    El número máximo de caracteres que tendrá cada fragmento después de la división.

  • Language
    El idioma del texto. El valor por defecto es “English”. Se admite varios idiomas para mejorar el reconocimiento de límites naturales.

  • Separator
    El carácter o secuencia de caracteres que se usarán como delimitador al dividir el texto. Si se deja vacío, se usa el salto de línea doble (\n\n).

Salidas

  • Data
    Devuelve una colección de fragmentos de texto. Cada fragmento se crea mediante el método split_data y puede ser usado directamente en otros componentes, como cargadores de documentos o modelos de lenguaje.

Ejemplo de Uso

Supongamos que tienes un artículo de 5 000 caracteres y quieres prepararlo para un modelo de IA que procesa bloques de 1 000 caracteres con una superposición de 200 caracteres.

  1. Arrastra el componente Natural Language Text Splitter al flujo.
  2. Conecta la salida de tu componente de carga de documentos (o pega el texto directamente en el campo Input).
  3. Configura los parámetros:
    • Chunk Size: 1000
    • Chunk Overlap: 200
    • Language: English (o el idioma que corresponda)
    • Separator: deja vacío para usar el salto de línea doble.
  4. Ejecuta el flujo.
  5. La salida Data contendrá 5 fragmentos (aproximadamente) que puedes pasar a un modelo de IA o a otro proceso de análisis.

Componentes Relacionados

  • Text Splitter – Versión genérica sin configuración de idioma.
  • Document Loader – Carga documentos desde archivos o bases de datos antes de ser procesados.
  • LLM – Modelo de lenguaje que consume los fragmentos generados.
  • Embedding Generator – Convierte los fragmentos en vectores para búsqueda semántica.

Consejos y Mejores Prácticas

  • Ajusta el Chunk Size según la capacidad de tu modelo de IA; fragmentos demasiado grandes pueden exceder el límite de tokens.
  • Usa Chunk Overlap para evitar perder contexto entre fragmentos, especialmente en textos narrativos.
  • Selecciona el Language correcto para que el splitter reconozca adecuadamente los límites de oración y párrafo.
  • Si tu texto contiene saltos de línea especiales, considera definir un Separator personalizado.
  • Revisa los fragmentos resultantes antes de pasarlos a modelos de IA para asegurarte de que no se corten palabras clave importantes.

Consideraciones de Seguridad

  • El componente procesa los datos localmente; no se envían a servicios externos.
  • Asegúrate de que el texto que introduces no contenga información sensible que no deba ser compartida con terceros.
  • Si trabajas con datos regulados, verifica que el flujo completo cumpla con las políticas de retención y anonimización de tu organización.