Aan de slagGa gratis aan de slag

Emotionele introspectie

In deze oefening ga je verder dan subsetten op positieve en negatieve taal. In plaats daarvan subset je tekst op elk van de 8 emoties in Plutchiks emotiewiel om een visual te maken. Met deze aanpak krijg je meer duidelijkheid in woordgebruik door woorden aan een specifieke emotie te koppelen in plaats van alleen positief of negatief.

Met de subjectiviteit-lexicon van tidytext, "nrc", voer je een inner_join() uit met je tekst. De "nrc"-lexicon heeft de 8 emoties plus de klassen positief en negatief. Dus je moet positieve en negatieve woorden verwijderen nadat je de inner_join() hebt uitgevoerd. Een manier om dat te doen is met de negatie, !, en grepl().

De "Global Regular Expression Print Logical"-functie, grepl(), geeft True of False terug als in elke rij een patroon in de string wordt gevonden. In deze oefening zoek je naar positive OF negative met de |-operator, die "of" voorstelt zoals hieronder. Vaak staat deze verticale streep boven de Enter-toets op een toetsenbord. Omdat de !-negatie vóór grepl() staat, wordt T of F omgedraaid zodat "positive|negative" wordt weggelaten in plaats van behouden.

Object <- tibble %>%
  filter(!grepl("positive|negative", column_name))

Vervolgens pas je count() toe op de gevonden woorden, samen met pivot_wider() om het dataframe te organiseren.

comparison.cloud() vereist dat de input rijnamen heeft, dus je moet het omzetten naar een base-R data.frame door data.frame() aan te roepen met het argument row.names.

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.

moby_tidy <- moby %>%
  # Inner join to nrc lexicon
  ___(___, by = c("term" = "word")) %>% 
  # Drop positive or negative
  ___(!___("___", sentiment)) %>% 
  # Count by sentiment and term
  ___(___, ___) %>% 
  # Pivot sentiment, using n for values
  ___(names_from = ___, values_from = ___, values_fill = ___) %>%
  # Convert to data.frame, making term the row names
  data.frame(row.names = "___")

# Examine
head(moby_tidy)
Code bewerken en uitvoeren