7 técnicas de clasificación de texto para cualquier escenario

libros abiertos sobre una mesa
Foto por Rey Siete

Agregue LLM a su caja de herramientas de clasificación de texto

Vivien Tran Thien
datos de las trincheras

Clasificación de texto consiste en categorizar un pasaje de texto en varias etiquetas predefinidas. Es una de las técnicas de procesamiento de lenguaje natural (NLP) más útiles y los casos de uso típicos incluyen el enrutamiento de correo electrónico, el análisis de opiniones de los clientes, el filtrado de spam, la detección de toxicidad, etc. En la práctica, las circunstancias pueden diferir enormemente de un caso de uso a otro. En particular:

  • datos etiquetados puede ser abundante, escasa o simplemente inexistente;
  • El vocabulario utilizados en los textos y etiquetas dirigidas tal vez común o muy específico del contexto de una organización en particular;
  • La organización que implementa el caso de uso puede tener experiencia limitada o extensa en PNL.

En esta publicación de blog, presentaremos Siete poderosas técnicas de clasificación de texto para adaptarse a todas estas situaciones. Veremos cómo funcionan en un conjunto de datos de reseñas de productos e ilustraremos cómo se pueden implementar en Dataiku.

Técnicas de clasificación de texto discutidas en esta publicación de blog

Vectorización dispersa y modelo clásico de aprendizaje automático (ML)

Un enfoque simple para la clasificación de texto es convertir pasajes de texto en vectores y luego usar algoritmos de ML estándar, como regresión logística o modelos basados ​​en árboles. La pregunta clave entonces se convierte en: ¿Cómo se transforma un pasaje de texto en un vector?

TF-FDI (o frecuencia de término — frecuencia de documento inversa) es una forma de lograr esta vectorización. Devuelve un vector con una dimensión para cada palabra en un vocabulario dado. Cada componente de este vector refleja la frecuencia de la palabra correspondiente en el texto de entrada en comparación con toda la colección de textos.

Vectorización dispersa con TF-IDF (izquierda), vectorización densa con incrustaciones de oraciones (derecha)
Vectorización dispersa con TF-IDF (izquierda), vectorización densa con incrustaciones de oraciones (derecha)

Vectorización Densa y Modelo ML Clásico

TF-IDF tiene varios inconvenientes. No considera el orden de las palabras en el texto e ignora la similitud semántica entre palabras. Tampoco distingue entre los diversos significados de una palabra polisémica (p. ej., «sonido» como en «un sonido fuerte», «suenan correctamente» o «una propuesta de sonido»).

Un enfoque más efectivo, en particular si el conjunto de datos de entrenamiento es relativamente pequeño, es usar las representaciones vectoriales (o incrustaciones de oraciones) obtenido de un modelo de aprendizaje profundo preentrenado como BERT.

Ajuste fino de un modelo de aprendizaje profundo preentrenado

El enfoque anterior aprovecha un modelo de aprendizaje profundo congelado previamente entrenado en una gran colección de textos. Se pueden lograr mayores ganancias de rendimiento ajustando este modelo en la tarea específica en cuestión.

Inferencia de lenguaje natural

En el configuración de tiro cero, tenemos la tarea de clasificar textos de clases nunca antes vistas y no hay ningún ejemplo de capacitación disponible. Afortunadamente, aún podemos aprovechar los grandes modelos entrenados en conjuntos de datos de entrenamiento masivos y diversos. Por ejemplo, un enfoque de tiro cero aprovecha inferencia del lenguaje natural modelos

En una tarea de inferencia de lenguaje natural, se nos da una premisa y un hipótesis y necesitamos determinar si la premisa implica, contradice o es neutral con respecto a la hipótesis. Supongamos que tenemos un modelo entrenado en inferencia de lenguaje natural. ¿Cómo podemos usarlo para nuestra tarea de clasificación de texto? Simplemente podemos tomar el pasaje de texto para clasificarlo como premisa y definir una hipótesis por clase, como “Esta revisión es sobre teléfonos celulares y accesorios”, “Esta revisión es sobre música digital”, etc.

ejemplo de tarea de inferencia de lenguaje natural

Para todas las combinaciones de la premisa y una hipótesis, solo necesitamos usar un modelo ya afinado en una inferencia de lenguaje natural tarea de evaluar en qué medida la premisa implica la hipótesis y seleccionar la clase con la puntuación más alta.

Aprendizaje en contexto con ChatGPT

Un enfoque alternativo implica un gran autorregresivo modelo de lenguaje como GPT-3, GPT-4 o ChatGPT. Los modelos de lenguaje autorregresivos son modelos que estiman la probabilidad del próximo token (una palabra o parte de una palabra) dados todos los tokens anteriores. Esto les permite generar textos creíbles y, si han sido entrenados a una escala lo suficientemente grande, pueden realizar tareas de PNL de manera efectiva incluso sin ejemplos de entrenamiento.

Para una tarea de clasificación de texto, podemos crear un “inmediato” como a continuación, agregue el texto para clasificar y solicite un modelo de lenguaje autorregresivo para generar las siguientes palabras. Con suerte, las siguientes palabras serán exactamente el nombre de una de las clases objetivo.

aviso instanciado con texto de entrada

En la práctica, el modelo de lenguaje puede desviarse de estas instrucciones. Por ejemplo, puede:

  • Abstenerse de elegir una de las etiquetas prescritas, por ejemplo, “Desconocido (información insuficiente para clasificar)”;
  • Inventar nuevas etiquetas, por ejemplo, «Accesorios para automóviles»;
  • Agregue detalles no solicitados, por ejemplo, «Industrial y científico (filamento para impresión 3D)» en lugar de solo «Industrial y científico».

Las etiquetas pronosticadas deben procesarse posteriormente para evitar tales valores no válidos.

Aprendizaje en contexto con ChatGPT

En el configuración de pocos disparossuponemos que solo tenemos un algunos ejemplos de entrenamiento de cada clase. Podemos aprovecharlos fácilmente con modelos de lenguaje autorregresivos. Para esto solo necesitamos incluir algunos de estos ejemplos directamente en el indicador:

aprendizaje en contexto con ChatGPT

AjusteFit

AjusteFit es otro enfoque propuesto en 2022 para la configuración de pocos disparos. Es bastante similar al método descrito anteriormente que consistía en extraer representaciones densas con un modelo NLP previamente entrenado y entrenar un clasificador superficial en estas representaciones. La única diferencia es que el modelo de PNL preentrenado se ajusta con una pérdida de contraste.

Probamos estos enfoques en una pequeña muestra del conjunto de datos de Amazon Reviews con 1400 reseñas distribuidas uniformemente en siete categorías de productos («Teléfonos móviles y accesorios», «Música digital», «Electrónica», «Industrial y científico», «Productos de oficina» “Software” y “Juguetes y Juegos”). Por ejemplo, una revisión categorizada como «Teléfonos celulares y accesorios» es:

No puedo decir suficientes cosas buenas. Se ajusta perfectamente y proporciona una gran protección en todos los sentidos. Buen agarre pero se desliza fácilmente en el bolsillo. Realmente se suma a la sensación de calidad del Moto G 2014. Tenía el rojo y se ve nítido. Muy recomendable.

Obtuvimos los siguientes resultados:

resultados del experimento

No hicimos esfuerzos particulares para optimizar los hiperparámetros y es solo un pequeño conjunto de datos. Entonces no deberíamos derivar conclusiones generales sólidas de estos resultados. Todavía podemos señalar que:

  • ChatGPT y, en general, los enfoques de pocos disparos y cero disparos funcionan notablemente bien dado el número limitado de ejemplos de entrenamiento. Ciertamente se beneficiaron del hecho de que esta tarea de clasificación de texto no requiere conocimientos específicos del dominio.
  • incrustaciones de oraciones obtenido de un codificador de texto congelado produce aproximadamente el mismo rendimiento predictivo que un modelo ajustado. Esto probablemente se deba a la limitada optimización de hiperparámetros.
  • Más allá del rendimiento predictivo, otros criterios y restricciones deben tenerse en cuenta para evaluar estos enfoques. Por ejemplo, aprovechar ChatGPT requiere una conexión a Internet y el uso de una API de terceros, mientras que se necesita más experiencia y recursos informáticos para ajustar un modelo autohospedado.

A proyecto dataiku en la galería de Dataiku muestra cómo implementar fácilmente estas técnicas de clasificación de texto. Cuatro de ellos se pueden usar completamente a través de la interfaz visual de usuario, sin código. Más allá de la capacitación y la evaluación de los diversos enfoques, el proyecto también ilustra:

  • Cómo explorar el conjunto de datos identificando las palabras más comunes por clase o visualizando ejemplos de entrenamiento;
  • Cómo implementar el enfoque de ajuste fino con MLFlow;
  • Cómo comparar los resultados de los distintos modelos;
  • Cómo puntúa textos de forma interactiva, identificar las palabras más influyentes, y visualizar ejemplos mal clasificados.

Este proyecto se puede descargar y reutilizar con sus propios datos.

Captura de pantalla del producto Dataiku del proyecto

Siempre que nos enfrentemos a una tarea de clasificación de texto, podemos confiar en un rica caja de herramientas de poderosas técnicas de clasificación de texto. Podemos elegir el método más apropiado según las circunstancias del caso de uso, como la cantidad de ejemplos de entrenamiento, el dominio, los recursos disponibles y el rendimiento predictivo objetivo.

Datos permite a los profesionales de datos y a las partes interesadas del negocio implementar rápidamente estos diversos enfoques y también a cubrir todos los pasos de un proyecto de clasificación de textodesde la exploración de datos hasta una interfaz de usuario que incorpora las predicciones de nuestro modelo.

Gracias a Caroline Boudier y Nathan Bry por sus contribuciones al proyecto de demostración de Dataiku.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio