LoslegenKostenlos starten

AFINN: I'm your Huckleberry

Jetzt wechseln wir zum AFINN-Lexikon. Das AFINN-Lexikon weist numerische Werte von 5 bis -5 zu, nicht nur positiv oder negativ. Anders als die Spalte sentiment im Bing-Lexikon heißt die Spalte mit den Sentimentwerten im AFINN-Lexikon value.

Wie zuvor verwendest du zuerst inner_join() und danach count(). Anschließend summieren wir die Bewertungen je Zeile mit group_by() und summarize() aus dplyr. Die Funktion group_by() nimmt ein vorhandenes Data Frame und macht daraus ein gruppiertes Data Frame, in dem Operationen „pro Gruppe" ausgeführt werden. Mit summarize() berechnest du dann für jede Gruppe in deinem Data Frame einen Wert mithilfe einer aggregierenden Funktion wie sum() oder mean(). In unserem Fall sähe das z. B. so aus:

data_frame %>% 
    group_by(book_line) %>% 
    summarize(total_value = sum(book_line))

In der tidy-Version von Huckleberry Finn enthält Zeile 9703 die Wörter „best", „ever", „fun", „life" und „spirit". „best" und „fun" haben AFINN-Scores von 3 bzw. 4. Nach der Aggregation hat Zeile 9703 also einen Gesamtwert von 7.

Im tidyverse ist filter() subset() vorzuziehen, weil es dessen Funktionalität mit einer einfacheren Syntax vereint. Hier ist ein Beispiel, das data_frame filter()t, sodass ein Wert in column1 gleich 24 ist. Beachte: Der Spaltenname steht nicht in Anführungszeichen.

filter(data_frame, column1 == 24)

Das Objekt afinn enthält das AFINN-Lexikon. Das Objekt huck ist eine tidy-Version von Mark Twains Adventures of Huckleberry Finn zur Analyse.

Zeile 5400 lautet: All the loafers looked glad; I reckoned they was used to having fun out of Boggs. Stoppwörter und Satzzeichen wurden im Datensatz bereits entfernt.

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.

# See abbreviated line 5400
huck %>% filter(line == 5400)

# What are the scores of the sentiment words?
afinn %>% filter(word %in% c("fun", "glad"))

huck_afinn <- huck %>% 
  # Inner Join to AFINN lexicon
  inner_join(___, by = c("___" = "___")) %>%
  # Count by value and line
  ___(___, ___)
Code bearbeiten und ausführen