Stressed Out!
Qui regolerai le parole negative per adattarle al testo specifico. Poi confronterai i punteggi polarity() di base e personalizzati.
Una canzone famosa dei Twenty One Pilots si intitola "Stressed Out". Se scorri il testo, noterai che parla di nostalgia giovanile. Nel complesso, la maggior parte delle persone direbbe che la polarità è negativa. I versi citano ripetutamente stress, paure e finzioni.
Confrontiamo il testo usando il lessico di soggettività predefinito e anche uno personalizzato.
Per iniziare, devi verificare che il lessico di soggettività key.pol non contenga già il termine che vuoi aggiungere. Un modo per controllare è con grep(). La funzione grep() restituisce la riga che contiene i caratteri che corrispondono a un pattern di ricerca. Ecco un esempio usato durante l'indicizzazione.
data_frame[grep("search_pattern", data_frame$column), ]
Dopo aver verificato che lo slang o la nuova parola non sia già presente nel lessico key.pol, devi aggiungerla. Il codice seguente usa sentiment_frame() per costruire il nuovo lessico. Nel codice, sentiment_frame() accetta il vettore originale delle parole positive, positive.words. Poi le negative.words originali vengono concatenate con "smh" e "kappa", entrambe considerate slang negativo. Anche se puoi specificare i pesi positivo e negativo, il default è 1 e -1, quindi non sono inclusi sotto.
custom_pol <- sentiment_frame(positive.words, c(negative.words, "hate", "pain"))
Ora sei pronto ad applicare la polarità e farà riferimento al lessico di soggettività personalizzato!
Questo esercizio fa parte del corso
Sentiment Analysis in R
Istruzioni dell'esercizio
Abbiamo creato stressed_out, che contiene il testo della canzone "Stressed Out" dei Twenty One Pilots.
- Usa
polarity()sustressed_outper vedere il punteggio predefinito. - Controlla
key.polper eventuali parole che contengono "stress". Usagrep()per indicizzare il data frame cercando nella colonnax. - Crea
custom_polcome nuovo data frame di sentiment.- Chiama
sentiment_frame()e passapositive.wordscome primo argomento senza concatenare nuovi termini. - Poi usa
c()per combinarenegative.wordscon i nuovi termini "stressed" e "turn back".
- Chiama
- Applica di nuovo
polarity()astressed_outcon il parametro aggiuntivopolarity.frame = custom_polper confrontare come le nuove parole cambiano il punteggio verso una rappresentazione più accurata della canzone.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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 = ___)