Emotionale Selbstreflexion
In dieser Übung gehst du über das reine Subsetten nach positiver und negativer Sprache hinaus. Stattdessen subsettest du den Text für jede der 8 Emotionen aus Plutchiks Emotionsrad, um eine Visualisierung zu erstellen. Mit diesem Ansatz bekommst du mehr Klarheit in der Wortverwendung, indem du Wörter einer spezifischen Emotion zuordnest, statt nur positiv oder negativ.
Mit dem tidytext-Subjektivitätslexikon „nrc" führst du ein inner_join() mit deinem Text durch. Das „nrc"-Lexikon enthält die 8 Emotionen plus die Klassen „positive" und „negative". Daher musst du nach dem inner_join() positive und negative Wörter entfernen. Eine Möglichkeit ist die Negation ! zusammen mit grepl().
Die Funktion „Global Regular Expression Print Logical", grepl(), liefert Wahr oder Falsch zurück, je nachdem, ob in jeder Zeile ein Zeichenkettenmuster gefunden wird. In dieser Übung suchst du nach positive ODER negative mithilfe des Operators |, der „oder" repräsentiert, wie unten gezeigt. Diese senkrechte Linie befindet sich oft über der Eingabetaste auf der Tastatur. Da die Negation ! grepl() vorangestellt ist, wird das T oder F umgekehrt, sodass "positive|negative" ausgeschlossen statt beibehalten wird.
Object <- tibble %>%
filter(!grepl("positive|negative", column_name))
Als Nächstes wendest du count() auf die ermittelten Wörter an und nutzt anschließend pivot_wider(), um den Data Frame zu organisieren.
comparison.cloud() erfordert Eingaben mit Zeilennamen. Deshalb musst du auf ein Base-R-data.frame konvertieren, also data.frame() mit dem Argument row.names aufrufen.
Diese Übung ist Teil des Kurses
<Kurs>Sentimentanalyse in R</Kurs>Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
moby_tidy <- moby %>%
# Inner join to nrc lexicon
___(___, by = c("term" = "word")) %>%
# Drop positive or negative
___(!___("___", sentiment)) %>%
# Count by sentiment and term
___(___, ___) %>%
# Pivot sentiment, using n for values
___(names_from = ___, values_from = ___, values_fill = ___) %>%
# Convert to data.frame, making term the row names
data.frame(row.names = "___")
# Examine
head(moby_tidy)