Introspection émotionnelle
Dans cet exercice, vous allez au-delà du simple sous-ensemble sur le langage positif et négatif. Vous allez plutôt sous-ensemble le texte selon chacune des 8 émotions de la roue des émotions de Plutchik pour construire une visualisation. Avec cette approche, vous gagnerez en clarté sur l'usage des mots en les reliant à une émotion précise, et non plus seulement à du positif ou du négatif.
À l'aide du lexique de subjectivité "nrc" du package tidytext, vous effectuez un inner_join() avec votre texte. Le lexique "nrc" comprend les 8 émotions, ainsi que les classes de termes positifs et négatifs. Vous devrez donc supprimer 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(), renvoie TRUE ou FALSE si un motif est identifié dans chaque ligne. Dans cet exercice, vous chercherez positive OU negative en utilisant l'opérateur |, qui représente « ou », comme ci-dessous. Cette barre verticale se trouve souvent au-dessus de la touche Entrée d'un clavier. Comme la négation ! précède grepl(), le T ou F est inversé, si bien que "positive|negative" est supprimé au lieu d'être conservé.
Object <- tibble %>%
filter(!grepl("positive|negative", column_name))
Ensuite, vous appliquez count() sur les mots identifiés, puis pivot_wider() pour organiser le data frame.
comparison.cloud() exige que son entrée ait des noms de lignes ; vous devrez donc convertir l'objet en data.frame de base R via data.frame() avec l'argument row.names.
Cet exercice fait partie du cours
<cours>Analyse de sentiments en R</cours>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)