Rozděl a panuj: použití polarity pro srovnávací cloud
Teď, když víš, jak lze polaritu využít k rozdělení korpusu, pojďme si to vyzkoušet! Tento kód tě provede rozdělením korpusu podle sentimentu, abys mohl/a nahlédnout do informací v podmnožinách místo celkového pohledu.
V R session máš k dispozici oz_pol, který vznikl aplikováním polarity() na knihu "The Wonderful Wizard of Oz".
Pro zjednodušení jsme vytvořili vlastní funkci pol_subsections(), která rozdělí korpus podle skóre polarity. Funkce přijme datový rámec, kde každý řádek představuje větu nebo dokument korpusu. Datový rámec je poté rozdělen na části s polaritou větší nebo menší než 0. Kladné a záporné věty (tedy věty s nulovou polaritou jsou vynechány) jsou spojeny pomocí parametru collapse, takže výrazy tvoří jediný korpus. Nakonec jsou oba dokumenty zřetězeny do jediného vektoru dvou samostatných dokumentů.
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)
}
Neutrální věty jsou nyní vynechány a soustředíš se na uspořádání zbývajícího textu. V tomto cvičení opět používáme operátor %>% k předávání objektů do funkcí. Po jednoduchém vyčištění vytvoříš vizualizaci pomocí comparison.cloud().
Toto cvičení je součástí kurzu
Sentiment Analysis in R
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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
___()