Nuvem de comparação com escala
Lembra da "inflação de notas" nos escores de polaridade dos comentários dos aluguéis? Às vezes, outra forma de revelar um insight é reescalonar os escores para que a média vire 0 e só então fazer o subconjunto do corpus. Isso significa que alguns comentários antes positivos podem passar para a parte negativa, ou vice-versa, já que a média mudou para 0. Neste exercício, você vai reescalonar os escores e depois recriar a comparison.cloud(). Remover a "inflação de notas" pode trazer insights extras.
Antes, você aplicou polarity() em bos_reviews$comments e criou uma comparison.cloud(). Neste exercício, você vai aplicar scale() ao resultado antes de criar a comparison.cloud(). Veja se isso revela algo diferente na visualização!
Como este é, em grande parte, um exercício de revisão, muito do código já está pronto — basta preencher os objetos e parâmetros corretos!
Este exercicio faz parte do curso
Análise de Sentimentos em R
Instruções do exercicio
- Revise uma seção do
bos_pol$all(pré-carregado) indexando[1:6,1:3]. - Adicione uma nova coluna chamada
scaled_polaritycomscale()aplicada à coluna de escore de polaridadebos_pol$all$polarity. - Para comentários positivos, use
subset()onde a nova colunabos_reviews$scaled_polarityé maior que (>) zero. - Para comentários negativos, use
subset()onde a nova colunabos_reviews$scaled_polarityé menor que (<) zero. - Crie
pos_termsusandopaste()empos_comments. - Agora crie
neg_termscompaste()emneg_comments. - Organize os documentos colapsados,
pos_termseneg_terms, em um único vetor chamadoall_terms. - Siga o fluxo de trabalho usual do
tmaninhandoVectorSource()dentro deVCorpus()aplicado aall_terms. - Crie a
TermDocumentMatrix()usando o objetoall_corpus. Observe que esta é uma TDM ponderada por TfIdf com funções básicas de limpeza. - Converta
all_tdmemall_tdm_musandoas.matrix(). Em seguida, renomeie as colunas no código existente para"positive"e"negative". - Por fim! aplique
comparison.cloud()ao objeto matrizall_tdm_m. Repare nas novas palavras negativas mais frequentes. Quem sabe surge um insight que você ainda não tinha visto!
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# Review
___
# Scale/center & append
bos_reviews$___ <- scale(___)
# Subset positive comments
pos_comments <- subset(bos_reviews$comments, ___)
# Subset negative comments
neg_comments <- subset(bos_reviews$comments, ___)
# Paste and collapse the positive comments
pos_terms <- paste(___, collapse = " ")
# Paste and collapse the negative comments
neg_terms <- paste(___, collapse = " ")
# Organize
all_terms<- c(___, ___)
# VCorpus
all_corpus <- ___(VectorSource(___))
# TDM
all_tdm <- TermDocumentMatrix(
___,
control = list(
weighting = weightTfIdf,
removePunctuation = TRUE,
stopwords = stopwords(kind = "en")
)
)
# Column names
___ <- as.matrix(___)
colnames(all_tdm_m) <- c("___", "___")
# Comparison cloud
comparison.cloud(
___,
max.words = 100,
colors = c("darkgreen", "darkred")
)