Clasificación de Tickets con Procesamiento de Lenguaje Natural

Clase 8 de 35Curso de MLOPS: Despliegue de Modelos de Machine Learning

Contenido del curso

Fundamentos de MLOps y tracking de modelos

Tracking del ciclo de vida de modelos de machine learning

Despliegue de modelo de machine learning

Resumen

Cuando una empresa recibe miles de tickets de soporte cada día, clasificarlos manualmente deja de ser viable. Aquí es donde el procesamiento de lenguaje natural (NLP) se convierte en una herramienta fundamental para automatizar la categorización de esas solicitudes en tópicos como cuentas bancarias, hipotecas o préstamos. A continuación se explica el flujo completo de preparación de datos que permite llegar a un modelo de machine learning listo para clasificar tickets de forma automática.

¿Qué problema de negocio resuelve la clasificación automática de tickets?

El data set con el que se trabaja contiene registros donde un cliente se comunica con una empresa, genera un ticket y describe con texto libre la situación que experimentó [0:10]. Las columnas más relevantes son el texto del ticket y la etiqueta que indica la categoría del problema. El reto es que existen aproximadamente setenta y ocho etiquetas distintas [8:48], lo que representa un obstáculo para cualquier modelo predictivo porque tantas dimensiones diluyen la capacidad de generalización.

Por eso, antes de entrenar un modelo, es necesario:

  • Procesar y limpiar el texto original.
  • Reducir la cantidad de etiquetas a un número manejable.
  • Generar representaciones numéricas que el modelo pueda consumir.

¿Cómo funciona el módulo de text processing?

El primer paso del pipeline vive en una clase llamada TextProcessing [1:28]. Esta clase agrupa varios métodos que transforman el texto crudo en información útil.

¿Qué transformaciones aplica al texto?

  • Tokenización: divide cada frase en unidades mínimas llamadas tokens [1:48].
  • Remoción de stop words: elimina palabras vacías según el idioma configurado en el constructor [1:55].
  • Lematización: reduce cada token a su forma base o lema para unificar variantes de una misma palabra [2:01].
  • POS tagging: asigna una categoría gramatical a cada token, lo que permite filtrar o ponderar según su función sintáctica [2:07].

Todos estos pasos se encadenan en un método llamado text_processing que ejecuta el pipeline de principio a fin [2:13]. Además, la clase incluye métodos auxiliares para leer archivos JSON o CSV, renombrar columnas, aplicar feature engineering básico y eliminar datos faltantes [2:30]. Todo se integra en un método run que orquesta la ejecución completa y retorna la data procesada lista para la siguiente etapa [2:45].

Un detalle importante es el tratamiento de información sensible. Cuando el texto original contiene datos personales como identificaciones, números o fechas, estos se reemplazan con caracteres "X" en mayúscula [7:18]. Esto garantiza la protección de datos sin perder el contexto semántico necesario para la clasificación.

¿Qué hace el módulo de feature extraction y cómo reduce las etiquetas?

Una vez que el texto está limpio, entra en juego la clase FeatureExtraction [3:18]. Su primer trabajo es convertir el corpus de texto en una representación vectorial mediante el TF-IDF Vectorizer [3:40], que pondera la importancia de cada término según su frecuencia en el documento y en todo el corpus.

¿Cómo se aplica topic modeling para reducir categorías?

Con setenta y ocho tópicos originales, muchos se solapan. El módulo utiliza un modelo llamado ENMF (Ensemble Non-negative Matrix Factorization) para agrupar etiquetas similares y proponer un número reducido de tópicos [4:12]. El número de componentes se define como parámetro de entrada y, en este caso, se reduce a tres categorías finales [5:12]:

  • Cuentas de banco y servicios.
  • Reportes de crédito.
  • Préstamos.

Cada registro del data set recibe un peso por cada tópico resultante. La columna Relevant Topics indica cuál tópico tiene mayor probabilidad para ese ticket [9:28]. Finalmente, un topic mapping traduce los índices numéricos a strings legibles para facilitar la interpretación [5:22].

¿Por qué es importante el análisis exploratorio previo?

Antes de modelar, un EDA (Exploratory Data Analysis) permite entender la distribución de los datos [7:42]. El notebook incluido muestra el texto original frente al texto procesado, la distribución de las etiquetas y análisis de bigramas y trigramas, que son paquetes de dos o tres tokens consecutivos que revelan patrones frecuentes en cada categoría [8:20].

La ejecución práctica es directa desde la terminal: primero se corre python utils/text_processing [6:30] y luego python utils/feature_extraction [7:00]. El segundo módulo es considerablemente más rápido porque solo modela las etiquetas y genera las nuevas features con los pesos del modelo de reducción de tópicos.

Con estos datos ya procesados y las etiquetas reducidas, el siguiente paso natural es profundizar en el modelado de datos y el tracking de experimentos. Si has trabajado con clasificación de texto en tus proyectos, comparte qué técnicas de reducción de dimensionalidad te han dado mejores resultados.