Saltearse al contenido

Text Classifier

Text Classifier aprende a clasificar textos a partir de ejemplos que ya tienes clasificados: correos marcados como spam o no, opiniones etiquetadas como positivas o negativas, tickets asignados a una cola. Guarda lo aprendido como un modelo con nombre y, después, asigna una categoría a cada texto nuevo, con la probabilidad de cada una.

Es útil cuando tienes un historial de textos ya clasificados y quieres que los nuevos se clasifiquen igual, sin escribir reglas. No necesita un modelo de IA ni credenciales: todo ocurre dentro de NappAI.

Cuándo usarlo

  • Separar los correos de spam de los que hay que atender.
  • Conocer si las opiniones de tus clientes son positivas, negativas o neutras.
  • Enviar cada ticket de soporte a su cola (soporte, ventas, facturación) a partir de cómo se repartieron los anteriores.
  • Detectar la intención de un mensaje: comprar, cancelar, pedir información o reclamar.
  • Ordenar documentos por tipo: factura, contrato, currículum.

Cómo se trabaja

El campo Operation decide qué hace el componente en cada ejecución:

  1. Train: aprende de tus ejemplos clasificados y guarda el clasificador con el nombre de Model Name.
  2. Predict: aplica un clasificador guardado a textos nuevos.
  3. Evaluate: compara las categorías que propone un clasificador guardado con las categorías reales de un conjunto de ejemplos y devuelve medidas de acierto.

Los clasificadores entrenados se guardan en tu almacenamiento, en la sección Clasificadores de texto. Desde allí puedes descargarlos, borrarlos o subirlos a otro entorno (consulta Subir un modelo entrenado).

Configuración

Los campos cambian según la operación elegida.

CampoQué hace
Operation (obligatorio)Train, Predict o Evaluate. Por defecto: Train.
DataUna lista de filas de datos; conéctala desde una consulta a base de datos, una llamada a una API o un CSV. En Train (obligatorio), son los ejemplos: cada fila con el texto y su categoría correcta. En Evaluate (obligatorio), ejemplos con el mismo formato para medir el acierto. En Predict es opcional: conéctalo para clasificar muchos textos a la vez, con la misma columna de texto que en el entrenamiento.
TextSolo en Predict. Un único texto para clasificar, por ejemplo el cuerpo de un correo que llega por un webhook. Si lo rellenas, se usa este texto; si lo dejas vacío, se clasifican los textos de Data.
Model Name (obligatorio)En Train, el nombre con el que se guarda el clasificador; se propone uno con la fecha y la hora, y puedes cambiarlo por algo reconocible como spam_v1. No puede coincidir con el de un clasificador que ya tengas. En Predict y Evaluate, es un desplegable con tus clasificadores entrenados; usa el botón de actualizar si acabas de entrenar uno.
Text Column (obligatorio en Train)El nombre de la columna de Data que contiene el texto, por ejemplo cuerpo o comentario. Escríbelo o arrástralo; debe coincidir exactamente, incluidas mayúsculas y minúsculas. Predict y Evaluate usan la columna guardada con el clasificador.
Label Column (obligatorio en Train y Evaluate)El nombre de la columna que contiene la categoría de cada fila, por ejemplo cola o sentimiento. Hacen falta al menos dos categorías distintas.
Algorithm (obligatorio en Train)El método de aprendizaje: Logistic Regression (por defecto, la opción equilibrada), Naive Bayes (muy rápido, aunque algo menos preciso) o Linear SVM (suele acertar más con muchos ejemplos, pero tarda más en entrenar).

Opciones avanzadas

Solo aparecen en Train.

CampoQué hace
Test SizeQué parte de los ejemplos se aparta para medir el acierto en lugar de usarse para aprender. Por defecto: 0,2 (el 20 %). Con 0 se aprende con todo y no se mide sobre ejemplos apartados.
Max Vocabulary SizeCuántas palabras distintas como máximo tiene en cuenta el clasificador. Por defecto: 20.000. Súbelo si tienes muchos textos o textos en varios idiomas; con 0 no hay límite.
Max N-gram SizeSi aprende de palabras sueltas o también de grupos de palabras. Con 1 (por defecto), palabras sueltas; con 2, también parejas como «dinero gratis»; con 3, también grupos de tres. Valores más altos pueden acertar más, pero el entrenamiento tarda más.

Resultado

La salida Result devuelve datos que puedes conectar a cualquier componente que trabaje con datos, por ejemplo un enrutador condicional, una base de datos o un agente.

  • Train: un resumen con el nombre del clasificador, las columnas usadas, el número de ejemplos, las categorías que ha aprendido y las medidas de acierto: la proporción de aciertos (accuracy) y otras medidas de calidad (precision, recall, f1).
  • Predict: una fila por texto con el texto (text), la categoría asignada (prediction) y la probabilidad de cada categoría (probabilities).
  • Evaluate: las mismas medidas de acierto, calculadas sobre los ejemplos que has conectado.

Ejemplo

La tienda online Casa Olmo quiere repartir automáticamente los mensajes de su formulario de contacto:

  1. Exporta los últimos mensajes ya atendidos, con las columnas mensaje y departamento, y los convierte en una lista de datos con CSV to Data List.
  2. Con Train, Text Column mensaje, Label Column departamento y Model Name contacto_v1, entrena el clasificador.
  3. En el flujo que recibe el formulario, otro Text Classifier con Predict y el modelo contacto_v1 recibe el mensaje en Text. El resultado indica el departamento y un enrutador envía el mensaje al buzón correspondiente.

Buenas prácticas

  • Cuantos más ejemplos por categoría, mejor. Con pocos ejemplos de una categoría, el clasificador la reconocerá peor.
  • Evalúa con ejemplos nuevos, distintos de los que usaste para entrenar, para saber cuánto acierta de verdad.
  • Para volver a entrenar, usa un nombre nuevo (por ejemplo v2) o borra antes el clasificador anterior desde el almacenamiento: si el nombre ya existe, el entrenamiento se detiene con un error para no sobrescribirlo.
  • Si no tienes ejemplos clasificados, usa Laya, que decide a partir de una pregunta y la descripción de cada respuesta, sin entrenamiento.

Componentes relacionados

  • Laya: clasificación sin ejemplos previos, a partir de una pregunta.
  • Predictive Model: predicciones a partir de datos en forma de tabla.
  • Data Conditional Router: para enviar cada texto por un camino distinto según su categoría.