Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

Vi har skapat stressed_out, som innehåller texten till låten "Stressed Out" av Twenty One Pilots.

  • Använd polarity()stressed_out för att se standardpoängen.
  • Kontrollera key.pol för ord som innehåller "stress". Använd grep() för att indexera dataramen genom att söka i kolumnen x.
  • Skapa custom_pol som en ny sentiment-dataram.
  • Tillämpa polarity() igen på stressed_out med den extra parametern polarity.frame = custom_pol fö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 = ___)
Redigera och kör kod