Vocês sabiam que dá para integrar a linguagem R com o twitter? Sim, é feito através do pacote tweetR que conecta o seu console a API do twitter, conseguindo extrair dados valiosos de pequenos textos em até 140 carcteres. Há um grande campo sobre esse tipo de análise chamada de Análise de Sentimento.
Com certeza você ja viu uma nuvem de palavras, só que agora você vai ter acesso ao código de como faze -la! Eu fiz com uma busca pela palavra ReformadaPrevidencia no twitter. Para ter acesso a API, você deve fazer um app na parte de desenvolvedores do twitter, para ter acesso as chaves. Não é complicado, so ir aqui e ver o tutorial.
# Pacotes
library(twitteR)
library(wordcloud)
library(SnowballC)
library(tm)
# Chaves API
consumer_key <- "Sua Chave de acessp"
consumer_secret <-"Sua Chave secreta"
access_token <- "Seu Token"
access_secret <- "Seu acesso secreto"
# Obtendo a requisição
setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret)
## [1] "Using direct authentication"
# Baixando dados
dados <- searchTwitter('reformadaprevidencia', n=1000, lang = 'pt')
# Extraindo texto
dados.texto <- sapply(dados, function(x) x$getText())
# Transformando em corpus
dados.texto <- Corpus(VectorSource(dados.texto))
# Removendo pontuação,stopwords, numeros e deixando tudo em minusculo
dados.texto <- TermDocumentMatrix(dados.texto,
control = list(removePunctuation = TRUE,
stopwords = c("Para","Quem",stopwords('pt')),
removeNumbers=TRUE, tolower=TRUE))
# Trasnformando em matriz
dados.matrix <- as.matrix(dados.texto)
# Pegando a frequencia dos termos
dados.freq <- sort(rowSums(dados.matrix), decreasing = TRUE)
# Transformando em data frame
dados.df <- data.frame(term = names(dados.freq), freq = dados.freq)
# Fazendo wordcloud
wordcloud(dados.df$term, dados.df$freq, min.freq=5, max.words=200,
random.order=FALSE, colors=brewer.pal(8, 'Dark2'))