Polarité tidy avec Bing : exemple simple
Maintenant que vous maîtrisez les bases d'un inner join, appliquons-le au lexique « Bing ». N'oubliez pas que la fonction inner_join() provient de dplyr et que l'objet lexique s'obtient via la fonction get_sentiments() de tidytext.
Le lexique Bing étiquette les mots comme positifs ou négatifs. Les trois exercices suivants vous permettent de manipuler ce lexique spécifique. Pour utiliser get_sentiments(), passez une chaîne comme "afinn", "bing", "nrc" ou "loughran" pour télécharger le lexique correspondant.
Workflow de l'inner join :
- Obtenez le bon lexique avec
get_sentiments(). - Passez le lexique et les données textuelles tidy à
inner_join(). - Pour que
inner_join()fonctionne, il faut un nom de colonne commun. S'il n'y en a pas, déclarez-les avec un paramètre supplémentaire,byégal àc, comme ci-dessous.
object <- x %>%
inner_join(y, by = c("column_from_x" = "column_from_y"))
- Réalisez ensuite quelques agrégations et analyses sur l'intersection des tables.
Cet exercice fait partie du cours
<cours>Analyse de sentiments en R</cours>Instructions de l’exercice
Nous avons chargé ag_txt, qui contient les 100 premières lignes d'Agamemnon, et ag_tidy, sa version tidy.
- Pour comparer, utilisez
polarity()surag_txt. - Récupérez le lexique
"bing"en passant cette chaîne àget_sentiments(). - Effectuez un
inner_join()avecag_tidyetbing.- Les colonnes de mots s'appellent
"term"dansag_tidyet"word"dans le lexique ; déclarez donc l'argumentby. - Nommez le nouvel objet
ag_bing_words.
- Les colonnes de mots s'appellent
- Affichez
ag_bing_wordset examinez quelques mots présents dans le résultat. - Passez
ag_bing_wordsàcount()sursentimenten utilisant l'opérateur pipe %>%. Comparez le score depolarity()au ratio de comptes de sentiments.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Qdap polarity
___
# Get Bing lexicon
bing <- get_sentiments("___")
# Join text to lexicon
ag_bing_words <- ___(___, ___, by = c("___" = "___"))
# Examine
ag_bing_words
# Get counts by sentiment
ag_bing_words %>%
___(___)