Diviser pour mieux voir : utiliser la polarité pour un nuage de comparaison
Maintenant que vous avez vu comment la polarité peut servir à découper un corpus, mettons cela en pratique ! Ce code va vous guider pour scinder un corpus selon le sentiment, afin d'examiner des sous-ensembles plutôt que l'ensemble complet.
Votre session R contient oz_pol, obtenu en appliquant polarity() à « The Wonderful Wizard of Oz ».
Pour simplifier, nous avons créé une fonction personnalisée pol_subsections() qui divise le corpus selon le score de polarité. D'abord, la fonction accepte un data frame où chaque ligne correspond à une phrase ou un document du corpus. Le data frame est filtré partout où les valeurs de polarité sont supérieures à 0 ou inférieures à 0. Enfin, les phrases positives et négatives (polarités non nulles) sont concaténées avec le paramètre collapse pour regrouper les termes en un seul corpus. Pour finir, les deux documents sont assemblés dans un unique vecteur de deux documents distincts.
pol_subsections <- function(df) {
x.pos <- subset(df$text, df$polarity > 0)
x.neg <- subset(df$text, df$polarity < 0)
x.pos <- paste(x.pos, collapse = " ")
x.neg <- paste(x.neg, collapse = " ")
all.terms <- c(x.pos, x.neg)
return(all.terms)
}
À ce stade, vous avez écarté les phrases neutres et souhaitez organiser le texte restant. Dans cet exercice, nous utilisons à nouveau l'opérateur %>% pour chaîner des objets à des fonctions. Après un léger nettoyage, utilisez comparison.cloud() pour créer la visualisation.
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.
oz_df <- oz_pol$all %>%
# Select text.var as text and polarity
___(text = ___, polarity = ___)
# Apply custom function pol_subsections()
all_terms <- ___(___)
all_corpus <- all_terms %>%
# Source from a vector
___() %>%
# Make a volatile corpus
___()