Introspecție emoțională
În acest exercițiu vei merge dincolo de filtrarea pe limbaj pozitiv și negativ. În schimb, vei filtra textul după fiecare dintre cele 8 emoții din roata emoțională a lui Plutchik pentru a construi o vizualizare. Prin această abordare vei obține o claritate mai mare în utilizarea cuvintelor, mapând textul la o emoție specifică, nu doar la pozitiv sau negativ.
Folosind lexiconul de subiectivitate tidytext, "nrc", efectuezi un inner_join() cu textul tău. Lexiconul "nrc" conține cele 8 emoții plus clasele de termeni pozitivi și negativi. Prin urmare, va trebui să elimini cuvintele pozitive și negative după ce efectuezi inner_join(). O modalitate de a face acest lucru este prin negație, !, și grepl().
Funcția "Global Regular Expression Print Logical", grepl(), returnează True sau False dacă un șir de caractere este identificat în fiecare rând. În acest exercițiu vei căuta pozitiv SAU negativ folosind operatorul |, care reprezintă „sau", așa cum este ilustrat mai jos. De obicei, această linie verticală se află deasupra tastei Enter de pe tastatură. Deoarece negația ! precedă grepl(), valoarea T sau F este inversată, astfel încât "positive|negative" este eliminat, nu păstrat.
Object <- tibble %>%
filter(!grepl("positive|negative", column_name))
În continuare, aplici count() pe cuvintele identificate împreună cu pivot_wider() pentru a organiza cadrul de date.
comparison.cloud() necesită ca datele de intrare să aibă nume de rânduri, așa că va trebui să le convertești într-un data.frame din R de bază, apelând data.frame() cu argumentul row.names.
Acest exercițiu face parte din cursul
Analiza sentimentelor în R
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)