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:
Essa nuvem mostra as palavras mais frequentes nos tweets de Dilma e Aécio separadamente(palavras maiores são mais frequentes).
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)
Um comentário em “Momento R do Dia – Gabriel Sallum faz um estudo sobre Aecio e Dilma no Twitter”