EmpezarEmpieza gratis

Introspección emocional

En este ejercicio irás más allá de filtrar por lenguaje positivo y negativo. En su lugar, vas a filtrar el texto por cada una de las 8 emociones del círculo de Plutchik para construir una visualización. Con este enfoque, obtendrás más claridad sobre el uso de las palabras al mapearlas a una emoción concreta en lugar de solo positivo o negativo.

Usando el léxico de subjetividad de tidytext, "nrc", harás un inner_join() con tu texto. El léxico "nrc" incluye las 8 emociones más las clases de términos positivos y negativos. Por tanto, tendrás que eliminar las palabras positivas y negativas después de hacer el inner_join(). Una forma de hacerlo es con la negación, !, y grepl().

La función "Global Regular Expression Print Logical", grepl(), devuelve Verdadero o Falso si identifica un patrón de cadena en cada fila. En este ejercicio buscarás positive OR negative usando el operador |, que representa "or", como se muestra abajo. A menudo esta barra vertical está encima de la tecla Enter en el teclado. Dado que la negación ! precede a grepl(), el V o F se invierte y así "positive|negative" se descarta en lugar de mantenerse.

Object <- tibble %>%
  filter(!grepl("positive|negative", column_name))

Después, aplica count() sobre las palabras identificadas junto con pivot_wider() para ordenar el data frame.

comparison.cloud() requiere que su entrada tenga nombres de fila, así que tendrás que convertirlo a un data.frame de base R, llamando a data.frame() con el argumento row.names.

Este ejercicio forma parte del curso

Análisis de sentimiento en R

Ver curso

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

moby_tidy <- moby %>%
  # Inner join to nrc lexicon
  ___(___, by = c("term" = "word")) %>% 
  # Drop positive or negative
  ___(!___("___", sentiment)) %>% 
  # Count by sentiment and term
  ___(___, ___) %>% 
  # Pivot sentiment, using n for values
  ___(names_from = ___, values_from = ___, values_fill = ___) %>%
  # Convert to data.frame, making term the row names
  data.frame(row.names = "___")

# Examine
head(moby_tidy)
Editar y ejecutar código