Análise de Sentimento de Tweets

Relacionados aos Protestos que ocorreram
no Brasil entre Junho e Agosto de 2013

Leonardo Pereira Santos

DE FRANÇA, TIAGO C.; OLIVEIRA, JONICE, ANÁLISE DE SENTIMENTO DE TWEETS
RELACIONADOS AOS PROTESTOS QUE OCORRERAM NO BRASIL ENTRE JUNHO
E AGOSTO DE 2013; 2014 DISPONÍVEL EM:

Sumário




Resumo
Introdução
Metodologia
Análise dos Resultados
Conclusão

Resumo
• Análise do sentimento acerca dos
protestos que ocorreram no Brasil
entre os meses de Junho e Agosto de
2013
• A análise é possível pela aplicação de
técnicas sobre uma massa de dados
formada por mensagens
disponibilizadas pelas pessoas na
Web.

• Após análise foi comprovado que a maioria das mensagens apoiaram os protestos. então analisado.Resumo • Dessa base foram retiradoos os ruídos. • Observou-se a polaridade (apoio ou repúdio aos protestos)expressa nos tweets. .

. grupos ou instituições motivadas por interesses ou objetivos comuns que se relacionam através de mídias digitais.Introdução • Redes sociais online são redes formadas a partir da interação entre pessoas.

.Introdução • TWITTER: • Um microblog que permite que as pessoas divulguem qualquer tipo de informação quase em tempo real para todos aqueles ligados à sua rede. • Publicações limitadas a 140 caracteres. • Mais de 200 milhões de usuários que geram aproximadamente 110 milhões de tweets por dia.

• Base de dados é constituída em sua maior parte por mensagens escritas em PT-BR • Existem poucos trabalhos que tratam de escritos em português brasileiro. • Criação de uma base de tweets no período de Junho a Agosto de 2013. • Deseja-se verificar o apoio ou repúdio às manifestações através das opiniões presentes nas mensagens coletadas.Introdução • Analisar a polaridade expressa nos tweets relacionados aos protestos. . • Mais de 300 mil tweets (aproximadamente 1GB de conteúdo).

• Um sistema de classificação que independe de linguagem com bons resultados na literatura. .Introdução • Verificação da polaridade (apoio ou repúdio as manifestações) das mensagens realizada utilizando os algoritmos de aprendizagem estatística Naive Bayes.

Metodologia • Trabalho realizado em duas etapas: 1. “Treinamento” do algoritmo e verificação de sua acurácia através de testes para comparação de resultados. . 2. A criação de uma base de tweets relacionados aos protestos e o préprocessamento dos dados coletados.

• A lista foi criada a partir da observação dos termos mais comuns utilizados nos tweets relacionados ao evento. .Coleta de dados e Préprocessamento • Baseada em uma lista de hashtags relacionadas aos protestos. • A lista de hashtags foi utilizada na consulta realizada através da API disponibilizada pelo Twitter.1 .

Coleta de dados e Préprocessamento • Foram realizadas cinco coletas de dados em períodos distintos entre os meses de Julho a Agosto.1 . • Os tweets retornados variam as datas de publicação do dia 30 de Junho ao dia 01 de Agosto do ano de 2013 .

Coleta de dados e Préprocessamento • Foram realizadas cinco coletas de dados em períodos distintos entre os meses de Julho a Agosto. • Os tweets retornados variam as datas de publicação do dia 30 de Junho ao dia 01 de Agosto do ano de 2013 .1 .

1 .Coleta de dados e Préprocessamento Etapas da Análise de Polaridade dos tweets .

Coleta de dados e Préprocessamento .1 .

Remoção de stopwords. Stemming. 5. 3. 4. 2. Remoção das URLs presentes nas mensagens. um processo extração do radical de uma palavra.1 . – O método utilizado remove apenas o sufixo de uma palavra. Remoção de menções a perfis do Twitter. 6. Retirada das informações relevantes da base utilizada. . Caracteres de pontuação removidos.Coleta de dados e Préprocessamento 1.

• O Naive Bayes é utilizado neste trabalho para realizar a classificação de textos baseada em sentimentos presente nas mensagens da base coletada. .Classificação • O modelo Naive Bayes assume que a probabilidade de presença ou ausência de uma característica particular de uma classe não está relacionada com a presença ou ausência de qualquer outro recurso.2 .

. a probabilidade de H após o evento E ser visto) • P[E] – somatório da iteração de ambas as classes com a estimação da distribuição dos termos sobre as classes.2 .Classificação O cálculo da probabilidade é realizado da seguinte forma: P[H | E] = (E[E | H] P[H]) / P[E] • H – evento observado • E – evidência • P[H] – probabilidade do evento antes da evidência ser vista • P [H | E] – probabilidade de H dado o evento E (ou seja.

e o classificador é montado com base no teorema de Bayes. • É capaz de calcular a probabilidade de uma mensagem ser categorizada dentro de uma classe pré-definida mesmo que os dados de entrada possuam ruídos.2 . • Textos são representados como bag of words para serem classificados com base em um modelo probabilístico – As posições exatas das palavras são ignoradas. • Seu uso requer pouco treino durante a fase de aprendizado. assumindo independência entre as variáveis (palavras) .Classificação • O algoritmo Naive Bayes tem sido considerado um método eficaz de análise.

2 . • Um conjunto de tweets foi analisado por humanos e classificados como positivo (apoio aos protestos) ou negativo (repúdio aos protestos). . • Esse processo teve como objetivo cruzar os votos de cada um dos pesquisadores e eleger qual sentimento classificaria cada tweet.Classificação • O treino e os testes foram realizados a partir do uso de uma base composta por 3 humanos construída a partir de amostras de mensagens da base coletada.

. • 30% dessa base foram utilizados para teste e verificação da acurácia do algoritmo.2 . • 2º conjunto: Mensagens negativas. • 70% da base rotulada por humano foi utilizada no treino. • 1º conjunto: Mensagens positivas.Classificação • Criação de dois conjuntos com 100 tweets cada.

desvio padrão. • Coleta realizada com um crawler desenvolvido em Python. a variância.3 – Análise dos Resultados • Foi verificada a acurácia. o desvio. recall e Macro-Avaraged. • Após a extração dos campos de interesse para a análise. precisão. a remoção de stopwords e o stemming foram implementados usando a linguagem Python e o módulo NLTK (Natural Language Toolkit) .

3 – Análise dos Resultados Hashtags utilizadas na coleta #acordabrasil OR #vemprarua OR #ForaFifa OR #ogiganteacordou OR #anonymousbrazil OR #MPL OR #passelivre OR #pec37 OR #mudabrasil OR #ChangeBrazil OR #anonymousbrazil OR #protesto OR #foradilma OR #protestorj OR #protestabrasil OR #primaverabrasileira OR #forafeliciano OR #ocupa OR #copapraquem OR #protest OR #pec33 OR #pec99 .

.3 – Análise dos Resultados • Após treinar o algoritmo fornecendo ao NLTK 70% dos tweets classificados por humanos e rotulados como positivos ou negativos. utilizou-se os 30% restante para analisar a acurácia.

Macro-Averaged (Ma-A) e F-score (F%) do classificador para as categorias testadas.3 – Análise dos Resultados Acurácia (A). . Precisão (P%). Recall (R %). Desvio Padrão (DP). Variância (V).

3 – Análise dos Resultados Matriz de Confusão .

dada a capacidade humana de avaliação corretada subjetividade de um texto variar de 72% a 85%.3 – Análise dos Resultados • Os resultados obtidos são satisfatórios. .

Análise da Polaridade por Tempo de Coleta .

Análise da Polaridade por Localização • O Twitter permite a localização manual ou pela coleta de dados do GPS. • A localização manual pode ser inconsistente. . • Neste trabalho foi utilizada apenas tweets com coordenadas fornecidas pelo GPS.

Análise da Polaridade por Localização • Quantidade de Tweets por grupo .

Análise da Polaridade por Localização • Quantidade de Tweets por Estado .

Análise da Polaridade por Localização • Sentimento de Tweets por Região .

Conclusão • O trabalho foi baseado no algotitmo Naive Bayes e analisou tweets em PT-BR. • Este trabalho torna-se importante pela existência de poucos trabalhos que estudem análise de sentimentos em PTBR . • Tal algoritmo é adaptável a vários idiomas e é capaz de analisar texto poluídos. como os tweets.

Conclusão • As coletas foram realizadas utilizando apenas hashtags que estivessem diretamente ligadas ao protesto. .

Trabalhos futuros • Criar um conjunto maior de treinos e testes empregando rotulação de grupos de pessoas a cega. • Utilizar outros métodos de análise de sentimentos para comparar os resultados obtidos entre os métodos. . e realizar análises mais detalhadas usando funções de distribuição acumulativa e teoria da decisão para verificar a robustez da polaridade das mensagens realizando possíveis ajustes de limiar. • Aumentar o número de mensagens de treino e testes. Ou seja. cada pessoa rotula o tweet e o conjunto de mensagens rotuladas são comparadas para se chegar a um consenso.

Dúvidas? .

Obrigado! .

Sign up to vote on this title
UsefulNot useful