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:
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.
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.
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.
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.
Expandimos las columnas y observamos que el lenguaje detectado es inglés.
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.
Como resultado obtenemos una columna con las palabras relevantes de cada comentario.
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.
Esta función nos devolverá un valor entre 0 y 1 , siendo 0 negativo y 1 positivo.
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
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 .
Esto es todo por esta entrada, próximamente Power BI Dataflows Machine Learning en dos clicks. 🙂