Análisis de sentimiento utilizando Microsoft Flow, Cognitive Services y PowerBI

Recientemente Microsoft ha puesto en marcha una serie de herramientas que permiten llevar a cabo tareas muy interesantes, como puede ser el análisis de sentimiento en las redes sociales. En mi caso, he aprovechado la disponibilidad de éstas para hacer algunos análisis sobre datos de Baloncesto, una de mis pasiones. En concreto, mañana empieza la Copa del Rey ACB, y he pensado que sería una excelente idea valorar el sentimiento de los usuarios que tuitean sobre sus equipos, publicando los resultados en un cuadro de mandos de PowerBI.

Las herramientas de Microsoft utilizadas han sido:

  • Flow: Mediante ésta podremos “escuchar” los tuits con determinado hashtag y guardarlos en algún sitio (sí, sí, ¡como lo lees!). Flow permite, entre otros, automatizar muchos procesos, con lo que os recomiendo que le deis una ojeada.
  • Cognitive Services, Text Analytics: Mediante este servicio de Microsoft podremos obtener un análisis de sentimiento del tuit, obteniendo un valor entre 0 (comentario negativo) y 1 (comentario positivo). Este servicio es totalmente gratuito hasta 5000 llamadas a la API por mes (sólo tenéis que daros de alta y obtenir una API Key).
  • Azure SQL Database: Tablas donde guardaremos los resultados como son el texto y la fecha del tuit, o la puntuación de sentimiento.
  • PowerBI: Publicaremos un cuadro de mandos con la explotación de los datos previamente almacenados.

El aspecto del proceso desarrollado en Flow es el siguiente (una imagen vale más que mil palabras):

Proceso Flow Twitter Copa ACB

¡Así que ya veis que es realmente simple! Cada vez que se publica un tuit con un hashtag concreto, pasamos el texto del tuit al servicio de Text Analytics, y la salida de esta información la guardamos en una tabla de SQL Server en Azure. Finalmente, también obtenemos las palabras clave del tuit y las guardamos en otra tabla de SQL Server en Azure.

Cabe mencionar que ya es posible utilizar los datos en tiempo real y publicarlos directamente en PowerBI, sin necesidad de almacenarlos en una base de datos (Streaming DataSets). Aquí encontraréis realizado por Gisela Torres y aquí otro por Bruno Capuano que son realmente sencillos y que a la vez muestran la potencia de esta funcionalidad. En mi caso, he preferido almacenar todos los datos en una base de datos para poder hacer análisis de éstos a posteriori.

El resultado final se puede ver en el siguiente cuadro de mandos de PowerBI:

Finalmente, mencionar que en breve publicaré el script de creación de las tablas para guardar los datos de twitter y el análisis de sentimiento. Y si tenéis alguna duda o sugerencia, ¡no dudéis en contactar conmigo!

PD: Ah, Y Força Barça (aunque este año no estamos para tirar cohetes :S).