Comece agoraComece grátis

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

Ver curso

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_polarity com scale() aplicada à coluna de escore de polaridade bos_pol$all$polarity.
  • Para comentários positivos, use subset() onde a nova coluna bos_reviews$scaled_polarity é maior que (>) zero.
  • Para comentários negativos, use subset() onde a nova coluna bos_reviews$scaled_polarity é menor que (<) zero.
  • Crie pos_terms usando paste() em pos_comments.
  • Agora crie neg_terms com paste() em neg_comments.
  • Organize os documentos colapsados, pos_terms e neg_terms, em um único vetor chamado all_terms.
  • Siga o fluxo de trabalho usual do tm aninhando VectorSource() dentro de VCorpus() aplicado a all_terms.
  • Crie a TermDocumentMatrix() usando o objeto all_corpus. Observe que esta é uma TDM ponderada por TfIdf com funções básicas de limpeza.
  • Converta all_tdm em all_tdm_m usando as.matrix(). Em seguida, renomeie as colunas no código existente para "positive" e "negative".
  • Por fim! aplique comparison.cloud() ao objeto matriz all_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")
)
Editar e Executar Código