CommencerCommencez gratuitement

Comparer et contraster avec un diagramme en barres empilées

Une autre façon d'analyser votre texte consiste à mesurer quelle part du ou des documents est composée de mots positifs ou négatifs. Par exemple, un avis de restaurant peut comporter des points positifs comme « the food was good », mais enchaîner avec « the restaurant was dirty, the staff was rude and parking was awful. » Vous pouvez donc vouloir savoir quelle proportion du document est consacrée à un langage positif vs négatif. Dans cet exemple, la part négative serait plus élevée que la positive.

Une méthode consiste à count() les mots positifs et négatifs, puis à diviser par le nombre de mots de subjectivité identifiés. Dans l'exemple de l'avis, « good » compte pour 1 positif et « dirty », « rude » et « awful » comptent pour 3 termes négatifs. Un calcul simple amènerait à conclure que l'avis est positif à 25 % et négatif à 75 %, puisqu'il y a 4 termes de subjectivité.

Commencez par effectuer le inner_join() sur un jeu de données ordonné unifié contenant 4 livres : Agamemnon, Oz, Huck Finn et Moby Dick. Comme dans l'exercice précédent, vous utiliserez filter() et grepl().

Pour réaliser le count(), vous devez regrouper les données par livre, puis par sentiment. Par exemple, tous les mots positifs d'Agamemnon doivent être regroupés puis comptés, afin de ne pas mélanger les mots positifs de tous les livres. Heureusement, vous pouvez passer plusieurs variables directement à count().

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.

# Review tail of all_books
tail(all_books)

# Count by book & sentiment
books_sent_count <- all_books %>%
  # Inner join to nrc lexicon
  ___(___, by = c("term" = "word")) %>% 
  # Keep only positive or negative
  ___(__("___", sentiment)) %>% 
  # Count by book and by sentiment
  ___(___, ___)
  
# Review entire object
books_sent_count
Modifier et exécuter le code