Kom igångKom igång gratis

AFINN: Nu kör vi

Nu övergår vi till AFINN-lexikonet. AFINN-lexikonet har numeriska värden från 5 till -5, inte bara positivt eller negativt. Till skillnad från Bing-lexikonets sentiment heter AFINN-lexikonets sentimentkolumn value.

Precis som tidigare använder du inner_join() följt av count(). För att summera poängen för varje rad använder vi sedan dplyrs funktioner group_by() och summarize(). Funktionen group_by() tar en befintlig dataram och omvandlar den till en grupperad dataram där operationer utförs "per grupp". Sedan låter summarize() dig beräkna ett värde för varje grupp i dataramen med hjälp av en aggregerande funktion, som sum() eller mean(). I vårt fall kan vi till exempel skriva:

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

I den städade versionen av Huckleberry Finn innehåller rad 9703 orden "best", "ever", "fun", "life" och "spirit". "best" och "fun" har AFINN-poängen 3 respektive 4. Efter aggregering får rad 9703 en totalpoäng på 7.

I tidyverse föredras filter() framför subset(), eftersom den kombinerar funktionaliteten hos subset() med enklare syntax. Här är ett exempel där filter() används på data_frame för rader där ett värde i column1 är lika med 24. Observera att kolumnnamnet inte är inom citattecken.

filter(data_frame, column1 == 24)

Objektet afinn innehåller AFINN-lexikonet. Objektet huck är en städad version av Mark Twains Adventures of Huckleberry Finn för analys.

Rad 5400 är All the loafers looked glad; I reckoned they was used to having fun out of Boggs. Stoppord och skiljetecken har redan tagits bort från datamängden.

Den här övningen är en del av kursen

Sentimentanalys i R

Visa kurs

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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
  ___(___, ___)
Redigera och kör kod