En esta entrada enseñaremos cómo hacer análisis de sentimiento rápido y sencillo utilizando Power BI Dataflows, además también mostraremos cómo crear modelos de Machine Learning de forma automática utilizando la nueva funcionalidad abierta a través de los Power BI Dataflows.

Antes de continuar vamos a definir, ¿Qué son los Power BI DataFlows?:

«Son el conjunto de funcionalidades de extracción y preparación del dato, que se ofrecen a través del servicio online(powerbi.com), estas operaciones son encapsulables, reutilizables y auto-orquestables para toda la organización”.

Otra definición puede ser:

“Power BI Dataflows es Power Query Online, Orientado a usuarios de negocio”.

De esta segunda definición me gustaría remarcar esta última frase “Orientado a usuarios de negocio” debido a que se puede pensar que Power BI DataFlows reemplazan a Azure Data Factory, y son dos herramientas que tienen dos públicos distintos:

Power BI DataFlow and Datafactory Comparison

Power BI DataFlow and Datafactory Comparison

Para más detalle sobre Power BI Dataflows pueden entrar en este post.

Una vez tenemos definidas las bases vamos a jugar, voy a mostrar el dataset con el cual vamos a hacer la demo.

Movies Dataset

Movies Dataset

El dataset son opiniones sobre distintas películas y la columna que realmente nos interesa es la Phrase en donde tenemos todos los distintos comentarios, utilizando esta columna y las distintas funciones disponibles en nuestro Dataflow seremos capaces de saber si el comentario es positivo o negativo, pueden descargar el dataset aqui.

El primer paso es crear un Dataflow para obtener estos datos, una vez cargados seleccionamos la columna que contiene los comentarios y en menú superior derecho tenemos la opción de AI Insights.

DataFlow AI Option

DataFlow AI Option

Una vez seleccionado nos muestran varias opciones (por detrás el servicio de Power Bi hace llamadas al api de cognitive services, para mas info aqui ), para esta demo nos vamos a centrar en las tres opciones que resaltamos de la imagen.

Cognitive services options

Cognitive services options

La opción detectlanguaje sirve para detectar el lenguaje del comentario y nos da como resultado el código ISO que sirve como entrada para las siguientes transformaciones, hacemos click en aplicar y obtenemos como resultado un record con el nombre del lenguaje y el código ISO asociado.

Detect languaje Record

Detect languaje Record

Expandimos las columnas y observamos que el lenguaje detectado es inglés.

Detect Languaje Expanded

Detect Languaje Expanded

El siguiente paso es extraer las palabras claves de los comentarios y sobre estas aplicar las funciones de análisis de sentimiento, para esto seleccionamos nuevamente la opción de AI y después la función ExtractKeyPhrases y la columna que contiene los comentarios.

Extract key phrases

Extract key phrases

Como resultado obtenemos una columna con las palabras relevantes de cada comentario.

Key Phrases

Key Phrases

Utilizamos nuevamente el Botón de AI para finalmente obtener análisis de sentimiento sobre la columna con las palabras claves de los comentarios, en este caso utilizaremos la función ScoreSentiment dándole como entrada la columna con el código ISO del lenguaje y la columna con las palabras claves de cada comentario.

Score Sentiment

Score Sentiment

Esta función nos devolverá un valor entre 0 y 1 , siendo 0 negativo y 1 positivo.

Score Sentiment Result

Score Sentiment Result

Como podemos ver obtenemos la columna con el rango de valores y también nos devuelve null cuando no hay palabras relevantes en los comentarios,  finalmente para terminar generaremos una columna calculada que en base al resultado anterior nos clasifique los comentarios.

Seguiremos la siguientes regla:

  • <=0.25 – negative
  • <=0.49 – somewhat negative
  • <=0.59 – neutral
  • <=0.70 – somewhat positive
  • >0.70 – positive
  • otros casos neutral
Sentiment Label

Sentiment Label

Finalmente después de aplicar la lógica anterior y tratar un poco con los valores null, tenemos para cada comentario el sentimiento de nuestra base de datos .

Labeling Sentiment Result

Labeling Sentiment Result

 

Esto es todo por esta entrada, próximamente Power BI Dataflows Machine Learning en dos clicks. 🙂

Julio Granados

http://www.linkedin.com/in/julio-granados-barros-398ba4a4/

@GranadosJD