talón ¿Cómo funciona la clasificación de texto? - Unite.AI
Contáctanos
Clase magistral de IA:

AI 101

¿Cómo funciona la clasificación de texto?

mm
Actualizado on

La clasificación de textos es el proceso de analizar secuencias de texto y asignarles una etiqueta, agrupándolas según su contenido. La clasificación de texto es la base de casi cualquier tarea de inteligencia artificial o aprendizaje automático que implique procesamiento del lenguaje natural (PLN). Con la clasificación de texto, un programa informático puede realizar una amplia variedad de tareas diferentes, como reconocimiento de spam, análisis de opiniones y funciones de chatbot. ¿Cómo funciona exactamente la clasificación de texto? ¿Cuáles son los diferentes métodos para llevar a cabo la clasificación de textos? Exploraremos las respuestas a estas preguntas a continuación.

Definición de clasificación de texto

Es importante tomarse un tiempo y asegurarse de que entendemos que clasificación de texto es, en general, antes de profundizar en los diferentes métodos de clasificación de textos. La clasificación de texto es uno de esos términos que se aplica a muchas tareas y algoritmos diferentes, por lo que es útil asegurarse de que entendemos el concepto básico de clasificación de texto antes de pasar a explorar las diferentes formas en que se puede llevar a cabo.

Cualquier cosa que implique crear diferentes categorías para el texto y luego etiquetar diferentes muestras de texto como estas categorías, puede considerarse una clasificación de texto. Siempre que un sistema lleve a cabo estos pasos básicos, puede considerarse un clasificador de texto, independientemente del método exacto utilizado para clasificar el texto y de cómo se aplique finalmente el clasificador de texto. La detección de correo no deseado, la organización de documentos por tema o título y el reconocimiento de la opinión de una reseña de un producto son ejemplos de clasificación de texto porque se logran tomando el texto como entrada y generando una etiqueta de clase para ese fragmento de texto.

¿Cómo funciona la clasificación de texto?

Foto: Quinn Dombrowski a través de Flickr, CC BY SA 2.0, (https://www.flickr.com/photos/quinnanya/4714794045)

La mayoría de los métodos de clasificación de texto se pueden colocar en una de tres categorías diferentes: métodos basados ​​en reglas o métodos de aprendizaje automático.

Métodos de clasificación basados ​​en reglas

Los métodos de clasificación de texto basados ​​en reglas operan mediante el uso de reglas lingüísticas diseñadas explícitamente. El sistema utiliza las reglas creadas por el ingeniero para determinar a qué clase debe pertenecer un fragmento de texto determinado, buscando pistas en forma de elementos de texto semánticamente relevantes. Cada regla tiene un patrón que el texto debe coincidir para ser colocado en la categoría correspondiente.

Para ser más concretos, supongamos que desea diseñar un clasificador de texto capaz de distinguir temas comunes de conversación, como el clima, las películas o la comida. Para permitir que su clasificador de texto reconozca la discusión sobre el clima, puede indicarle que busque palabras relacionadas con el clima en el cuerpo de las muestras de texto que se están alimentando. Tendría una lista de palabras clave, frases y otros patrones relevantes que podrían usarse para distinguir el tema. Por ejemplo, puede indicarle al clasificador que busque palabras como "viento", "lluvia", "sol", "nieve" o "nube". Luego, podría hacer que el clasificador revise el texto ingresado y cuente la cantidad de veces que estas palabras aparecen en el cuerpo del texto y, si aparecen con más frecuencia que las palabras relacionadas con películas, clasificaría el texto como perteneciente a la clase meteorológica.

La ventaja de los sistemas basados ​​en reglas es que sus entradas y salidas son predecibles e interpretables por humanos, y pueden mejorarse mediante la intervención manual del ingeniero. Sin embargo, los métodos de clasificación basados ​​en reglas también son algo frágiles y, a menudo, tienen dificultades para generalizar porque solo pueden adherirse a los patrones predefinidos que se han programado. Por ejemplo, la palabra "nube" podría referirse a la humedad en el cielo, o podría estar refiriéndose a una nube digital donde se almacenan los datos. Es difícil para los sistemas basados ​​en reglas manejar estos matices sin que los ingenieros dediquen una buena cantidad de tiempo tratando de anticipar y ajustar manualmente estas sutilezas.

Sistemas de aprendizaje automático

Como se mencionó anteriormente, los sistemas basados ​​en reglas tienen limitaciones, ya que sus funciones y reglas deben estar preprogramadas. Por el contrario, los sistemas de clasificación basados ​​en el aprendizaje automático funcionan mediante la aplicación de algoritmos que analizan conjuntos de datos en busca de patrones asociados con una clase en particular.

Los algoritmos de aprendizaje automático se alimentan de instancias preetiquetadas/preclasificadas que se analizan en busca de características relevantes. Estas instancias preetiquetadas son los datos de entrenamiento.

El clasificador de aprendizaje automático analiza los datos de entrenamiento y aprende patrones asociados con las diferentes clases. Después de esto, las instancias invisibles se despojan de sus etiquetas y se envían al algoritmo de clasificación que asigna una etiqueta a las instancias. Luego, las etiquetas asignadas se comparan con las etiquetas originales para ver qué tan preciso fue el clasificador de aprendizaje automático, midiendo qué tan bien el modelo aprendió qué patrones predicen qué clases.

Los algoritmos de aprendizaje automático funcionan mediante el análisis de datos numéricos. Esto significa que para usar un algoritmo de aprendizaje automático en datos de texto, el texto debe convertirse a un formato numérico. Existen varios métodos para codificar datos de texto como datos numéricos y crear métodos de aprendizaje automático en torno a estos datos. Cubriremos algunas de las diferentes formas de representar datos de texto a continuación.

bolsa de palabras

Bolsa de palabras es uno de los enfoques más utilizados para codificar y representar datos de texto. El término "bolsa de palabras" proviene del hecho de que básicamente se toman todas las palabras de los documentos y se colocan todas en una "bolsa" sin prestar atención al orden de las palabras o la gramática, prestando atención únicamente a la frecuencia de palabras en la bolsa. Esto da como resultado una matriz larga, o vector, que contiene una sola representación de todas las palabras en los documentos de entrada. Entonces, si hay un total de 10000 palabras únicas en los documentos de entrada, los vectores de características tendrán una longitud de 10000 palabras. Así es como se calcula el tamaño de la bolsa de palabras/vector de características.

Foto: gk_ vía Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)

Una vez que se ha determinado el tamaño del vector de características, a cada documento de la lista de documentos totales se le asigna su propio vector lleno de números que indican cuántas veces aparece la palabra en cuestión en el documento actual. Esto significa que si la palabra "comida" aparece ocho veces dentro de un documento de texto, ese vector de características/matriz de características correspondiente tendrá un ocho en la posición correspondiente.

Dicho de otra manera, todas las palabras únicas que aparecen en los documentos de entrada se apilan en una sola bolsa y luego cada documento obtiene un vector de palabra del mismo tamaño, que luego se completa con la cantidad de veces que aparecen las diferentes palabras en el documento. .

Los conjuntos de datos de texto suelen contener una gran cantidad de palabras únicas, pero la mayoría de ellas no se usan con mucha frecuencia. Por esta razón, la cantidad de palabras utilizadas para crear el vector de palabras normalmente se limita a un valor elegido (N) y luego la dimensión del vector de características será Nx1.

Frecuencia de término-Frecuencia de documento inversa (TF-IDF)

Otra forma de representar un documento basado en las palabras que contiene se llama Frecuencia de término-Frecuencia de documento inversa (TF-IDF). Un enfoque TF-IDF también crea un vector que representa el documento en función de las palabras que contiene, pero a diferencia de Bag-of-words, estas palabras son ponderado por algo más que su frecuencia. TF-IDF considera la importancia de las palabras en los documentos, tratando de cuantificar qué tan relevante es esa palabra para el tema del documento. En otras palabras, TF-IDF analiza la relevancia en lugar de la frecuencia y los recuentos de palabras en un vector de características se reemplazan por una puntuación TF-IDF que se calcula con respecto a todo el conjunto de datos.

Un enfoque TF-IDF opera calculando primero la frecuencia del término, la cantidad de veces que aparecen los términos únicos dentro de un documento específico. Sin embargo, TF-IDF también tiene cuidado de limitar la influencia de palabras extremadamente comunes como "el", "o" y "y", ya que estas "palabras vacías" son muy comunes pero transmiten muy poca información sobre el contenido del documento. Estas palabras deben descartarse, que es a lo que se refiere la parte de "frecuencia de documento inverso" de TF-IDF. Esto se hace porque cuantos más documentos aparecen en una palabra específica, menos útil es esa palabra para distinguirla de los demás documentos en la lista de todos los documentos. La fórmula que utiliza TF-IDF para calcular la importancia de una palabra está diseñada para preservar las palabras que son más frecuentes y semánticamente más ricas.

Los vectores de características creados por el enfoque TF-IDF contienen valores normalizados que suman uno, asignando a cada palabra un valor ponderado según lo calculado por la fórmula TF-IDF.

Incrustaciones de palabras

Incrustaciones de palabras son métodos de representación de texto que aseguran que las palabras con significados similares tengan representaciones numéricas similares.

Incrustaciones de palabras operar mediante la “vectorización” de palabras, lo que significa que representan palabras como vectores de valores reales en un espacio vectorial. Los vectores existen en una cuadrícula o matriz, y tienen dirección y longitud (o magnitud). Al representar palabras como vectores, las palabras se convierten en vectores compuestos por valores reales. Cada palabra se asigna a un vector, y las palabras que tienen un significado similar tienen una dirección y una magnitud similares. Este tipo de codificación hace posible que un algoritmo de aprendizaje automático aprenda relaciones complicadas entre palabras.

Las incrustaciones que representan diferentes palabras se crean con respecto a cómo se usan las palabras en cuestión. Debido a que las palabras que se usan de manera similar tendrán vectores similares, el proceso de creación de incrustaciones de palabras traduce automáticamente parte del significado que tienen las palabras. Un enfoque de bolsa de palabras, por el contrario, crea representaciones frágiles donde diferentes palabras tendrán representaciones diferentes incluso si se usan en contextos muy similares.

Como resultado, las incrustaciones de palabras son mejores para capturar el contexto de las palabras dentro de una oración.

Se utilizan diferentes algoritmos y enfoques para crear incrustaciones de palabras. Algunos de los métodos de incrustación de palabras más comunes y confiables incluyen: incrustación de capas, word2vec y GloVe.

Capas incrustadas

Una forma potencial de usar incrustaciones de palabras junto con un sistema de aprendizaje automático/aprendizaje profundo es utilizar una capa de incrustación. Las capas de incrustación son capas de aprendizaje profundo que convierten palabras en incrustaciones que luego se alimentan al resto del sistema de aprendizaje profundo. Las incrustaciones de palabras se aprenden a medida que la red se entrena para una tarea específica basada en texto.

En un enfoque de incrustación de palabras, las palabras similares tendrán representaciones similares y estarán más cerca entre sí que con palabras diferentes.

Para usar capas incrustadas, el texto debe ser preprocesado primero. El texto del documento debe codificarse en caliente y el tamaño del vector debe especificarse con anticipación. El texto one-hot se convierte luego en vectores de palabras y los vectores se pasan al modelo de aprendizaje automático.

Palabra2Vec

Palabra2Vec es otro método común de incrustar palabras. Word2Vec utiliza métodos estadísticos para convertir palabras en incrustaciones y está optimizado para su uso con modelos basados ​​en redes neuronales. Word2Vec fue desarrollado por investigadores de Google y es uno de los métodos de incrustación más utilizados, ya que produce incrustaciones ricas y útiles de manera confiable. Las representaciones de Word2Vec son útiles para identificar puntos en común semánticos y sintácticos en el lenguaje. Esto significa que las representaciones de Word2Vec capturan relaciones entre conceptos similares, siendo capaces de distinguir que el elemento común entre "Rey" y "Reina" es realeza y que "Rey" implica "masculinidad" mientras que Reina implica "Mujer".

Guante

GloVE, o vector global para la representación de palabras, se basa en los algoritmos de incrustación utilizados por Word2Vec. Los métodos de incrustación de GloVe combinan aspectos de Word2Vec y técnicas de factorización de matrices como el análisis semántico latente. La ventaja de Word2Vec es que puede capturar el contexto, pero como contrapartida captura pobremente las estadísticas globales de texto. Por el contrario, las representaciones vectoriales tradicionales son buenas para determinar estadísticas de texto globales, pero no son útiles para determinar el contexto de palabras y frases. GloVE se basa en lo mejor de ambos enfoques, creando contexto de palabras basado en estadísticas de texto globales.