Hoje foi um dia bastante importante no Brasil, o dia em que o atual presidente Michel Temer quaaaaaaaase renunciou após o vazamento de vídeos em que ele combina propina para Eduardo Cunha, ex-presidente da Câmara dos Deputados que está preso, para que fique calado. O assunto é trending topic mundial no twitter. Uma hora após seu pronunciamento, vamos investigar rapidamente o que está sendo falado sobre Temer nessa mídia social. Para isso, coletamos 10000 tweets com as palavras-chave “michel temer”.

Em outro post mostramos como fazer a coleta dos dados na API do twitter. Vou apenas postar um exemplo de como fica o código.

library(twitteR)
library(wordcloud)
library(tm)
library(plyr)
library(stringr)
library(magrittr)

consumer_key <- "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
consumer_secret <- "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
access_token <- "XXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
access_secret <- "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"

setup_twitter_oauth(consumer_key,
                    consumer_secret,
                    access_token,
                    access_secret)

tweets <- searchTwitter("Michel Temer", n=10000)
bd <- ldply(tweets, function(t) t$toDataFrame() )  # Salvando os tweets num banco de dados
View(bd)                                           # Ver o banco

text <- sapply(tweets, function(x) x$getText())

Vamos às análises. Quais são as palavras mais faladas nos tweets contendo “Michel Temer”? Depois de ter os dados no ambiente do R, vamos tranformá-lo num corpus textual para análise, retirar os emojis com um regex, transformar todas as palavras em minúsculas, retirar pontuação, retirar palavras que não são interessantes para a análise (preposições, conectivos, etc.) e, obviamente, retirar as palavras “michel” e “temer”.

corpus <- Corpus(VectorSource(enc2native(text)))
corpus <- tm_map(corpus, function(x) gsub("[^[:alpha:][:space:]]*", "", x))
corpus <- tm_map(corpus, content_transformer(tolower))
corpus <- tm_map(corpus, removePunctuation)
corpus <- tm_map(corpus, function(x)removeWords(x,stopwords("pt")))
corpus <- tm_map(corpus, function(x)removeWords(x, c("michel","temer")))

Agora, vamos plotar uma nuvem de palavras:

library(RColorBrewer)
pal2 <- brewer.pal(9,"YlGnBu")
pal2 <- pal2[5:9]
wordcloud(corpus, min.freq=2,max.words=100, random.order=F, colors=pal2)

Agora vamos investigar quem são as pessoas que mais aparecem nesses tweets, ou seja, quais são as contas mais retweetadas:

pessoas <- str_extract_all(text, "@\\w+") %>% unlist
wordcloud(pessoas, min.freq=2,max.words=100, random.order=F, colors=pal2)

Agora, vamos investigar quais são as hashtags mais usadas:

hastags <- str_extract_all(text, "#\\w+") %>% unlist
wordcloud(hastags, min.freq=2,max.words=100, random.order=F, colors=pal2)

Por hoje é só. Aguardem cenas dos próximos capítulos de #BRASILIAOFCARDS!!!