Nuvem de Conceito e Pesquisa qualitativa no Power BI com Azure Cognitive Services

Utilizar a inteligência artificial a favor da sua marca para direcionar resultados positivos para a sua empresa é mais simples do que você imagina.

Nesta matéria iremos falar um pouco sobre a azure e demonstrar de maneira prática a utilização de algumas das APIs de análises de texto presente na suíte de serviços cognitivos da Azure.

Criando uma conta na Azure

O primeiro passo é acessar o link portal.azure.com. Se você não tiver uma conta microsoft, crie uma conta e faça o login. Em seguida faça a assinatura da Azure.

No link https://azure.microsoft.com/pt-br/free/ você encontra informações detalhadas para a criação da sua conta e fazer a assinatura e ainda ganha um crédito de R$ 750,00 para explorar os recursos da Azure por 12 meses.

Após realizar a assinatura, você deverá ser direcionado para uma tela parecida com esta:

Portal Azure

Gerando a interface com a API Text Analytics

No Portal Azure pesquise por Serviços Cognitivos (ou Cognitive Services, se o seu portal estiver em ingês):

Serviços Cognitivos

Clique em ‘ + Adicionar’ e em seguida pesquise por ‘Text Analytics’

Text Analytics

Clique em ‘Criar’ e preencha os campos conforme abaixo:

Criando uma interface de APIs

Perceba que dei o nome ‘GenuxConsultCognitive’ e este nome será o prefixo do endpoint para as nossas chamadas as APIs.

Após clicar em criar, o endpoint será gerado junto com a sua API key para chamada as APIs. Note que temos 4 interfaces de APIs em TextAnalytics, mas utilizaremos apenas a api ‘keyPhrases’ e a ‘Sentiment’.

Azure KeyPhrases API

A api keyPhrases foi treinada para receber um texto como parâmetro e retornar todas as palavras ou frases com relevância dentro do contexto. Mais adiante faremos um exemplo de como utilizá-la.

Azure Sentiment API

A api sentiment foi treinada para receber um texto como parâmetro e analisar se o texto tem sentimento positivo ou negativo. Imagine poder analisar automaticamente um texto de opinião dos clientes sobre sua empresa.

Esta api retorna um range de valor de 0 a 1, onde mais próximo de zero significa um sentimento negativo e mais próximo de 1 indica um sentimento positivo.

Importando uma base de pesquisa qualitativa no Power BI

Enfim retornaremos ao Power BI para realizar a importação da planilha de pesquisa qualitativa de clientes que servirá de base para o nosso dashboard de análise.

Para o nosso exemplo, utilizarei uma base pública de comentários em vídeos do youtube baixados no link https://www.kaggle.com/datasnaek/youtube-new/data#.

Irei utilizar os arquivos USvideos.csv e US_category_id.json para construção do nosso dashboard.

Após a importação da informação iniciaremos a construção do nosso dashboar pelo relacionamento entre as bases de videos e de categoria conforme figura abaixo:

Relacionamento no Power BI

Fazendo chamada a APIs através do Power BI

No Power BI, abra o Power Query através ‘Editar Consultas’, logo após clique em ‘Nova Fonte’ -> ‘Consulta Nula’. Defina o nome ‘Sentiment’ para esta consulta e clique em ‘Editor Avançado’.

Será aberto um editor para linguagem M onde colocaremos o código de chamada da nossa API conforme abaixo:

(texto) => let
apikey = @apikey,
endpoint =@endpoint + “/text/analytics/v2.1/sentiment”,
jsontext = Text.FromBinary(Json.FromValue(Text.Start(Text.Trim(texto), 5000))),
jsonbody = “{ documents: [ { language: “”pt””, id: “”0″”, text: ” & jsontext & ” } ] }”,
bytesbody = Text.ToBinary(jsonbody),
headers = [#”Ocp-Apim-Subscription-Key” = apikey],
bytesresp = Web.Contents(endpoint, [Headers=headers, Content=bytesbody]),
jsonresp = Json.Document(bytesresp),
sentiment = jsonresp[documents]{0}[score]
in sentiment

Após clicar em ‘ok’, teremos a função personalizada chamado a api sentiment na azure.

Faremos o mesmo para chamar a api keyPhrases. No Power Query, clique em ‘Nova Fonte’ -> ‘Consulta Nula’, nomeie a função como keyphrases e clique em ‘Editor Avançado’. Coloque o código abaixo e clique em ‘ok’.

(texto) => let
    apikey      = @apikey,
    endpoint    = @endpoint + “/text/analytics/v2.1/keyPhrases”,
    jsontext    = Text.FromBinary(Json.FromValue(Text.Start(Text.Trim(texto), 5000))),
    jsonbody    = “{ documents: [ { language: “”pt-BR””, id: “”0″”, text: ” & jsontext & ” } ] }”,
    bytesbody   = Text.ToBinary(jsonbody),
    headers     = [#”Ocp-Apim-Subscription-Key” = apikey],
    bytesresp   = Web.Contents(endpoint, [Headers=headers, Content=bytesbody]),
    jsonresp    = Json.Document(bytesresp),
    keyphrases  = Text.Lower(Text.Combine(jsonresp[documents]{0}[keyPhrases], “, “))
in  keyphrases

Aplicando as APIs cognitivas em minha pesquisa qualitativa

Faremos a chamada das funções cognitivas da Azure em cada uma das linhas de registros de nossas bases através de colunas de funções personalizadas.

Para tal, clique no menu ‘Adicionar Coluna’ -> ‘Invocar Função Personalizada’.

Inclua a coluna fazendo a chamada das funções ‘Sentiment’ e ‘keyPhrases’ conforme abaixo:

Função Índice de Sentimento
Função Palavras Chave

Montagem do dashboard para análise dos dados

Após a carga dos dados, feche o Power Query e volte à interface do Power BI para trabalharmos os dados no dashboard.

Para definição da métrica de sentimento estabeleceremos um padrão: Quando o índice de sentimento for menor que 0,40 indica que o sentimento é negativo, se o índice chegar até 0,60 indica ser um sentimento Neutro e caso ele seja maior que 0,60 indica ser um sentimento Positivo.

Para estabelecer essa régua, criaremos uma coluna com a seguinte fórmula:

IndicadorSentimento =
if(USvideos[IndiceSentimento]<=0,4;"Negativo"; if(USvideos[IndiceSentimento]>=0,6;”Positivo”;
“Neutro”))

Criando uma nuvem de conceito (visual Word Cloud)

O primeiro visual que colocaremos no nosso dashboard será o word cloud 2.0 baixado do marketplace.

Este visual cria uma nuvem de conceito baseada nas palavras chaves extraídas do texto pela api keyPhrases:

Nuvem de Conceito

Utilizando o visual TreeMap

Faremos uso também do visual Treemap para que possamos visualizar as análises dos dados por categoria:

treemap por categoria de vídeos

Informações e filtros importantes

Utilizaremos o segmentador de dados para estabelecer botões de filtro para sentimentos negativos, positivos os neutros. Também utilizaremos cards para visualizar informações segmentadas. Ao final teremos um dashboard com estas informações:

Dashboard finalizado

Análises possíveis

Com este dashboard que criamos, é possível visualizar quais as palavras relevantes que mais aparecem nos comentários, quantos comentários, likes ou deslikes existem por categoria de vídeos e é possível até cruzar informações de sentimento negativo com likes, por categoria.

Como percebemos, a diversidade de análises é enorme e pode ser aprofundado ainda mais com a criação das mais diversas métricas.

Espero que tenham gostado do conteúdo e caso queiram mais informações a respeito entre em contato conosco pelo e-mail contato@genuxConsult.com.br.

O dashboard criado nesta matéria está disponível para download em PbixAzureCognitive.

Leia também

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *