Nube de comparación escalada
¿Recuerdas la "inflación de notas" de las puntuaciones de polaridad en las reseñas de alquiler? A veces, otra forma de descubrir información es reescalar las puntuaciones a 0 y luego hacer el subconjunto del corpus. Esto significa que algunos comentarios que antes eran positivos pueden pasar a la sección negativa o viceversa, ya que la media se ajusta a 0. Este ejercicio te ayudará a escalar las puntuaciones y luego a volver a representar la comparison.cloud(). Eliminar la "inflación de notas" puede aportar información adicional.
Antes aplicaste polarity() a bos_reviews$comments y creaste una comparison.cloud(). En este ejercicio vas a usar scale() sobre el resultado antes de crear la comparison.cloud(). ¡Fíjate si ahora la visualización muestra algo diferente!
Como este es en gran parte un ejercicio de repaso, gran parte del código ya está: solo completa con los objetos y parámetros correctos.
Este ejercicio forma parte del curso
Análisis de sentimiento en R
Instrucciones del ejercicio
- Revisa una sección del
bos_pol$allprecargado indexando[1:6,1:3]. - Añade una nueva columna llamada
scaled_polarityaplicandoscale()a la columna de puntuación de polaridadbos_pol$all$polarity. - Para los comentarios positivos, usa
subset()donde la nueva columnabos_reviews$scaled_polaritysea mayor que (>) cero. - Para los comentarios negativos, usa
subset()donde la nueva columnabos_reviews$scaled_polaritysea menor que (<) cero. - Crea
pos_termsusandopaste()sobrepos_comments. - Ahora crea
neg_termsconpaste()sobreneg_comments. - Organiza los documentos colapsados,
pos_termsyneg_terms, en un único corpus llamadoall_terms. - Sigue el flujo de trabajo habitual de
tmanidandoVectorSource()dentro deVCorpus()aplicado aall_terms. - Crea la
TermDocumentMatrix()usando el objetoall_corpus. Ten en cuenta que es una TDM ponderada por TfIdf con funciones básicas de limpieza. - Cambia
all_tdmaall_tdm_musandoas.matrix(). Luego renombra las columnas en el código existente a"positive"y"negative". - ¡Por fin! Aplica
comparison.cloud()al objeto matrizall_tdm_m. Fíjate en las nuevas palabras negativas más frecuentes. ¡Puede que descubras algún insight que antes no veías!
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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")
)