Zacznij terazZacznij za darmo

AFINN: czas na analizę

Teraz przechodzimy do leksykonu AFINN. Leksykon AFINN przypisuje słowom wartości liczbowe od -5 do 5 – nie tylko etykiety „pozytywny" lub „negatywny". W odróżnieniu od leksykonu Bing, gdzie kolumna z oceną nazywa się sentiment, w leksykonie AFINN odpowiednia kolumna nosi nazwę value.

Podobnie jak wcześniej, stosujesz inner_join(), a następnie count(). Aby zsumować wyniki dla każdego wiersza tekstu, skorzystaj z funkcji group_by() i summarize() z pakietu dplyr. Funkcja group_by() przekształca istniejącą ramkę danych w zgrupowaną ramkę, w której operacje są wykonywane „w obrębie grupy". Następnie summarize() pozwala obliczyć wartość dla każdej grupy przy użyciu funkcji agregującej, takiej jak sum() lub mean(). W naszym przypadku wygląda to tak:

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

W wersji tidy powieści Huckleberry Finn wiersz 9703 zawiera słowa „best", „ever", „fun", „life" i „spirit". Słowa „best" i „fun" mają w leksykonie AFINN wyniki odpowiednio 3 i 4. Po agregacji wiersz 9703 uzyska łączny wynik 7.

W tidyverse filter() jest preferowany zamiast subset(), ponieważ łączy funkcjonalność subset() z prostszą składnią. Poniżej przykład filtrowania ramki danych data_frame dla wierszy, w których wartość w kolumnie column1 wynosi 24. Zwróć uwagę, że nazwa kolumny nie jest ujęta w cudzysłów.

filter(data_frame, column1 == 24)

Obiekt afinn zawiera leksykon AFINN. Obiekt huck to wersja tidy powieści Marka Twaina Przygody Huckleberry'ego Finna przygotowana do analizy.

Wiersz 5400 to: All the loafers looked glad; I reckoned they was used to having fun out of Boggs. Stopwords i znaki interpunkcyjne zostały już usunięte ze zbioru danych.

To ćwiczenie jest częścią kursu

Analiza sentymentu w R

Zobacz kurs

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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
  ___(___, ___)
Edytuj i uruchom kod