Divide & conquer: polariteit gebruiken voor een comparison cloud
Nu je hebt gezien hoe je polariteit kunt gebruiken om een corpus op te splitsen, gaan we dat doen! Deze code loodst je door het opdelen van een corpus op basis van sentiment, zodat je subsets kunt bekijken in plaats van het geheel.
Je R-sessie bevat oz_pol, gemaakt door polarity() toe te passen op "The Wonderful Wizard of Oz".
Voor de eenvoud hebben we een eenvoudige, aangepaste functie gemaakt, pol_subsections(), die het corpus opdeelt op polariteitsscore. Eerst accepteert de functie een data frame waarin elke rij een zin of document van het corpus is. Het data frame wordt gefilterd waar de polariteitswaarden groter of kleiner dan 0 zijn. Tot slot worden de positieve en negatieve zinnen, met niet-nulpolariteiten, samengevoegd met de parameter collapse, zodat de termen in één corpus worden gegroepeerd. Als laatste worden de twee documenten samengevoegd tot één vector met twee afzonderlijke documenten.
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)
}
Op dit punt heb je de neutrale zinnen weggelaten en wil je de overgebleven tekst ordenen. In deze oefening gebruiken we opnieuw de %>%-operator om objecten door te geven aan functies. Na wat eenvoudige opschoning gebruik je comparison.cloud() om de visualisatie te maken.
Deze oefening maakt deel uit van de cursus
Sentimentanalyse in R
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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
___()