Aan de slagGa gratis aan de slag

Stressed Out!

Hier ga je de negatieve woorden aanpassen aan de specifieke tekst. Daarna vergelijk je de standaard- en aangepaste polarity()-scores.

Een populair nummer van Twenty One Pilots heet "Stressed Out". Als je de songtekst bekijkt, zie je dat het nummer gaat over jeugdige nostalgie. Over het algemeen zouden de meeste mensen zeggen dat de polariteit negatief is. In de tekst komen steeds weer stress, angsten en doen-alsof terug.

Laten we de songtekst vergelijken met het standaard subjectiviteitslexicon en ook met een aangepast lexicon.

Om te beginnen moet je controleren of het key.pol-subjectiviteitslexicon de term die je wilt toevoegen niet al bevat. Een manier om dit te controleren is met grep(). De functie grep() geeft de rij terug die tekens bevat die overeenkomen met een zoekpatroon. Hier is een voorbeeld dat wordt gebruikt bij het indexeren.

data_frame[grep("search_pattern", data_frame$column), ]

Nadat je hebt gecontroleerd dat de slang of het nieuwe woord nog niet in het key.pol-lexicon staat, moet je het toevoegen. De onderstaande code gebruikt sentiment_frame() om het nieuwe lexicon te maken. In de code accepteert sentiment_frame() de oorspronkelijke vector met positieve woorden, positive.words. Vervolgens worden de oorspronkelijke negative.words samengevoegd met "smh" en "kappa", beide beschouwd als negatieve slang. Hoewel je de positieve en negatieve gewichten kunt opgeven, zijn de standaardwaarden 1 en -1, dus die zijn hieronder niet opgenomen.

custom_pol <- sentiment_frame(positive.words, c(negative.words, "hate", "pain"))

Nu ben je klaar om polarity toe te passen, en wordt er verwezen naar het aangepaste subjectiviteitslexicon!

Deze oefening maakt deel uit van de cursus

Sentimentanalyse in R

Cursus bekijken

Oefeninstructies

We hebben stressed_out gemaakt met de songtekst van "Stressed Out" van Twenty One Pilots.

  • Gebruik polarity() op stressed_out om de standaardscore te zien.
  • Controleer key.pol op woorden die "stress" bevatten. Gebruik grep() om te indexeren door in de kolom x te zoeken.
  • Maak custom_pol als een nieuw sentiment-dataframe.
  • Pas polarity() opnieuw toe op stressed_out met de extra parameter polarity.frame = custom_pol om te vergelijken hoe de nieuwe woorden de score veranderen naar een nauwkeurigere weergave van het nummer.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# stressed_out has been pre-defined
head(stressed_out)

# Basic lexicon score
___(___)

# Check the subjectivity lexicon
___[___("stress", x)]

# New lexicon
custom_pol <- ___(___, c(negative.words, "___", "___"))

# Compare new score
___(___, polarity.frame = ___)
Code bewerken en uitvoeren