Stressed Out!
Här anpassar du de negativa orden för att bättre passa den specifika texten. Sedan jämför du standardresultaten och de anpassade resultaten från polarity().
En populär låt från Twenty One Pilots heter "Stressed Out". Om du läser igenom låttexten ser du att den handlar om nostalgi efter barndomen. De flesta skulle säga att polariteten är negativ. Texten återkommer gång på gång till stress, rädsla och att låtsas.
Låt oss jämföra låttexten med hjälp av standardlexikonet för subjektivitet och ett anpassat lexikon.
Först behöver du kontrollera att key.pol-subjektivitetslexikonet inte redan innehåller det ord du vill lägga till. Ett sätt att kontrollera det är med grep(). Funktionen grep() returnerar den rad som innehåller tecken som matchar ett sökmönster. Här är ett exempel på hur det används vid indexering.
data_frame[grep("search_pattern", data_frame$column), ]
När du har bekräftat att slangorden eller det nya ordet inte redan finns i key.pol-lexikonet är det dags att lägga till det. Koden nedan använder sentiment_frame() för att bygga det nya lexikonet. Funktionen sentiment_frame() tar emot den ursprungliga vektorn med positiva ord, positive.words. Därefter konkateneras de ursprungliga negative.words med "smh" och "kappa", som båda anses vara negativa slangord. Du kan ange egna positiva och negativa vikter, men standardvärdena är 1 och -1, så de utelämnas nedan.
custom_pol <- sentiment_frame(positive.words, c(negative.words, "hate", "pain"))
Nu är du redo att använda polarity med det anpassade subjektivitetslexikonet!
Den här övningen är en del av kursen
Sentimentanalys i R
Övningsinstruktioner
Vi har skapat stressed_out, som innehåller texten till låten "Stressed Out" av Twenty One Pilots.
- Använd
polarity()påstressed_outför att se standardpoängen. - Kontrollera
key.polför ord som innehåller "stress". Användgrep()för att indexera dataramen genom att söka i kolumnenx. - Skapa
custom_polsom en ny sentiment-dataram.- Anropa
sentiment_frame()och skicka inpositive.wordssom det första argumentet utan att konkatenera några nya termer. - Använd sedan
c()för att kombineranegative.wordsmed de nya termerna "stressed" och "turn back".
- Anropa
- Tillämpa
polarity()igen påstressed_outmed den extra parameternpolarity.frame = custom_polför att se hur de nya orden påverkar poängen och ger en mer träffsäker bild av låten.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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 = ___)