Este é o post gêmeo de O Pronunciamento de Michel Temer no Twitter. Agora, vamos analisar como foram as reações do público em sua página no Facebook. Para isso, raspamos todos os comentários em postagens da página do político do dia 16 ao dia 18 de maio usando o aplicativo Netvizz. Ao todo, foram seis postagens. Vejam o seu conteúdo:
library(tidyverse)
library(lubridate)
library(magrittr)
library(reshape2)
library(tm)
library(wordcloud)
setwd('~/Documentos/temer_facebook')
arqs <- list.files()
temer <- read_tsv(arqs[1])
stats <- read_tsv(arqs[3])
temer$post_text %>% unique %>% print
## [1] "O governo viveu nesta semana seu melhor e seu pior momento. Os indicadores de queda da inflação os números de retorno ao crescimento da economia e os dados de geração de empregos criaram esperança de dias melhores. Não podemos jogar no lixo da história tanto trabalho feito em prol do País. Não renunciarei. Sei o que fiz e sei da correção dos meus atos. Assista:"
## [2] "#AoVivo Acompanhe o pronunciamento do presidente Michel Temer:"
## [3] "Com as mudanças na gestão e o foco em produtividade a Petrobras voltou a crescer e dar lucro. Segundo o presidente da empresa Pedro Parente após um ano de governo do presidente Michel Temer a estatal reverteu prejuízos investiu mais e aumentou a produção. “É uma empresa que volta a ter condição de dar orgulho ao brasileiro”. Assista! Saiba mais: http://bit.ly/2r6uV3u"
## [4] "Para que a União seja forte é preciso que em primeiro lugar os municípios sejam fortalecidos afirmou o presidente Michel Temer em evento com prefeitos de todo o País. Temer reforçou o compromisso do governo em apoiar e dar autonomia às prefeituras para que voltem a investir. Contem com o governo disse. Saiba mais: http://bit.ly/2rn1Pdo"
## [5] "Com a retomada da economia o mercado de trabalho dá os primeiros sinais de recuperação. No mês passado mais de 59 mil vagas formais foram criadas sendo o primeiro resultado positivo para abril desde 2014. Os dados são do Cadastro Geral de Empregados e Desempregados (Caged) e foram divulgados nesta terça-feira (16) pelo Ministério do Trabalho."
## [6] "#AoVivo Presidente Michel Temer abre a 20ª edição da Marcha a Brasília em Defesa dos Municípios. Acompanhe: CNM - Confederação Nacional de Municípios"
Agora vamos verificar como foram as reações a essas seis postagens.
like <- stats$rea_LIKE
love <- stats$rea_LOVE
wow <- stats$rea_WOW
haha <- stats$rea_HAHA
sad <- stats$rea_SAD
angry <- stats$rea_ANGRY
thankful <- stats$rea_THANKFUL
emotions <- data.frame(like=like, love=love, wow=wow,
haha=haha, sad=sad,angry=angry,thankful=thankful,
date=stats$post_published, id=1:length(like), stringsAsFactors = F)
mdf <- melt(emotions[,-8], id.vars="id", value.name="value", variable.name="reaction")
ggplot(mdf, aes(x=id, y=value, group = reaction, color = reaction))+geom_line()+
scale_color_manual(name="Reações",values = c("blue","red","purple","yellow","grey","black","green"))+
labs(title="Reações a postagens da página Michel Temer", y="Número de reações", x="")+
scale_x_continuous(breaks = c(1,2,3,4,5,6), labels=c(1,2,3,4,5,6))
Agora, vamos olhar como foi o fluxo de comentário por hora na página.
temer$comment_date <- ymd_hms(temer$comment_published)
temer$comment_date <- round_date(temer$comment_date, "hour")
datas = as.data.frame(table(temer$comment_date), stringsAsFactors = F)
ggplot(temer, aes(x=comment_date))+geom_path(stat = "count", lwd=1)+
labs(x='',y='Número de Comentários', title="Fluxo de Comentários por hora")
Finalmente, vamos verificar as palavras mais usadas nos comentários.
text = temer$comment_message %>% tolower %>% removePunctuation %>% removeWords(., stopwords('pt'))
pal <- brewer.pal(9, "RdBu")[1:4]
wordcloud(enc2native(text), min.freq = 2, max.words = 100, random.order = F, colors = pal)
Agora, vamos verificar a emergência de assuntos através de clusterização hierárquica e através de uma rede de palavras.
corpus <- Corpus(VectorSource(text))
tdm <- TermDocumentMatrix(corpus)
tdm <- removeSparseTerms(tdm, sparse = 0.996)
df <- as.data.frame(as.matrix(tdm))
#dim(df)
df.scale <- scale(df)
d <- dist(df.scale, method = "euclidean")
fit.ward2 <- hclust(d, method = "ward.D2")
plot(fit.ward2)
library(igraph)
g <- graph_from_incidence_matrix(as.matrix(tdm))
p = bipartite_projection(g, which = "FALSE")
V(p)$shape = "none"
deg = degree(p)
#Retirando um emoji
p = delete_vertices(p,13)
plot(p, vertex.label.cex=deg/20, edge.width=(E(p)$weight)/100,
edge.color=adjustcolor("grey60", .5),
vertex.label.color=adjustcolor("red", .7))
Veja como os assuntos emergem no grafo. Comentários relacionados à proposta de lei de migração, jargões como “tchau querido” e a “casa caiu” e algumas palavras que saltam aos olhos como “vergonha” e “cadeia”.
Por hoje é só! Até a próxima!