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>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