ПочатиПочніть безкоштовно

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
  ___(___, ___)
Редагувати та запускати код