Stressed Out!
Hier passt du die negativen Wörter an den konkreten Text an. Danach vergleichst du die grundlegenden und die benutzerdefinierten polarity()-Werte.
Ein beliebter Song von Twenty One Pilots heißt "Stressed Out". Wenn du die Songtexte liest, merkst du, dass es um jugendliche Nostalgie geht. Insgesamt würden die meisten sagen, dass die Polarität negativ ist. Immer wieder tauchen Stress, Ängste und so tun als ob auf.
Vergleichen wir die Songzeilen einmal mit dem Standard-Subjectivity-Lexikon und einem benutzerdefinierten.
Zu Beginn solltest du prüfen, ob das key.pol-Subjectivity-Lexikon den Begriff, den du hinzufügen willst, nicht bereits enthält. Eine Möglichkeit ist grep(). Die Funktion grep() gibt die Zeilen zurück, die Zeichen enthalten, die zu einem Suchmuster passen. Hier ist ein Beispiel beim Indizieren:
data_frame[grep("search_pattern", data_frame$column), ]
Nachdem du überprüft hast, dass der Slang oder das neue Wort nicht bereits im key.pol-Lexikon steht, musst du es hinzufügen. Der folgende Code verwendet sentiment_frame(), um das neue Lexikon zu erstellen. In diesem Code übernimmt sentiment_frame() den ursprünglichen positiven Wortvektor positive.words. Anschließend werden die ursprünglichen negative.words mit "smh" und "kappa" verknüpft, beides als negativer Slang betrachtet. Obwohl du die positiven und negativen Gewichte festlegen kannst, sind die Standardwerte 1 und -1, daher werden sie unten nicht angegeben.
custom_pol <- sentiment_frame(positive.words, c(negative.words, "hate", "pain"))
Jetzt kannst du die Polarität anwenden, und dabei wird auf das benutzerdefinierte Subjectivity-Lexikon verwiesen!
Diese Übung ist Teil des Kurses
<Kurs>Sentimentanalyse in R</Kurs>Übungsanweisungen
Wir haben stressed_out erstellt, das die Lyrics des Songs "Stressed Out" von Twenty One Pilots enthält.
- Verwende
polarity()aufstressed_out, um den Standardwert zu sehen. - Prüfe
key.polauf Wörter, die "stress" enthalten. Nutzegrep(), um imx-Feld des Data Frames zu suchen und so zu indizieren. - Erstelle
custom_polals neuen Sentiment-Data-Frame.- Rufe
sentiment_frame()auf und übergibpositive.wordsals erstes Argument, ohne neue Begriffe zu verknüpfen. - Verwende anschließend
c(), umnegative.wordsmit den neuen Begriffen "stressed" und "turn back" zu kombinieren.
- Rufe
- Wende
polarity()erneut aufstressed_outan und nutze den zusätzlichen Parameterpolarity.frame = custom_pol, um zu vergleichen, wie die neuen Wörter den Wert in Richtung einer genaueren Darstellung des Songs verändern.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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 = ___)