AFINN: I'm your Huckleberry
Тепер переходимо до лексикону AFINN. У лексиконі AFINN значення числові: від 5 до -5, а не просто «позитивне» чи «негативне». На відміну від стовпця sentiment у лексиконі Bing, у лексиконі AFINN стовпець з оцінкою настрою називається value.
Як і раніше, ви застосуєте inner_join(), а потім count(). Далі, щоб підсумувати бали для кожного рядка, використаємо функції dplyr group_by() та summarize(). Функція group_by() бере наявний датафрейм і перетворює його на згрупований, де операції виконуються «за групами». Потім summarize() дає змогу обчислити значення для кожної групи у вашому датафреймі за допомогою агрегувальної функції, наприклад sum() або mean(). Отже, у нашому випадку ми можемо зробити щось на кшталт
data_frame %>%
group_by(book_line) %>%
summarize(total_value = sum(book_line))
У tidy-версії твору «Гекльберрі Фінн» у рядку 9703 є слова "best", "ever", "fun", "life" і "spirit". "best" і "fun" мають оцінки AFINN 3 і 4 відповідно. Після агрегування рядок 9703 матиме загальний бал 7.
У tidyverse filter() надають перевагу перед subset(), адже він поєднує функціональність subset() із простішим синтаксисом. Ось приклад, який filter()-ить data_frame, де деяке значення в column1 дорівнює 24. Зверніть увагу: назва стовпця без лапок.
filter(data_frame, column1 == 24)
Об'єкт afinn містить лексикон AFINN. Об'єкт huck — це tidy-версія твору Марка Твена «Пригоди Гекльберрі Фінна» для аналізу.
Рядок 5400: «All the loafers looked glad; I reckoned they was used to having fun out of Boggs.» Стоп-слова та пунктуацію вже вилучено з набору даних.
Ця вправа є частиною курсу
Аналіз тональності в R
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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
___(___, ___)