Порівняйте й зіставте стовпчикову діаграму з накопиченням
Ще один спосіб проаналізувати текст — з'ясувати, якою мірою документи складаються з позитивних або негативних слів. Наприклад, відгук про ресторан може містити щось позитивне на кшталт «їжа була смачна», але далі додати: «у ресторані було брудно, персонал — грубий, а паркування — жахливе». У результаті ви можете захотіти зрозуміти, яка частка документа присвячена позитивній проти негативної лексики. У цьому прикладі відсоток негативу буде вищим за позитив.
Один зі способів — порахувати (count()) позитивні та негативні слова, а потім поділити на кількість слів суб'єктивності, які ідентифіковано. У прикладі з відгуком «смачна» (good) зараховується як 1 позитив, а «брудно» (dirty), «грубий» (rude) і «жахливе» (awful) — як 3 негативні терміни. Простий підрахунок підкаже, що відгук є на 25% позитивним і на 75% негативним, адже всього було 4 терміни суб'єктивності.
Почніть із виконання inner_join() на уніфікованому охайному датафреймі, що містить 4 книжки: Agamemnon, Oz, Huck Finn і Moby Dick. Як і в попередній вправі, ви використаєте filter() і grepl().
Щоб виконати count(), потрібно згрупувати дані за книжкою, а потім за типом сентименту. Наприклад, усі позитивні слова для Agamemnon слід згрупувати та підсумувати, щоб позитивні слова з різних книжок не змішувалися. На щастя, у count() можна передати кілька змінних безпосередньо.
Ця вправа є частиною курсу
Аналіз тональності в R
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Review tail of all_books
tail(all_books)
# Count by book & sentiment
books_sent_count <- all_books %>%
# Inner join to nrc lexicon
___(___, by = c("term" = "word")) %>%
# Keep only positive or negative
___(__("___", sentiment)) %>%
# Count by book and by sentiment
___(___, ___)
# Review entire object
books_sent_count