CommencerCommencez gratuitement

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>
Voir le 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)
Modifier et exécuter le code