Розділяй і володарюй: використання полярності для порівняльної хмари
Тепер, коли ви побачили, як полярність допомагає розділяти корпус, давайте зробимо це на практиці! Цей код проведе вас крізь поділ корпусу за настроєвим забарвленням, щоб ви могли досліджувати інформацію в підмножинах, а не суцільно.
У вашій R-сесії є oz_pol, отриманий застосуванням polarity() до «The Wonderful Wizard of Oz».
Для спрощення ми створили просту користувацьку функцію pol_subsections(), яка ділить корпус за оцінкою полярності. Спершу функція приймає датафрейм, де кожен рядок — це речення або документ корпусу. Датафрейм підмножується там, де значення полярності більші або менші за 0. Нарешті, позитивні та негативні речення з ненульовою полярністю об'єднуються параметром collapse, щоб терміни було згруповано в один корпус. І наостанок, обидва документи конкатенуються в один вектор із двох окремих документів.
pol_subsections <- function(df) {
x.pos <- subset(df$text, df$polarity > 0)
x.neg <- subset(df$text, df$polarity < 0)
x.pos <- paste(x.pos, collapse = " ")
x.neg <- paste(x.neg, collapse = " ")
all.terms <- c(x.pos, x.neg)
return(all.terms)
}
На цьому етапі ви відкинули нейтральні речення й хочете зосередитися на організації решти тексту. У цій вправі ми знову використовуємо оператор %>%, щоб передавати об'єкти у функції. Після невеликого очищення скористайтеся comparison.cloud(), щоб побудувати візуалізацію.
Ця вправа є частиною курсу
Аналіз тональності в R
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
oz_df <- oz_pol$all %>%
# Select text.var as text and polarity
___(text = ___, polarity = ___)
# Apply custom function pol_subsections()
all_terms <- ___(___)
all_corpus <- all_terms %>%
# Source from a vector
___() %>%
# Make a volatile corpus
___()