Momento R do Dia – Gabriel Sallum faz um estudo sobre Aecio e Dilma no Twitter

Hoje, leitores, temos aqui um outro autor convidado, meu aluno Gabriel Sallum. Ele me relatou ter feito uma aplicação diferente no R e, gastou um tempo de seu domingo fazendo isto. Ora, qualquer um que invista seu tempo de um domingo para trabalhar com o R é bem-vindo por aqui, principalmente se o tema não tiver nada a ver com a matéria (afinal, gente, é final de semana, né?) e for interessante.

Ao ver o que o Gabriel tinha feito, percebi que valia a pena divulgar seu trabalho. Então, com vocês, o texto dele.

E aí, pessoal.

Ao ver o seguinte link: https://sites.google.com/site/miningtwitter/questions/talking-about/wordclouds/comparison-cloud , que sinaliza as palavras mais frequentes escritas no twitter de empresas de telecomunicação dos EUA, decidi replicar este script para os candidatos à presidência em 2014.
Portanto, coletei os últimos 2000 tweets(a partir de hoje) de Aécio Neves e Dilma e os resultados são estes:

dilmaXaecio

Essa nuvem mostra as palavras mais frequentes nos tweets de Dilma e Aécio separadamente(palavras maiores são mais frequentes).

dilmaEaecio

E essa mostra a interseção de palavras mais frequentes escritas por ambos.

Abaixo, segue o meu script com a explicação de todos os passos.

#O primeiro passo é ter acesso ao API do twitter, para isso é necessário acessar o https://apps.twitter.com/ e criar um aplicativo, para obter as chaves para ter acesso à base de dados do twitter
#Depois, carregar o pacote twitteR
install.packages("twitteR")
require(twitteR)


#Nos passos seguintes, você utiliza suas chaves de acesso para ser apto à usar os dados do twitter(omiti as minhas aqui)
consumer_key <- "XXXXXXXXXXXXXXXXXXXX"
consumer_secret <- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
access_token <- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
access_secret <- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
setup_twitter_oauth(consumer_key,consumer_secret, access_token, access_secret)

#Aqui, você obtém os tweets de um usuário que você deseja, escolhi 2000 tweets de Aécio e Dilma

aecio <- userTimeline("aecioneves", n=2000, includeRts=TRUE,excludeReplies=FALSE)
dilma <- userTimeline("dilmabr", n=2000, includeRts=TRUE,excludeReplies=FALSE )

#Neste passo, selecionei apenas o conteúdo do tweet.
aecin <- sapply(aecio,function(x) x$getText())
dilminha <- sapply(dilma,function(x) x$getText())

#Limpando os dados:
clean.text = function(x)
{
  #E aqui, removi dos tweets pontuações, links, números, etc. Para ter somente palavras que façam sentido de ser analisadas.
  x = gsub("rt", " ", x)
  x = gsub("@\\w+", " ", x)
  x = gsub("[[:punct:]]", " ", x)
  x = gsub("[[:digit:]]", " ", x)
  x = gsub("http\\w+", " ", x)
  x = gsub("[ |\t]{2,}", " ", x)
  x = gsub("^ ", " ", x)
  x = gsub(" $", " ", x)
  x = gsub("http", " ",x)
  return(x)
}

#Apliquei a limpeza dos dados tanto para Aécio quanto Dilma:
aeciolimpo <- clean.text(aecin)
dilmalimpa <- clean.text(dilminha)

#Esta função concatena todos os tweets em apenas um vetor.  
psdb = paste(aeciolimpo, collapse=" ")
pt = paste(dilmalimpa, collapse=" ")

#Aqui, removi as stopwords(ex: para, que, o ,a, no, em), e concatenei os dados de Dilma e Aécio em uma só Matriz
presidenciaveis = c(psdb, pt)
install.packages("tm")
require(tm)
presidenciaveis = removeWords(presidenciaveis, c(stopwords("portuguese"), "psdb", "pt"))
corpus = Corpus(VectorSource(presidenciaveis))
tdm = TermDocumentMatrix(corpus)
tdm = as.matrix(tdm)
#Neste passo, é importante ficar atento à ordem das colunas, para ser igual ao que foi feito anteriormente.
colnames(tdm) = c("AÉCIO","DILMA")

install.packages("wordcloud")
require(wordcloud)
#A função seguinte plota um gráfico em nuvem com as palavras frequentes nos tweets de Aécio e Dilma.
comparison.cloud(tdm, random.order=FALSE, colors =c("blue","red"), title.size=0.9, max.words=200)

#E esta relaciona palavras em comum escritas por ambos, palavras maiores foram escritas mais vezes por ambos.
commonality.cloud(tdm, random.order=FALSE,colors=brewer.pal(14,"Dark2"), title.size=1.5)

Anúncios

Uma resposta em “Momento R do Dia – Gabriel Sallum faz um estudo sobre Aecio e Dilma no Twitter

  1. Pingback: Retrospectiva 2015 | De Gustibus Non Est Disputandum

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s