Introspezione emotiva
In questo esercizio andrai oltre il semplice sottoinsieme di linguaggio positivo e negativo. Segmenterai invece il testo in base a ciascuna delle 8 emozioni della ruota delle emozioni di Plutchik per costruire una visualizzazione. Con questo approccio otterrai maggiore chiarezza sull’uso delle parole mappandole a un’emozione specifica invece che solo a positivo o negativo.
Usando il lessico di soggettività "nrc" di tidytext, eseguirai un inner_join() con il tuo testo. Il lessico "nrc" include le 8 emozioni più le classi di termini positivi e negativi. Quindi, dopo l’inner_join(), dovrai eliminare le parole positive e negative. Un modo per farlo è usare la negazione ! insieme a grepl().
La funzione "Global Regular Expression Print Logical", grepl(), restituisce True o False se un pattern di stringa è identificato in ciascuna riga. In questo esercizio cercherai positive OR negative usando l’operatore |, che rappresenta "oppure" come mostrato sotto. Spesso questa linea verticale si trova sopra il tasto Invio sulla tastiera. Poiché la negazione ! precede grepl(), il T o F viene invertito così che "positive|negative" venga escluso invece che mantenuto.
Object <- tibble %>%
filter(!grepl("positive|negative", column_name))
Poi applicherai count() alle parole individuate insieme a pivot_wider() per organizzare il data frame.
comparison.cloud() richiede che l’input abbia i nomi di riga, quindi dovrai convertirlo in un data.frame base R, chiamando data.frame() con l’argomento row.names.
Questo esercizio fa parte del corso
Sentiment Analysis in R
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
moby_tidy <- moby %>%
# Inner join to nrc lexicon
___(___, by = c("term" = "word")) %>%
# Drop positive or negative
___(!___("___", sentiment)) %>%
# Count by sentiment and term
___(___, ___) %>%
# Pivot sentiment, using n for values
___(names_from = ___, values_from = ___, values_fill = ___) %>%
# Convert to data.frame, making term the row names
data.frame(row.names = "___")
# Examine
head(moby_tidy)