sábado, 27 de agosto de 2016

Análisis Básico de Sentimientos: Polaridad





El tema de Análisis de Sentimientos puede ser tan complejo como lo queramos ver y existen muchos artículos y herramientas que se han desarrollado al respecto, que de seguro pueden encontrar con facilidad en internet. Pero como hemos comentado anteriormente, lo que buscamos es poner en práctica ciertos temas, utilizando ejemplos locales, por lo que en ésta entrada lo que haremos es dar un ejemplo, considerando un análisis básico de polaridad (positivo, negativo y neutro) de un documento.

Para continuar con el hilo de la entrada anterior, vamos a tomar como documento (o más bien documentos), los posts con los cuales creamos las nubes de palabras de aquellos, que correspondían a posts con mas comentarios de las 5 páginas de facebook con mayor cantidad de fans en Ecuador.

El análisis lo hemos realizado con KNIME (www.knime.org) como herramienta y tomamos como referencia un ejercicio de ejemplo (https://www.knime.org/knime-applications/social-media-sentiment-analysis) publicado en su sitio web, pero con 3 grandes adaptaciones: 1) los datos, correspondientes a los comentarios de las páginas previamente indicadas, 2) el léxico, el cual toma como base un léxico público denominado MPQA  (http://www.cs.pitt.edu/mpqa/lexicons.html), el mismo que se encuentra en inglés y que lo hemos pasado a español para este ejemplo y le hemos agregado ciertas palabras locales como "bacan", "turro", "chiro", entre muchas otras y 3) un diccionario con otras expresiones, el cual sirve para corregir errores ortográficos o cambiar palabras como por ejemplo "chikos" por "chicos", "ekipo" por "equipo", "porfis" por "por favor", entre otras.

En el caso de los datos, se tomó una muestra de cada de los posts indicados en la tabla siguiente, en el caso del primer post fue casi todo el universo de comentarios (93%) mientras que del segundo post fue una muestra representativa (23%), meramente por temas de tiempo de recopilación. La tabla muestra también la cantidad de Fans que hicieron comentarios, de lo cual, hay que tomar en cuenta que algunos fans pusieron más de  un comentario, particularmente en el segundo post, partiendo del hecho que éste tenía una mayor interacción (chat en vivo). Finalmente a tabla refleja la cantidad de palabras de cada comentario que se analizaron.
Post
Top de …
Comentarios Totales
Comentarios Seleccionados
% Comentarios
Fans
Palabras

Like
                2.633
                  2.442

93%
       2.338
        16.760


Comentarios
              39.545
                  9.100

23%
       4.184
        33.145


En el caso del léxico, el archivo público MPQA, contiene un listado de palabras a las cuales se las ha dado una polaridad que puede ser "positiva", "negativa", "neutra" o "ambas" y en donde se agregó algunas palabras locales. No todas las palabras tienen necesariamente una calificación, como por ejemplo nombre de lugares, pronombres personales, números, entre otros. Del ejemplo con los dos post, solo el 26% de las palabras tuvieron una calificación (polaridad).

Esta información, más el "diccionario de otras expresiones", es evaluada para primero asignar una polaridad a cada palabra, luego de lo cual se agrupa por autor (fan) y el resultado se muestra en la siguiente tabla (omitiendo los datos del autor), en donde se pueden ver la cantidad de palabras negativas y positivas y luego una columna denominada Good.Bad.Rating (6ta columna después de Positive) la cual es la diferencia entre Positivo - Negativo, que sirve también para dar una calificación al autor y que se muestra en diferentes colores (verde-positivo, rojo-negativo y gris-neutro).



Con todos estos datos vamos a mostrar a continuación la gráfica de actitud, empezando con el segundo post, que mas comentarios tiene y nos puede dar una visión más amplia de resultados:


Los puntos (cuadros) en la gráfica representa a los Fans, que hicieron comentarios, el color de cada punto representa la calificación final del Fan. Hemos señalado a 3 fans, el #1 representa el que más palabras positivas tuvo (93 positivas y 1 negativa), el #2 es un fan con calificación positiva (verde), el cual, a pesar de ser el de mayor palabras negativas (10), es calificado así porque tuvo más palabras positivas (16). Finalmente vemos el fan #3, el cual tuvo 7 palabras negativas y 1 positiva, por lo que está calificado como negativo.


La gráfica de actitud del primer post se muestra a continuación:



A continuación una tabla con un resumen de la cantidad de palabras por cada post.

Post
Top de …
Negativas
Positivas
Total
% Neg
% Pos
Calificación

Like
              673
          4.383
            5.056

13%

87%
               3.710

Comentarios
              356
          9.258
            9.614

4%

96%
               8.902


           1.029
        13.641
          14.670

7%

93%


En conclusión podemos indicar que los dos posts generaron reacciones positivas (87% y 96% respectivamente), es probable que el del 96% tenga un resultado diferente al considerar una muestra mayor al 23% que se tomaron para éste ejemplo.

Este tipo de ejercicio, permite tener un punto de partida que facilita el análisis de información y nos da pistas de por dónde empezar a revisar los comentarios, frente a una lista larga cantidad de los mismos. No obstante esto, siempre es necesaria la revisión posterior para afinar y realizar posibles ajustes, por textos que no realmente no reflejen sentimientos de inconformidad. En la última gráfica por ejemplo, que muestra un fan de 14 palabras negativas y cuyo resultado es porque la persona pegó una carta que circula en las redes que dicen que si no copias dicho texto algo te va a pasar.

Este ejercicio puede aplicarse para generar una alerta sobre el uso de una palabra en particular, lo cual genere el envío de un mensaje a un directivo de la institución para que analice el mensaje y tome acciones al respecto. Permite tener una visión más clara del sentimiento que puede estar generando en este caso un post, lo cual se puede aplicar no solo en un entorno de una red social en particular, sino también por ejemplo en encuestas de opinión, comentarios de clientes en un call center o inclusive rastreo de palabras en un log de transacciones.

Este es un ejemplo de lo que se puede hacer a través de lo que denominamos Inteligencia de Negocios (Business Inteligence), utilizando técnicas de Minería de Datos (Data Mining) el cual espero haya sido de utilidad para todos.

Hasta pronto!

1 comentario: