Machine Learning:
Classificação de comentários
GABRIEL SCHADE CARDOSO
MVP,SOFTWAREENGINEEREESCRITOR
GABRIEL.SCHADE@OUTLOOK.COM
Gabriel Schade Cardoso
 Mestre em Computação Aplicada (IA)
 Microsoft MVP – Dev. Technologies
 Equipe de Inovação - ResourceIT
 Revisor
 Escritor
Quem já ouviu falar de
Machine Learning?
E o que é Machine
Learning?
Antes disso, o que é
IA?
O que é IA?
Marvin Minsky : I.A. é conceder aos computadores a
habilidade de resolver problemas complexos.
Elaine Rich: I.A. é o estudo de como fazer os
computadores realizarem tarefas que no momento as
pessoas fazem melhor.
Patrick Winston: I.A. é o estudo de conceitos que
permitem aos computadores serem inteligentes.
O que é Machine Learning?
Machine learning é uma área da ciência da computação que
concede à computadores a habilidade de aprender sem
precisar serem explicitamente programados.
Quem usa isso?
O que todos eles tem em comum?
Todos os exemplos
1. Analisam dados;
2. Buscam padrões;
3. Tentam extrapolar os padrões encontrados para novos
casos.
Mas o que isso tem a
ver com aprender?
Aprendendo a ler
1. Analisamos as letras;
2. Buscamos padrões;
3. Construímos sentenças.
4. ... Mas cadê predição?
Aprendendo a ler
Depois que aprender a ler criamos a associação entre a
palavra escrita e a palavra falada, com isso, mesmo sem
nunca termos escutado a palavra, conseguimos predizer
com uma boa assertividade a sua pronúncia.
As três perguntas
 Qual problema estamos tentando resolver?
 Tenho dados suficientes para responder isso?
 Consigo medir e avaliar o resultado?
Vamos encontrar um padrão
 Nome com “J”?
 Mais de 30 mil reais na conta
Temperatura Global X Piratas no mundo
Filmes com Nicolas Cage vs Afogamentos
Entendendo o
processo
As três etapas
Em geral podemos definir o processo de machine
learning:
Pré-processamento;
Treinamento;
Avaliação.
Processos em Machine Learning
Processos em Machine Learning
Processos em Machine Learning
Processos em Machine Learning
Processos em Machine Learning
Processos em Machine Learning
Processos em Machine Learning
Processos em Machine Learning
O que eu preciso para
fazer?
Tecnologias
Classificando comentários
Respondendo as três perguntas
 Qual problema estamos tentando resolver?
 Identificar se um comentário é positivo ou negativo
 Tenho dados suficientes para responder isso?
 Vamos utilizar três bases de dados diferentes para treinar nosso
modelo
 Consigo medir e avaliar o resultado?
 Utilizaremos parte da base de dados para tirar métricas a
respeito do modelo gerado
Etapa 1: Pré-processamento
 No pré-processamento precisamos coletar nossos dados
 Serão utilizados dados de três diferentes bases de dados
públicas:
Etapa 1: Pré-processamento
 Os comentários já estavam formatados da mesma
maneira, então tudo que precisamos fazer é torna-los
acessíveis para a aplicação e unir as 3 bases em uma
única.
Etapa 1: Pré-processamento
 No caso do Python, basta inserirmos os arquivos de
dataset em uma pasta acessível ao programa:
Etapa 1: Pré-processamento
Etapa 1: Pré-processamento
Etapa 1: Pré-processamento
 Precisamos fazer um código extra para separar o texto
do comentário do resultado:
Etapa 1: Pré-processamento
 Por fim, podemos criar a função que separa os dados de
treinamento e avaliação:
Etapa 1: Pré-processamento
Etapa 1: Pré-processamento
 No caso do Azure Machine Learning Studio, não há
como acessar os arquivos localmente, então precisamos
fazer o upload das bases na plataforma.
Etapa 1: Pré-processamento
 Dentro da plataforma, existem uma série
de abas.
 A principal delas é a aba experiments, que
é onde iremos criar nosso experimento.
 Mas antes, precisamos carregar nossos
dados na aba datasets.
Etapa 1: Pré-processamento
Etapa 1: Pré-processamento
Etapa 1: Pré-processamento
 Depois de carregar os três datasets já podemos ir para a
aba de experimentos.
 Na aba de experimentos todos os recursos são
disponibilizados de maneira visual, basta arrastá-los e
conectá-los de maneira coerente.
Etapa 1: Pré-processamento
Etapa 1: Pré-processamento
 Para unir os três datasets em um único, usaremos o
módulo Add Rows, este módulo recebe como entrada
dois diferentes datasets e retorna a união dos dois.
Etapa 1: Pré-processamento
Etapa 1: Pré-processamento
 Você pode utilizar a opção Visualize para verificar o
dataset.
Etapa 1: Pré-processamento
 Você pode utilizar a opção Visualize para verificar o
dataset:
Etapa 1: Pré-processamento
 Vamos apenas alterar o valor 0 e 1 para valores mais
legíveis, faremos isso com o módulo SQL Transformation:
Etapa 1: Pré-processamento
 Por fim, nesta etapa, vamos separar os dados que
utilizaremos para treinamento e avaliação:
Etapa 2: Treinamento
 Depois dos dados prontos, precisamos identificar um
algoritmo para atender nossa necessidade.
 Neste ponto é de fundamental importância o
conhecimento dos diferentes algoritmos para machine
learning.
Etapa 2: Treinamento
 A Microsoft lançou um guia para iniciantes que pode nos
ajudar nisso.
Etapa 2: Treinamento
 É importante notar que este mapa só mostra os
algoritmos já implementados pelo Azure.
 Existem outros algoritmos que não estão presentes.
Etapa 2: Treinamento
 Um recurso importante aqui e específico ao tipo de
problema é como analisar um texto.
 Geralmente quando estamos tratando deste tipo de
dado, precisamos realizar um processo chamado
Vectorização ou Featurização.
Etapa 2: Treinamento
 Este processo consiste em criar um dicionário com todas
as palavras que aparecem em nossa base de dados;
 Depois disso, para cada comentário é gerado um array
de verdadeiros e falsos, representando se o texto contém
ou não, cada palavra do dicionário.
Etapa 2: Treinamento
 Para fins de exemplo, vamos supor que nosso dicionário
inteiro é composto por:
 hello, this, is, a, list, for, test
 Ao relizarmos a vectorização no comentário: This is a
test, teríamos o seguinte resultado:
Etapa 2: Treinamento
Etapa 2: Treinamento
 Este processo será utilizado para o algoritmo que
treinará nosso modelo.
 Através dele, é possível identificar quantas vezes uma
palavra aparece em cada comentário.
 Esse valor é utilizado para gerar o coeficiente positivo e
negativo de cada palavra.
Etapa 2: Treinamento
 Por exemplo, a palavra love, para definir sua pontuação
positiva utilizamos a seguinte equação:
Etapa 2: Treinamento
 Para a pontuação negativa, basta fazermos o cálculo:
1- pontuação positiva
 Calculando a pontuação de cada palavra, chegamos na
pontuação do comentário.
Etapa 2: Treinamento
 Felizmente esse processo já é implementado nas
bibliotecas:
Etapa 2: Treinamento
 O mesmo acontece no Azure Machine Learning:
Etapa 3: Avaliação
 Com isso já conseguimos testar nosso modelo:
Etapa 3: Avaliação
 Mas apenas um teste isolado, não nos dá muita
informação. Precisamos de mais do que isso.
 Vamos fazer um comparativo com a forma que o Azure
nos entrega esse resultado, nesse caso, já teremos de usar
a nossa base de avaliação.
Etapa 3: Avaliação
Etapa 3: Avaliação
 Ao visualizar o evalute model, você verá essas
informações:
Etapa 3: Avaliação
 Os campos à esquerda são a matriz de confusão:
Etapa 3: Avaliação
 Acurácia é a relação entre todos os acertos e o total:
 Precisão é a relação entre todas as previsões positivas
corretas e incorretas:
 De todos os comentários classificados como positivos, qual
percentual realmente é positivo?
Etapa 3: Avaliação
 Recall é a relação entre todas as previsões positivas do
modelo e todas as ocorrências positivas reais:
 De todos os comentários que realmente são positivos, qual
percentual é identificado corretamente pelo modelo?
Etapa 3: Avaliação
 F1 Score é a média harmônica entre precisão e recall:
 Geralmente em bases assimétricas o F1 Score é um valor
mais importante que a acurácia
Etapa 3: Avaliação
Etapa 3: Avaliação
 Nós podemos calcular estes valores em Python!
Etapa 3: Avaliação
Etapa 3: Avaliação
 Utilizamos algoritmos diferentes, por isso, métricas
diferentes foram encontradas.
 Podemos testar mais algoritmos e tentar chegar em uma
solução que atenda seu negócio.
Como usar?
 Ok, tudo pronto, como usamos isso no mundo real?
 No caso do Python, qualquer código Python pode
acessá-lo normalmente, ou você pode exportar o modelo
para o formato ONNX e utilizar em qualquer plataforma.
 Também é possível disponibilizá-lo através de um serviço
web.
Como usar?
 No caso do Azure Machine Learning, ainda não é
possível realizar o download do modelo.
 Então a única alternativa é criar um serviço web,
felizmente isso é bastante facilitado pela plataforma.
Como usar?
 Basta gerar o serviço através de um clique
Como usar?
 Depois disso, você
pode:
 Testá-lo online;
 Consumir a API
através de sua
aplicação
Conclusões
 Existem diversas maneiras de desenvolvermos um modelo através
de machine learning;
 Existem opções no mercado inclusive para quem não domina
programação;
 É necessário conhecer os algoritmos para obter resultados
melhores;
https://notebooks.azure.com/
https://studio.azureml.net
As ferramentas estão disponíveis em:
https://gabrielschade.github.io
/@gabrielschade
/gabrielschade
/gabrielschade
Me encontre em

Machine Learning: Classificação de Comentários com Azure ML & Python