AFINN: jsem tvůj člověk
Teď přejdeme na lexikon AFINN. Lexikon AFINN používá číselné hodnoty od 5 do -5, nejde tedy jen o pozitivní nebo negativní hodnocení. Na rozdíl od sloupce sentiment v Bing lexikonu se sloupec se skóre sentimentu v AFINN jmenuje value.
Same jako dřív nejdřív použiješ inner_join() a pak count(). Aby ses dostal/a k součtu skóre za každý řádek, využijeme funkce dplyru group_by() a summarize(). Funkce group_by() vezme existující datový rámec a převede ho na seskupený datový rámec, kde se operace provádějí „po skupinách". Funkce summarize() ti pak umožní vypočítat hodnotu pro každou skupinu pomocí agregační funkce, jako je sum() nebo mean(). V praxi to vypadá třeba takto:
data_frame %>%
group_by(book_line) %>%
summarize(total_value = sum(book_line))
V tidy verzi Huckleberry Finna obsahuje řádek 9703 slova „best", „ever", „fun", „life" a „spirit". Slova „best" a „fun" mají AFINN skóre 3, respektive 4. Po agregaci bude mít řádek 9703 celkové skóre 7.
V tidyverse se preferuje filter() před subset(), protože kombinuje funkcionalitu subset() s jednodušší syntaxí. Tady je příklad, který filtruje data_frame tak, aby hodnota ve sloupci column1 byla rovna 24. Všimni si, že název sloupce není v uvozovkách.
filter(data_frame, column1 == 24)
Objekt afinn obsahuje lexikon AFINN. Objekt huck je tidy verze románu Marka Twaina Dobrodružství Huckleberryho Finna připravená k analýze.
Řádek 5400 zní: All the loafers looked glad; I reckoned they was used to having fun out of Boggs. Stop slova a interpunkce jsou v datasetu již odstraněny.
Toto cvičení je součástí kurzu
Sentiment Analysis in R
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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
___(___, ___)