AFINN: sono il tuo Huckleberry
Ora passiamo al lessico AFINN. Il lessico AFINN assegna valori numerici da 5 a -5, non solo positivo o negativo. A differenza della colonna sentiment del lessico Bing, la colonna del punteggio di sentiment in AFINN si chiama value.
Come prima, applica inner_join() e poi count(). Successivamente, per sommare i punteggi di ogni riga, usiamo le funzioni group_by() e summarize() di dplyr. La funzione group_by() prende un data frame esistente e lo converte in un data frame raggruppato in cui le operazioni sono eseguite "per gruppo". Poi, la funzione summarize() ti permette di calcolare un valore per ciascun gruppo nel tuo data frame usando una funzione di aggregazione, come sum() o mean(). Quindi, nel nostro caso possiamo fare qualcosa come
data_frame %>%
group_by(book_line) %>%
summarize(total_value = sum(book_line))
Nella versione tidy di Huckleberry Finn, la riga 9703 contiene le parole "best", "ever", "fun", "life" e "spirit". "best" e "fun" hanno rispettivamente punteggi AFINN pari a 3 e 4. Dopo l’aggregazione, la riga 9703 avrà un punteggio totale di 7.
Nel tidyverse, filter() è preferita a subset() perché unisce la funzionalità di subset() a una sintassi più semplice. Ecco un esempio che applica filter() a data_frame dove un valore in column1 è uguale a 24. Nota che il nome della colonna non è tra virgolette.
filter(data_frame, column1 == 24)
L’oggetto afinn contiene il lessico AFINN. L’oggetto huck è una versione tidy per l’analisi di Le avventure di Huckleberry Finn di Mark Twain.
La riga 5400 è All the loafers looked glad; I reckoned they was used to having fun out of Boggs. Stopword e punteggiatura sono già state rimosse nel dataset.
Questo esercizio fa parte del corso
Sentiment Analysis in R
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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
___(___, ___)