Fundamentos de la IA
¿Cómo funciona la clasificación de texto?
La clasificación de texto es el proceso de analizar secuencias de texto y asignarles una etiqueta, poniéndolos en un grupo según su contenido. La clasificación de texto subyace a casi cualquier tarea de inteligencia artificial o aprendizaje automático que involucre procesamiento de lenguaje natural (NLP). Con la clasificación de texto, un programa de computadora puede realizar una amplia variedad de tareas diferentes como el reconocimiento de spam, el análisis de sentimiento y las funciones de chatbot. ¿Cómo funciona exactamente la clasificación de texto? ¿Cuáles son los diferentes métodos de realizar la clasificación de texto? Exploraremos las respuestas a estas preguntas a continuación.
Definiendo la clasificación de texto
Es importante tomar algún tiempo y asegurarnos de que entendemos qué es la clasificación de texto en general, antes de profundizar en los diferentes métodos de realizar la clasificación de texto. La clasificación de texto es uno de esos términos que se aplica a muchas tareas y algoritmos diferentes, así que es útil asegurarnos de que entendemos el concepto básico de la clasificación de texto antes de explorar las diferentes formas en que se puede realizar.
Cualquier cosa que involucre la creación de diferentes categorías para el texto y luego etiquetar diferentes muestras de texto como estas categorías, se puede considerar clasificación de texto. Siempre y cuando un sistema realice estos pasos básicos, se puede considerar un clasificador de texto, independientemente del método exacto utilizado para clasificar el texto y del uso final del clasificador de texto. Detectar spam en correos electrónicos, organizar documentos por tema o título y reconocer el sentimiento de una reseña de un producto son todos ejemplos de clasificación de texto porque se logran tomando texto como entrada y saliendo con una etiqueta de clase para ese 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 clasificar 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 a través del uso de reglas lingüísticas explícitamente diseñadas. El sistema utiliza las reglas creadas por el ingeniero para determinar a qué clase pertenece un 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 concreto, digamos que queremos diseñar un clasificador de texto capaz de distinguir temas de conversación comunes, como el clima, las películas o la comida. Para permitir que nuestro clasificador de texto reconozca la discusión del clima, podríamos decirle que busque palabras relacionadas con el clima en el cuerpo de las muestras de texto que se le proporcionan. Tendríamos una lista de palabras clave, frases y otros patrones relevantes que podrían usarse para distinguir el tema. Por ejemplo, podríamos instruir al clasificador para que busque palabras como “viento”, “lluvia”, “sol”, “nieve” o “nube”. Luego, podríamos tener el clasificador que revise el texto de entrada y cuente el número de veces que aparecen estas palabras en el cuerpo del texto, y si aparecen con más frecuencia que las palabras relacionadas con las películas, clasificaríamos el texto como perteneciente a la clase del clima.
La ventaja de los sistemas basados en reglas es que sus entradas y salidas son predecibles e interpretables por humanos, y se pueden mejorar a través de 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 a una nube digital donde se almacena datos. Es difícil para los sistemas basados en reglas manejar estas sutilezas sin que los ingenieros pasen mucho tiempo tratando de anticipar y ajustar estas sutilezas manualmente.
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 de texto basados en aprendizaje automático operan aplicando algoritmos que analizan conjuntos de datos en busca de patrones asociados con una clase 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 que están asociados con las diferentes clases. Después de esto, se les quitan las etiquetas a las instancias no vistas y se les alimentan al algoritmo de clasificación, que asigna a las instancias una etiqueta. Las etiquetas asignadas se comparan con las etiquetas originales para ver cuán precisa fue el clasificador de aprendizaje automático, evaluando cómo bien el modelo aprendió qué patrones predicen qué clases.
Los algoritmos de aprendizaje automático operan analizando datos numéricos. Esto significa que para utilizar un algoritmo de aprendizaje automático en datos de texto, el texto debe convertirse en un formato numérico. Hay varios métodos para codificar datos de texto como datos numéricos y crear métodos de aprendizaje automático alrededor de estos datos. Cubriremos algunos de los diferentes métodos para representar datos de texto a continuación.
Bolsa de palabras
Bolsa de palabras es uno de los enfoques más comúnmente 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 ponen en una “bolsa” sin prestar atención al orden de las palabras o la gramática, prestando atención solo a la frecuencia de las palabras en la bolsa. Esto da como resultado un largo vector o matriz que contiene una sola representación de todas las palabras en los documentos de entrada. Entonces, si hay 10,000 palabras únicas en total en los documentos de entrada, los vectores de características tendrán 10,000 palabras de largo. Esta es la forma en que se calcula el tamaño de la bolsa de palabras/vector de características.

Foto: gk_ a través de Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)
Después de que se ha determinado el tamaño del vector de características, cada documento en 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, el vector de características/ matriz de características correspondiente tendrá un ocho en la posición correspondiente.
En otras palabras, todas las palabras únicas que aparecen en los documentos de entrada se ponen en una bolsa y luego cada documento obtiene un vector de palabras del mismo tamaño, que se llena con el número de veces que aparecen las diferentes palabras en el documento.
Los conjuntos de datos de texto a menudo contienen un gran número de palabras únicas, pero la mayoría de ellas no se utilizan con mucha frecuencia. Por esta razón, el número de palabras utilizadas para crear el vector de palabras generalmente se limita a un valor elegido (N) y luego la dimensión del vector de características será Nx1.
Frecuencia de término – Frecuencia inversa de documento (TF-IDF)
Otra forma de representar un documento en función de las palabras que contiene es llamada Frecuencia de término – Frecuencia inversa de documento (TF-IDF). Un enfoque de TF-IDF también crea un vector que representa el documento en función de las palabras que contiene, pero a diferencia de la bolsa de palabras, estas palabras se pesan con más que solo 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 de TF-IDF opera calculando primero la frecuencia del término, el número de veces que los términos únicos aparecen dentro de un documento específico. Sin embargo, TF-IDF también se encarga de limitar la influencia que tienen las palabras extremadamente comunes como “el”, “o” y “y”, ya que estas “palabras de parada” son muy comunes pero no transmiten mucha información sobre el contenido del documento. Estas palabras necesitan ser descontadas, lo que se refiere a la parte “frecuencia inversa de documento” de TF-IDF. Esto se hace porque cuanto más documentos contengan una palabra específica, menos útil es esa palabra para distinguirlo de los demás documentos en la lista de todos los documentos. La fórmula que TF-IDF utiliza para calcular la importancia de una palabra está diseñada para preservar las palabras que son más frecuentes y semánticamente ricas.
Los vectores de características creados por el enfoque de TF-IDF contienen valores normalizados que suman uno, asignando a cada palabra un valor ponderado calculado por la fórmula de TF-IDF.
Incrustaciones de palabras
Incrustaciones de palabras son métodos de representar texto que garantizan que las palabras con significados similares tengan representaciones numéricas similares.
Las incrustaciones de palabras operan “vectorizando” las palabras, lo que significa que representan las palabras como vectores de valores reales en un espacio vectorial. Los vectores existen en una cuadrícula o matriz y tienen una dirección y una longitud (o magnitud). Al representar las palabras como vectores, las palabras se convierten en vectores compuestos por valores reales. Cada palabra se asigna a un vector y las palabras que son similares en significado tienen direcciones y magnitudes similares. Este tipo de codificación hace posible que un algoritmo de aprendizaje automático aprenda relaciones complicadas entre las palabras.
Las incrustaciones que representan diferentes palabras se crean en función de cómo se utilizan las palabras en cuestión. Debido a que las palabras que se utilizan de manera similar tendrán vectores similares, el proceso de crear 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 las palabras diferentes tendrán representaciones disímiles, incluso si se utilizan en contextos muy similares.
Como resultado, las incrustaciones de palabras son mejores para capturar el contexto de las palabras dentro de una oración.
Hay diferentes algoritmos y enfoques utilizados para crear incrustaciones de palabras. Algunos de los métodos de incrustación de palabras más comunes y confiables incluyen: capas de incrustación, Word2Vec y GloVe.
Capas de incrustación
Una forma potencial de utilizar incrustaciones de palabras junto con un sistema de aprendizaje automático/deep learning es utilizar una capa de incrustación. Las capas de incrustación son capas de deep learning que convierten las palabras en incrustaciones que se alimentan al resto del sistema de deep learning. Las incrustaciones de palabras se aprenden a medida que la red se entrena para una tarea de texto específica.

En un enfoque de incrustación de palabras, las palabras similares tendrán representaciones similares y estarán más cerca entre sí que de las palabras disímiles.
Para utilizar capas de incrustación, el texto necesita ser preprocesado primero. El texto en el documento debe codificarse de forma one-hot y el tamaño del vector debe especificarse de antemano. El texto one-hot se convierte en vectores de palabras y los vectores se pasan al modelo de aprendizaje automático.
Word2Vec
Word2Vec es otro método común de incrustación de palabras. Word2Vec utiliza métodos estadísticos para convertir las palabras en incrustaciones y se optimiza para su uso con modelos basados en redes neuronales. Word2Vec fue desarrollado por investigadores de Google (GOOGL ) y es uno de los métodos de incrustación más comúnmente utilizados, ya que produce incrustaciones útiles y ricas de manera confiable. Las representaciones de Word2Vec son útiles para identificar similitudes semánticas y sintácticas en el lenguaje. Esto significa que las representaciones de Word2Vec capturan relaciones entre conceptos similares, siendo capaces de distinguir que la similitud entre “Rey” y “Reina” es la realeza y que “Rey” implica “hombre” mientras que Reina implica “mujer”.
GloVe
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 de Componentes Latentes. La ventaja de Word2Vec es que puede capturar el contexto, pero como contrapartida, captura mal las estadísticas de texto globales. Por el contrario, las representaciones de vectores tradicionales son buenas para determinar las estadísticas de texto globales, pero no son útiles para determinar el contexto de las palabras y las frases. GloVe se basa en lo mejor de ambos enfoques, creando un contexto de palabras basado en estadísticas de texto globales.












