Twitters

Nuvem de palavra a partir dos twitters sobre #stf Também faça uma análise de sentimentos com relação a esses twitters coletados.

Bibliotecas Utilizadas

library("tm")
## Loading required package: NLP
library("wordcloud")
## Loading required package: RColorBrewer
library("readr")
library("RColorBrewer")
library("twitteR")

acesso API Twitter

De posse das chaves da API do Twitter (https://developer.twitter.com/apps), executar o comando abaixo:

setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret)
## [1] "Using direct authentication"

Buscando os 500 twitters com a hashtag “Stf”:

tweets <- searchTwitter("#stf", n=500, lang = "pt")
### Warning in doRppAPICall("search/tweets", n, params = params, retryOnRateLimit =
### retryOnRateLimit, : 500 tweets were requested but the API can only return 387
tweets<- twListToDF(tweets)
tweets_t <- paste(tweets$text,collapse= " ")

Criando o curpus à partir dos tweets:

corpus <- VCorpus(VectorSource(tweets_t))

Limpeza dos dados

corpus <- tm_map(corpus, content_transformer(tolower))
#Remove pontuação
corpus <- tm_map(corpus, content_transformer(removePunctuation))
#Remove espaços extras em branco
corpus <- tm_map(corpus, content_transformer(stripWhitespace))
#Remove palavras ruído
corpus <- tm_map(corpus, content_transformer(removeWords), stopwords("en"))
# removeURLs
removeURL <- function(x)gsub("http[^[:space:]]*", "",x)> corpus <-tm_map(corpus,removeURL)
# remove qualquer coisa que não seja letras em português e espaço.
removeNumPunct <- function(x)gsub("[^[:alpha:][:space:]]*", "",x)
corpus <-tm_map(corpus,content_transformer(removeNumPunct))

matriz Termo

dtm<-TermDocumentMatrix(corpus)
dtm<- as.matrix(dtm)

Frequencia de cada palavra

frq <-sort(rowSums(dtm), decreasing = T) 

Nuvem de palavras

wordcloud(corpus, colors = c("tomato", "wheat", "lightblue"), scale = c(4, 0.2), random.color = TRUE, rot.per = 0.5, min.freq = 1, font = 2, family = "serif", max.words = 60)

Questão 2

Faça um gráfico de barras e um gráfico de pizza para os dados apresentados na tabela abaixo. Adicione título, cores, legenda e nomes de eixos(gráfico de barras). Abaixo submeta o link do RPubs com o resultado dessa questão. Note que cada gráfico deve ficar dentro de uma aba específica. *

bibliotecas:

library("ggplot2")
## 
## Attaching package: 'ggplot2'
## The following object is masked from 'package:NLP':
## 
##     annotate
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:twitteR':
## 
##     id, location
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
tipo <- c("Escorpião", "Serpente", "Aranha", "Outros Animais")

total <- c(8208, 4944, 4661, 5834)

percent <- c(34.71, 20.91, 19.71, 24.67)

df <- data.frame(tipo, total, percent)

Barras

barplot(df$total, col=rainbow(4), main= "Casos de intoxicação humana por animal peçonhento", xlab = "Tipos de Animais", ylab = "Quantidade")
legend("topright", legend = (df$tipo), cex=0.8, fill=rainbow(4), title = "Tipos de Animais")

Pizza

lbls <- paste(df$percent,"%",sep="")

# Cria gráfico de pizza sobre os assassinatos
pie(x= df$percent, labels = lbls, col=rainbow(4), main = "Casos de intoxicação humana por animal peçonhento")
legend("topright", legend = (df$tipo), cex=0.8, fill=rainbow(4), title = "Tipos de Animais")