Introducción al análisis de sentimientos (minería de opiniones)

En la última década, el análisis de sentimientos (SA, sentiment analysis), también conocido como minería de opiniones (opinion mining), ha despertado un creciente interés. Resulta un gran reto para las tecnologías del lenguaje, ya que obtener buenos resultados es mucho más difícil de lo que muchos creen. La tarea de clasificar automáticamente un texto escrito en un lenguaje natural en un sentimiento positivo o negativo, opinión o subjetividad (Pang and Lee, 2008), es a veces tan complicada que incluso es difícil poner de acuerdo a diferentes anotadores humanos sobre la clasificación a asignar a un texto dado. La interpretación personal de un individuo es diferente de la de los demás, y además se ve afectada por factores culturales y experiencias propias de cada persona. Y la tarea es aún más difícil cuanto más corto sea el texto, y peor escrito esté, como es el caso de los mensajes en redes sociales como Twitter o Facebook.

Dos enfoques

El problema se ha abordado principalmente desde dos enfoques diferentes (Liu, 2012): técnicas de aprendizaje computacional (Pang, Lee, and Vaithyanathan, 2002) y aproximaciones semánticas (Turney, 2002).

Los enfoques semánticos se caracterizan por el uso de diccionarios de términos (lexicons) con orientación semántica de polaridad u opinión. Típicamente los sistemas preprocesan el texto y lo dividen en palabras, con la apropiada eliminación de las palabras de parada y una normalización lingüística por stemming o lematización, y luego comprueban la aparición de los términos del lexicon para asignar el valor de polaridad del texto mediante la suma del valores de polaridad de los términos. Típicamente los sistemas además incluyen un tratamiento más o menos avanzado de a) términos modificadores (como muy, poco, demasiado) que aumentan o reducen la polaridad del o los términos a los que acompañan, y b) términos inversores o negadores (como no, tampoco), que invierten la polaridad de los términos a los que afectan.

Por otra parte, los enfoques basados en aprendizaje computacional consisten en entrenar un clasificador usando un algoritmo de aprendizaje supervisado a partir de una colección de textos anotados, donde cada texto habitualmente se representa con un vector de palabras (bag of words), n-gramas o skip-grams, en combinación con otro tipo de características semánticas que intentan modelar la estructura sintáctica de las frases, la intensificación, la negación, la subjetividad o la ironía. Los sistemas utilizan diversas técnicas, aunque las más populares son los clasificadores basados en SVM (Support Vector Machines), Naive Bayes y KNN (K-Nearest Neighbor). En las investigaciones más recientes se han empezado a utilizar otras técnicas más avanzadas, como LSA (Latent Semantic Analisis) e incluso Deep Learning.

Pros y Contras

La ventaja principal de los enfoques semánticos es que los errores son relativamente sencillos de corregir, añadiendo cuantos términos fuera necesario, y se podría obtener una precisión tan alta como se quisiera, simplemente invirtiendo más tiempo en la construcción del lexicon. En este sentido, los enfoques basados en aprendizaje automático suelen ser una caja negra en la que corregir errores o añadir nuevo conocimiento es más complicado, y muchas veces sólo es posible ampliando la colección de textos y volviendo a entrenar el modelo.

Por otra parte, la ventaja de los enfoques basados en aprendizaje automático es que cuesta muy poco construir un analizador de sentimientos a partir de la colección de textos etiquetados, ya que la tarea de modelado reside en el algoritmo. Por ello es relativamente fácil construir clasificadores adaptados a un dominio determinado. En contraposición, el esfuerzo para construir un lexicon para un cierto dominio, empezando de cero, es muy elevado, porque se basa en mucho trabajo manual, así que en general son menos adaptables.

Existen numerosos foros nacionales o internacionales de evaluación de análisis de sentimientos. El más popular actualmente para inglés es SemEval. Nosotros mismos llevamos organizando anualmente desde 2012 el workshop TASS de análisis de sentimientos en el congreso de la SEPLN (Sociedad Española para el Procesamiento del Lenguaje Natural), orientado específicamente al español (Villena-Román et al, 2015). Todos estos foros están planteados estilo competición: se proporciona a los participantes una colección de textos etiquetados (training set) en un determinado dominio (más o menos generalista) que sirve para construir los sistemas, que luego se ejecutan sobre una colección diferente (test set) con la que se realiza la evaluación de resultados y se obtiene el ranking de sistemas.

Dado que se proporciona una colección etiquetada, la tendencia mayoritaria es ahorrar esfuerzo manual y usar enfoques de una forma u otra basados en aprendizaje automático. Y dado que estos enfoques se adaptan mejor a los diferentes dominios, suelen obtener mejores resultados que las aproximaciones semánticas, mucho más costosas de desarrollar.

Sin embargo, desde nuestro punto de vista estas evaluaciones no son totalmente realistas, ya que consisten en construir un clasificador que se adapte lo mejor posible a la colección proporcionada, completamente diferente de la tarea de análisis de sentimientos en cualquier dominio desconocido.

Los sistemas basados en aprendizaje parecen ser mejores ya que se adaptan mejor al dominio planteado, pero en general necesitan un reentrenamiento completo para portarlos a un dominio diferente. Aunque aciertan mucho con los casos “sencillos”, como no realizan un tratamiento muy elaborado de la complejidad del lenguaje natural, no son capaces de tratar la coordinación y subordinación, fallan en frases con una combinación de polaridades y varios términos inversores, en presencia de comparaciones, etc.

Nuestra solución

Nuestra API de análisis de sentimiento utiliza enfoques semánticos, basados en un tratamiento avanzado del lenguaje natural en todos los aspectos de morfología, sintaxis, semántica y pragmática. Nuestro motor primero genera el árbol sintáctico-semántico del texto, y, sobre éste, aplica los términos del lexicon propagando los valores de polaridad a lo largo del árbol, combinando los valores de forma apropiada en función de la categoría morfológica de la palabra y de las relaciones sintácticas que los afectan.

Además de la polaridad global del texto, el motor devuelve la polaridad por proposiciones o segmentos del texto, en 6 posibles niveles: positivo (P) y negativo (N), muy positivo (P+) y muy negativo (N+), neutral (NEU) y ninguna (NONE) para el caso de que no haya ningún tipo de polaridad.

Por ejemplo, dado el texto:

No me gusta la asombrosa subida de la bolsa de esta semana

Nuestro motor devolvería polaridad global N, y además indicaría que el segmento “la asombrosa subida de la bolsa de esta semana” tiene polaridad P+. También marcaría que la frase es subjetiva. Esta información permite una interpretación detallada y precisa del mensaje contenido en el texto.

Si en vez de “no me gusta” la frase fuera “no me gusta nada”, el valor de polaridad global sería N+ (muy negativa), que es una sutileza importante de analizar.

Obviamente, el esfuerzo de construir un lexicon adaptado a cada uno de los dominios en los que trabajamos es elevado, a pesar de que cuando es posible intentamos aplicar aprendizaje automático para la ayuda a la generación de estos lexicon, al menos parcialmente.

Sin embargo, este enfoque nos permite abordar confianza la tarea como un caso particular de “entendimiento del texto” (text understanding) y permitiéndonos anticipar una respuesta a todos los casos complejos que puedan darse en nuestros proyectos con clientes.

Los aspectos son el futuro

Aún más, actualmente la tendencia es no quedarse simplemente en la tarea de análisis de polaridad global a nivel de documento, sino que el mercado demanda soluciones de grano más fino de los mensajes expresados en un texto. Así, la tarea se convierte en un análisis de sentimiento orientado a aspectos (ABSA, Aspect-Based Sentiment Analysis), cuyo objetivo es la extracción y clasificación del sentimiento y la opinión específica sobre un aspecto, que puede ser una determinada entidad, un concepto, una etiqueta temática, o, en general, cualquier dimensión de análisis que resulte de interés.

Los sistemas basados en aprendizaje automático no pueden abordar satisfactoriamente este análisis detallado ya que no incluyen, en general, ningún conocimiento de la estructura sintáctico-semántica del texto.

Esta tarea tiene dos partes: la extracción del aspecto (su identificación en el texto) y el análisis de la polaridad. Nuestro enfoque lingüístico nos permite abordar estas dos subtareas de forma combinada y en el mismo proceso de análisis. Y como es posible ampliar el sistema con diccionarios de usuario, incluyendo definiciones de entidades, conceptos y aspectos propias de cada dominio concreto, podemos dar respuesta a cualquier necesidad de análisis que se nos pueda plantear.

Por ejemplo:

Telefónica presenta unos resultados decepcionantes mientras que Vodafone no se ha visto muy afectada por la crisis

La polaridad global es NEU (neutral), porque hay dos segmentos con polaridades contrapuestas “Telefónica presenta unos resultados decepcionantes” (N) y “Vodafone no se ha visto muy afectada por la crisis” (P). La polaridad global de este segundo segmento es P aunque contiene el subsegmento “muy afectada por la crisis” que tiene polaridad N+. Además se detectan las entidades “Telefónica” y “Vodafone” y los aspectos “Resultados empresariales” y “Crisis económica”, con las polaridades adecuadas (N y P, respectivamente, en ambos casos).

La tecnología actual permite fácilmente alcanzar valores de precisión del 70-75% en un caso general con una adaptación al dominio nula o muy reducida, como se verifica por ejemplo en los resultados de TASS (Villena-Román et al, 2015) o de SemEval. Sin embargo, invirtiendo un esfuerzo limitado en la adaptación al dominio de nuestro motor de ABSA, las distintas evaluaciones realizadas en diferentes en contextos y dominios muestran que conseguimos unos valores “baseline” de precisión en torno al 80-85%. Y es más, estos valores son aún mejores en dominios donde la influencia de los fenómenos del humor, ironía, lenguaje en tercera persona, etc. son menos frecuentes en los mensajes analizados.

Nuestra solución es totalmente configurable para usar diccionarios a medida en el análisis de sentimientos tan detallado que proporciona nuestra API de análisis de sentimientos: puede ver nuestro tutorial sobre análisis de sentimientos orientado a aspectos.

Aplicaciones

Estas tecnologías son de aplicación directa para el análisis de la Voz de Cliente (o del Ciudadano, o del Empleado, o del Proveedor), fuentes de información no estructurada, no solicitada e instantánea, que, por su inmediatez y espontaneidad, han demostrado ser de las más reveladoras de las verdaderas emociones y opiniones de nuestro público.

La automatización del análisis de sentimiento permite procesar datos que por su volumen, variedad y velocidad harían poco eficiente su tratamiento por medios humanos. Sería imposible extraer todo el valor de las interacciones en el contact center, las conversaciones en medios sociales, las revisiones de productos en foros y otros sitios web (en número de miles, cuando no cientos de miles) mediante un tratamiento exclusivamente manual.

Nuestras soluciones aportan la capacidad para procesar altos volúmenes de datos con un mínimo retardo, gran precisión, consistencia y bajo coste, lo que permite complementar el análisis humano en multitud de escenarios.

176964464-reduced

Referencias

Liu, Bing. 2012. Sentiment analysis and opinion mining. Synthesis Lectures on Human Language Technologies, 5(1):1-167.

Pang, Bo and Lillian Lee. 2008. Opinion mining and sentiment analysis. Foundations and Trends in Information Retrieval, 2(1-2):1-135.

Pang, Bo, Lillian Lee, and Shivakumar Vaithyanathan. 2002. Thumbs up? Sentiment classification using machine learning techniques. In Proceedings of the ACL-02 conference on Empirical methods in natural language processing – Volume 10, EMNLP’02, pp 79-86, Stroudsburg, PA, USA. Association for Computational Linguistics.

Turney, Peter D. 2002. Thumbs up or thumbs down? Semantic orientation applied to unsupervised classification of reviews. In Proceedings of the 40th Annual Meeting on Association for Computational Linguistics – ACL ’02, 417, Philadelphia, Pennsylvania.

Villena-Román Julio, Janine García-Morera, Miguel A. García Cumbreras, Eugenio Martínez Cámara, M.Teresa Martín Valdivia, and L. Alfonso Ureña López, eds. 2015. Proceedings of TASS 2015: Workshop on Sentiment Analysis at SEPLN. CEUR WS Vol 1397, http://ceur-ws.org/Vol-1397/.

¿Más información?


Acerca de Julio Villena-Román

Technology enthusiast. CTO at @MeaningCloud, branch of @SngularMeaning: natural language processing, semantics, voice of the customer, data analytics. Researcher and lecturer at @UC3M, in love with teaching and knowledge sharing. Executive MBA.

Deja un comentario

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

*
*