Introspection émotionnelle
Dans cet exercice, vous allez au-delà d'un simple sous-ensemble basé sur le langage positif et négatif. Vous allez plutôt filtrer le texte selon chacune des 8 émotions de la roue des émotions de Plutchik pour construire un visuel. Avec cette approche, vous obtiendrez une meilleure clarté sur l'usage des mots en les associant à une émotion précise plutôt qu'à seulement positif ou négatif.
En utilisant le lexique de subjectivité "nrc" de tidytext, vous effectuez un inner_join() avec votre texte. Le lexique "nrc" contient les 8 émotions, plus les catégories de termes positifs et négatifs. Vous devrez donc retirer les mots positifs et négatifs après avoir effectué votre inner_join(). Une façon de le faire est d'utiliser la négation ! avec grepl().
La fonction "Global Regular Expression Print Logical", grepl(), retourne Vrai ou Faux si un motif de chaîne est repéré dans chaque ligne. Dans cet exercice, vous chercherez positive OU negative en utilisant l'opérateur |, qui représente « ou », comme ci-dessous. Souvent, cette barre verticale se trouve au-dessus de la touche Entrée sur un clavier. Comme la négation ! précède grepl(), le T ou F est inversé, de sorte que "positive|negative" est exclu plutôt que conservé.
Object <- tibble %>%
filter(!grepl("positive|negative", column_name))
Ensuite, vous appliquez count() sur les mots identifiés, puis pivot_wider() pour organiser le tableau de données.
comparison.cloud() exige que son entrée ait des noms de lignes; vous devrez donc convertir l'objet en data.frame de base R, en appelant data.frame() avec l'argument row.names.
Cette activité fait partie du cours
Analyse de sentiment en R
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)