Stressed Out!
Ici, vous allez ajuster les mots négatifs pour tenir compte du texte précis, puis comparer les scores de polarity() de base et personnalisés.
Une chanson populaire de Twenty One Pilots s'intitule « Stressed Out ». En parcourant les paroles, vous constaterez qu'elle parle de nostalgie de jeunesse. Globalement, la plupart des gens diraient que la polarité est négative. Les paroles mentionnent à répétition le stress, les peurs et le fait de prétendre.
Comparons donc les paroles de la chanson en utilisant le lexique de subjectivité par défaut et aussi un lexique personnalisé.
Pour commencer, vous devez vérifier que le lexique de subjectivité key.pol ne contient pas déjà le terme que vous souhaitez ajouter. Une façon de vérifier est d'utiliser grep(). La fonction grep() renvoie la ligne contenant les caractères qui correspondent à un motif de recherche. Voici un exemple utilisé lors de l'indexation.
data_frame[grep("search_pattern", data_frame$column), ]
Après avoir vérifié que l'argot ou le nouveau mot n'est pas déjà dans le lexique key.pol, vous devez l'ajouter. Le code ci-dessous utilise sentiment_frame() pour construire le nouveau lexique. Dans ce code, sentiment_frame() accepte le vecteur de mots positifs d'origine, positive.words. Ensuite, les negative.words d'origine sont concaténés à « smh » et « kappa », tous deux considérés comme de l'argot négatif. Bien que vous puissiez définir les pondérations positives et négatives, la valeur par défaut est 1 et -1, donc elles ne sont pas incluses ci-dessous.
custom_pol <- sentiment_frame(positive.words, c(negative.words, "hate", "pain"))
Vous êtes maintenant prêt à appliquer la polarité, et celle-ci référencera le lexique de subjectivité personnalisé!
Cette activité fait partie du cours
Analyse de sentiment en R
Instructions de l’exercice
Nous avons créé stressed_out, qui contient les paroles de la chanson « Stressed Out » de Twenty One Pilots.
- Utilisez
polarity()surstressed_outpour voir le score par défaut. - Vérifiez dans
key.polla présence de mots contenant « stress ». Utilisezgrep()pour indexer la trame de données en recherchant dans la colonnex. - Créez
custom_polcomme nouvelle trame de données de sentiments.- Appelez
sentiment_frame()et passezpositive.wordscomme premier argument sans concaténer de nouveaux termes. - Ensuite, utilisez
c()pour combinernegative.wordsavec les nouveaux termes "stressed" et "turn back".
- Appelez
- Réappliquez
polarity()àstressed_outavec le paramètre additionnelpolarity.frame = custom_polpour comparer comment les nouveaux mots modifient le score afin de mieux représenter la chanson.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# stressed_out has been pre-defined
head(stressed_out)
# Basic lexicon score
___(___)
# Check the subjectivity lexicon
___[___("stress", x)]
# New lexicon
custom_pol <- ___(___, c(negative.words, "___", "___"))
# Compare new score
___(___, polarity.frame = ___)