Copleșit de stres!
În acest exercițiu vei ajusta cuvintele negative pentru a reflecta mai bine textul analizat, apoi vei compara scorurile polarity() obținute cu lexiconul implicit și cu unul personalizat.
O melodie populară a trupei Twenty One Pilots se numește "Stressed Out". Dacă parcurgi versurile, vei observa că piesa evocă nostalgia tinereții. Cei mai mulți ascultători ar spune că polaritatea este negativă: versurile menționează în mod repetat stresul, temerile și prefăcătoria.
Hai să comparăm versurile folosind atât lexiconul de subiectivitate implicit, cât și unul personalizat.
Prima etapă este să verifici că lexiconul de subiectivitate key.pol nu conține deja termenul pe care vrei să-l adaugi. O modalitate de verificare este cu grep(). Funcția grep() returnează rândurile care conțin caractere ce corespund unui șablon de căutare. Iată un exemplu de utilizare la indexare:
data_frame[grep("search_pattern", data_frame$column), ]
După ce confirmi că termenul de argou sau cuvântul nou nu se află deja în lexiconul key.pol, trebuie să-l adaugi. Codul de mai jos folosește sentiment_frame() pentru a construi noul lexicon. În interiorul funcției, sentiment_frame() primește vectorul original de cuvinte pozitive, positive.words. Apoi, cuvintele originale negative.words sunt concatenate cu "smh" și "kappa", ambele considerate argou negativ. Deși poți declara explicit ponderile pozitive și negative, valorile implicite sunt 1 și -1, deci nu sunt incluse mai jos.
custom_pol <- sentiment_frame(positive.words, c(negative.words, "hate", "pain"))
Acum ești pregătit să aplici funcția de polaritate, care va face referire la lexiconul de subiectivitate personalizat!
Acest exercițiu face parte din cursul
Analiza sentimentelor în R
Instrucțiuni pentru exercițiu
Am creat stressed_out, care conține versurile melodiei "Stressed Out" de Twenty One Pilots.
- Aplică
polarity()pestressed_outpentru a vedea scorul implicit. - Verifică în
key.poldacă există cuvinte care conțin "stress". Foloseștegrep()pentru a indexa data frame-ul, căutând în coloanax. - Creează
custom_polca un nou data frame de sentiment.- Apelează
sentiment_frame()și paseazăpositive.wordsca prim argument, fără a concatena termeni noi. - Apoi, folosește
c()pentru a combinanegative.wordscu noii termeni "stressed" și "turn back".
- Apelează
- Reaplicați
polarity()pestressed_outcu parametrul suplimentarpolarity.frame = custom_pol, pentru a observa cum noile cuvinte modifică scorul și îl fac să reflecte mai fidel conținutul melodiei.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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 = ___)