EmpezarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Revisa una sección del bos_pol$all precargado indexando [1:6,1:3].
  • Añade una nueva columna llamada scaled_polarity aplicando scale() a la columna de puntuación de polaridad bos_pol$all$polarity.
  • Para los comentarios positivos, usa subset() donde la nueva columna bos_reviews$scaled_polarity sea mayor que (>) cero.
  • Para los comentarios negativos, usa subset() donde la nueva columna bos_reviews$scaled_polarity sea menor que (<) cero.
  • Crea pos_terms usando paste() sobre pos_comments.
  • Ahora crea neg_terms con paste() sobre neg_comments.
  • Organiza los documentos colapsados, pos_terms y neg_terms, en un único corpus llamado all_terms.
  • Sigue el flujo de trabajo habitual de tm anidando VectorSource() dentro de VCorpus() aplicado a all_terms.
  • Crea la TermDocumentMatrix() usando el objeto all_corpus. Ten en cuenta que es una TDM ponderada por TfIdf con funciones básicas de limpieza.
  • Cambia all_tdm a all_tdm_m usando as.matrix(). Luego renombra las columnas en el código existente a "positive" y "negative".
  • ¡Por fin! Aplica comparison.cloud() al objeto matriz all_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")
)
Editar y ejecutar código