Friday, February 8, 2013

Sentiment Analysis of Twitter Data

En este artículo se proponen modelos para clasificar los sentimientos u opiniones encontradas en Twitter y se clasifican en positivos, negativos o neutrales. En general se hace uso de un modelo de unigramas, uno basado en características de los mensajes y otro en un tree kernel.

Se obtuvieron 11,875 mensajes manualmente etiquetados de una fuente comercial. Los mensajes fueron obtenidos del flujo principal de Twitter por lo que no se incluyó una restricción en específico. Como no se distinguió en cuanto al idioma de los datos, se empleó el traductor de Google para unificarlos en inglés. Al final y tras descartar los mensajes que no pudieron ser clasificados por humanos (algunos de estos debido a una traducción ineficaz), se quedaron con 1709 mensajes de cada clase.

Al pre-procesamiento de los datos, se incluye un traductor de emoticons y otro de acrónimos. Algunos ejemplos del uso de ambos se muestran en las siguientes figuras:

image

image

Se obtuvieron en general las siguientes estadísticas:

image

Empleando una técnica propuesta por Agarwall (Apoorv Agarwal, Fadi Biadsy, y Kathleen Mckeown.2009. Contextual phrase-level polarity analysis using lexical affect scoring and syntactic n-grams), se asigna una polaridad a cada palabra dando así un número que representa su agrado. Se cubren el 88.9% de las palabras en inglés.

Se definen una serie de árboles como representación de los mensajes obtenidos, se incluye el mensaje y las características que posee (su etiqueta correspondiente). Un ejemplo se muestra a continuación:

image

También se crean todos los sub-árboles posibles para ser comparados con otros. El llevar a cabo esto permite la comparación entre información que extrae de otros datos y evita la creación de la comparación de características y estructuras definidas a mano.

Mientras que las características tomadas en cuenta se muestran en la siguiente figura:

image

Los experimentos se llevaron a cabo para clasificar en positivos y negativos y un segundo en positivos, negativos y neutrales. Se probó el modelo con unigramas, tree kernel, 100 características (Senti-features), kernel + Senti-features y unigramas + Senti-features. Todo es probado en una SVM.

Los resultados generales para la clasificación entre positivos y negativos se muestran a continuación:

image 

De estos resultados, al ser unigramas + Senti-features los que obtuvieron una mejor precisión, se analizaron las características empleadas para determinar las más determinantes dando el siguiente resultado:

image

Por otra parte, se repitieron los experimentos pero incluyendo la clase neutral, los resultados se muestran a continuación:

image

image

En general, aplicaron el modelo de unigramas y obtuvieron una mejora del 4% al incluir las características (Senti-features) que ellos determinaron. En trabajo a futuro se propone el enriquecimiento del proceso empleando un análisis lingüístico más a detalle como: parseo, análisis semántico y modelado de temas.

Apoorv Agarwal, Boyi Xie, Ilia Vovsha, Owen Rambow, R. P. (2011). Sentiment Analysis of Twitter Data. ACL HLT 2011 Workshop on Language in Social Media LSM 2011 Proceedings of the Workshop (pp. 30–38).

No comments:

Post a Comment