Aan de slagGa gratis aan de slag

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

Cursus bekijken

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 
  ___()
Code bewerken en uitvoeren