LoslegenKostenlos starten

Gestapeltes Balkendiagramm vergleichen und gegenüberstellen

Eine weitere Möglichkeit, deinen Text zu unterteilen, ist zu ermitteln, wie viel des/der Dokument(e) aus positiven oder negativen Wörtern besteht/bestehen. Ein Restaurantbericht kann zum Beispiel positive Aspekte enthalten wie „das Essen war gut", fährt dann aber fort mit „das Restaurant war schmutzig, das Personal unhöflich und das Parken furchtbar." Daher möchtest du vielleicht verstehen, wie viel eines Dokuments auf positive bzw. negative Sprache entfällt. In diesem Beispiel läge der negative Anteil höher als der positive.

Eine Methode dafür ist, die positiven und negativen Wörter mit count() zu zählen und dann durch die Anzahl der identifizierten Subjektivitätswörter zu teilen. Im Restaurantbeispiel würde „gut" als 1 positiv zählen und „schmutzig", „unhöflich" und „furchtbar" als 3 negative Begriffe. Eine einfache Rechnung lässt dich zu dem Schluss kommen, dass die Rezension zu 25 % positiv und zu 75 % negativ ist, da es 4 Subjektivitätsbegriffe gab.

Beginne mit dem inner_join() auf einem vereinheitlichten, aufgeräumten Data Frame mit 4 Büchern: Agamemnon, Oz, Huck Finn und Moby Dick. Genau wie in der vorherigen Übung verwendest du filter() und grepl().

Um das count() durchzuführen, musst du die Daten zunächst nach Buch und dann nach Sentiment gruppieren. Alle positiven Wörter für Agamemnon müssen zum Beispiel gruppiert und gezählt werden, damit positive Wörter aus allen Büchern nicht vermischt werden. Zum Glück kannst du mehrere Variablen direkt an count() übergeben.

Diese Übung ist Teil des Kurses

<Kurs>Sentimentanalyse in R</Kurs>
Kurs ansehen

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Review tail of all_books
tail(all_books)

# Count by book & sentiment
books_sent_count <- all_books %>%
  # Inner join to nrc lexicon
  ___(___, by = c("term" = "word")) %>% 
  # Keep only positive or negative
  ___(__("___", sentiment)) %>% 
  # Count by book and by sentiment
  ___(___, ___)
  
# Review entire object
books_sent_count
Code bearbeiten und ausführen