Емоційна інтрoспекція
У цій вправі ви підете далі за просте виділення позитивної та негативної лексики. Ви відфільтруєте текст за кожною з 8 емоцій із колеса емоцій Плучика, щоб побудувати візуалізацію. Такий підхід дає більше ясності у вживанні слів, адже ви прив'язуєте їх до конкретної емоції, а не лише до позитиву чи негативу.
Використовуючи лексикон суб'єктивності пакета tidytext — «nrc», ви виконаєте inner_join() зі своїм текстом. Лексикон «nrc» містить 8 емоцій, а також класи позитивних і негативних термінів. Тож після inner_join() вам потрібно буде відкинути позитивні й негативні слова. Один зі способів — використати заперечення ! і функцію grepl().
Функція «Global Regular Expression Print Logical» — grepl() — повертає True або False залежно від того, чи в кожному рядку знайдено відповідний шаблон. У цій вправі ви шукатимете positive АБО negative за допомогою оператора |, який означає «or», як показано нижче. Зазвичай ця вертикальна риска розташована над клавішею Enter на клавіатурі. Оскільки заперечення ! стоїть перед grepl(), значення T або F інвертується, тож "positive|negative" буде відкинуто, а не збережено.
Object <- tibble %>%
filter(!grepl("positive|negative", column_name))
Далі застосуйте count() до знайдених слів і використайте pivot_wider(), щоб упорядкувати датафрейм.
comparison.cloud() потребує, щоб вхідні дані мали назви рядків, тому вам слід перетворити об'єкт на базовий data.frame, викликавши data.frame() з аргументом row.names.
Ця вправа є частиною курсу
Аналіз тональності в R
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
moby_tidy <- moby %>%
# Inner join to nrc lexicon
___(___, by = c("term" = "word")) %>%
# Drop positive or negative
___(!___("___", sentiment)) %>%
# Count by sentiment and term
___(___, ___) %>%
# Pivot sentiment, using n for values
___(names_from = ___, values_from = ___, values_fill = ___) %>%
# Convert to data.frame, making term the row names
data.frame(row.names = "___")
# Examine
head(moby_tidy)