IniziaInizia gratis

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

Visualizza il corso

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)
Modifica ed esegui il codice