Friday, January 25, 2013

Sentiment Analyzer: Extracting Sentiments about a Given Topic using Natural Language Processing Techniques

Este artículo busca encontrar el análisis de opinión de documentos pero tomando en cuenta las partes que lo componen y no solo dando una calificación general. Las principales características son: extracción de características específicas de un tema, extracción de opinión de cada frase que contenga una opinión expresada y creación de una asociación entre temas o características y su opinión correspondiente.

Primero se extraen los términos que indican una característica de lo que se habla. Para validarlo debe cumplir con alguna de las siguientes relaciones: ser una parte del tema dado, ser un atributo del tema o ser un atributo de una característica conocida del tema. En la siguiente figura, se remarcan en negritas los términos que se pretenden extraer:

image

Al revisar las características que se desean analizar, se dieron cuenta que todas corresponden a sustantivos por lo que definieron una serie de reglas que permitan elegirlos detalladamente. Primero se toman en cuenta sustantivos y adjetivos que deben cumplir con las siguientes formas: NN, NN NN, JJ NN, NN NN NN, JJ NN NN, JJ JJ NN en donde NN corresponde a un sustantivo y JJ a un adjetivo, estas formas las denominan como BNP (Base Noun Phrase). Después se considera el uso de las dBNP (Definite Base Noun Phrase) que son fragmentos que cumplen el formato de las BNP pero que van precedidas del artículo definitivo “the”. Debido a que en el texto se está hablando de un tema en particular, los dBNP no requieren mayor información contextual por lo que se puede conocer gracias a fragmentos como “the battery” que se está hablando de la batería de una cámara digital. Por último se definieron a los bBNP (Beginning Definite Base Noun Phrase) que son un dBNP al inicio de una oración y seguidos de un verbo. Esta heurística permite determinar el cambio de enfoque del objeto de un sustantivo a otro.

Para seleccionar las características emplearon dos modelos:

  • Mixture Language Model: Se considera el modelo del lenguaje como una mezcla de un lenguaje general de la web y un modelo de lenguaje específico.
  • Likelihood Ratio: Se calcula la probabilidad de un término a pertenecer a un conjunto de documentos de un tema y la probabilidad de pertenercer a un conjunto de documentos que no son de dicho tema.

Las pruebas se hicieron en el dominio de las reseñas de cámaras digitales y de música. El conjunto D+ habla del tema mientras que el conjunto D- habla de cosas específicamente que no corresponden al tema. La siguiente figura muestra la composición del dataset empleado:

image

Los resultados de la extracción se muestran a continuación:

image

Para el análisis de opinión, extrajeron 3000 términos que incluyen 2500 adjetivos y 500 sustantivos. El análisis de opinión lo basan en la desviación del estado neutral, ya sea positivo o negativo. La base creada tiene el formato: <lexical_entry> <POS> <sent_category> y un ejemplo de un registro es: "excellent" JJ +.

Por otro lado, se definieron patrones de opinión que describen el sentimiento reflejado en la oración en un formato único que consiste en lo siguiente: <predicate> <sent_category> <target> donde predicate es normalmente un verbo, sent_category es +|- (~ para negación) y su fuente (SP|OP|CP|PP – sujeto, objeto, complemento (o adjetivo) y frases preposicionales) y por último target (SP|OP|CP) es sobre quien recae la opinión. Algunos verbos no tienen una connotación positiva ni negativa. La siguiente figura muestra algunos ejemplos de estos patrones:

image

La primera prueba que se realizó fue basada en las reseñas de cámaras y música y se comparó contra un algoritmo estadístico de análisis de opinión llamado ReviewSeer y se obtuvieron los siguientes resultados:

image

La segunda lleva a cabo una comparación con el algoritmo ReviewSeer pero basado en documentos en general encontrados en la web dando como resultado lo siguiente:

image

Yi, J., Nasukawa, T., Bunescu, R., & Niblack, W. (2003). Sentiment analyzer: extracting sentiments about a given topic using natural language processing techniques. Third IEEE International Conference on Data Mining, 427–434. doi:10.1109/ICDM.2003.1250949

Sentiment Analysis of Movie Reviews on Discussion Boards using a Linguistic Approach

En este artículo se presenta el análisis de opinión a nivel de cláusulas para facilitar el procesamiento de múltiples aspectos presentados en una sola oración.

Dividen a las oraciones en inglés en oraciones simples (una sola cláusula independiente), compuestas (dos o más cláusulas independientes) y compuestas (al menos una cláusula independiente y una cláusula dependiente). Las cláusulas a su vez son divididas en sujeto y predicado (siendo el predicado la combinación de verbo, objeto, complemento y adverbio).

El proceso en general es mostrado en la siguiente figura:

image

Algunos títulos de películas contienen palabras que expresan sentimientos (como ejemplo se mencionan “beautiful mind” y “fantastic four”), sin embargo, estas palabras no deberían ser tomadas en cuenta para analizar el sentido de la oración. La anotación semántica ayuda a identificar las partes de la oración que proporcionen información sobre la película, director, elenco y los nombres de los personajes para que sean ignorados en el momento de calificar la opinión. Se tiene una lista complementaria de palabras que deben tomarse en cuenta como: directing, animation, scene, music y sound effects. La anotación se lleva a cabo tomando siempre como prioridad los resultados de mayor tamaño que encajen.

Los marcadores de opinión o sentimiento se obtienen de una base de datos pública (SentiWordNet) que brinda un número en el rango de -1 a 1 como valor a cada palabra. Se complementan con una serie de valores dependientes del contexto (en este caso las películas).

Empleando la librería de lenguaje natural de Stanford, se procesan las relaciones gramaticales entre las palabras. Las relaciones se definen como dependencias binarias pudiendo ser un gobernador o un dependiente. Se crea un árbol que contiene la oración completa y que posteriormente se convierte en cláusulas (sub-árboles) mediante división o multiplicación dependiendo del tipo de oración. La división se presenta cuando en la oración existen dos o más cláusulas independientes como en la oración “I love Tom but hate the movie” y se divide como se muestra a continuación:

image

Por su parte, la multiplicación se presenta en los casos en que la oración contiene predicados u objetos compuestos como en la oración “I love the music but not the story” y como resultado se obtiene lo expuesto en la siguiente figura:

image

El cálculo de opinión contextual se calcula atravesando y procesando cada uno de los nodos basado en las relaciones gramaticales entre padres e hijos y su información POS (Part of Speech). El algoritmo es recursivo y se detiene hasta que se llegan a todas las hojas. Las fórmulas para cada tipo y relación varían.

Se llevaron a cabo experimentos sobre 370 oraciones (185 positivas y 185 negativas). La siguiente figura muestra la precisión del sistema comparada contra una calificación manual de las oraciones.

image

Por su parte la siguiente figura muestra otro tipo de resultados para el análisis de la herramienta:

image

Existen peculiaridades con los resultados obtenidos, lugares en los que las palabras pueden tomar un sentido positivo en la base de datos pero en la oración toman uno negativo (aunque no exista una palabra de negación) o viceversa. Por otra parte, existen fallas con la categorización del POS que no logra identificar correctamente todas las partes de las oraciones.

Thet, T. T., Na, J.-C., Khoo, C. S. G., & Shakthikumar, S. (2009). Sentiment analysis of movie reviews on discussion boards using a linguistic approach. Proceeding of the 1st international CIKM workshop on Topic-sentiment analysis for mass opinion - TSA ’09, 81. doi:10.1145/1651461.1651476