Dividi e conquista: usare la polarità per una comparison cloud
Ora che hai visto come la polarità può essere usata per suddividere un corpus, mettiamolo in pratica! Questo codice ti guiderà nel dividere un corpus in base al sentiment, così potrai esplorare le informazioni per sottoinsiemi invece che in modo olistico.
La tua sessione R contiene oz_pol, creato applicando polarity() a "The Wonderful Wizard of Oz".
Per semplicità, abbiamo creato una funzione personalizzata chiamata pol_subsections() che divide il corpus in base al punteggio di polarità. Per prima cosa, la funzione accetta un data frame in cui ogni riga è una frase o un documento del corpus. Il data frame viene suddiviso dove i valori di polarità sono maggiori o minori di 0. Infine, le frasi positive e negative, con polarità diverse da zero, vengono unite con il parametro collapse così che i termini siano raggruppati in un singolo corpus. Per ultimo, i due documenti vengono concatenati in un singolo vettore di due documenti distinti.
pol_subsections <- function(df) {
x.pos <- subset(df$text, df$polarity > 0)
x.neg <- subset(df$text, df$polarity < 0)
x.pos <- paste(x.pos, collapse = " ")
x.neg <- paste(x.neg, collapse = " ")
all.terms <- c(x.pos, x.neg)
return(all.terms)
}
A questo punto hai escluso le frasi neutrali e vuoi concentrarti sull’organizzazione del testo rimanente. In questo esercizio usiamo di nuovo l’operatore %>% per passare oggetti alle funzioni. Dopo una semplice pulizia, usa comparison.cloud() per creare la visualizzazione.
Questo esercizio fa parte del corso
Sentiment Analysis in R
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
oz_df <- oz_pol$all %>%
# Select text.var as text and polarity
___(text = ___, polarity = ___)
# Apply custom function pol_subsections()
all_terms <- ___(___)
all_corpus <- all_terms %>%
# Source from a vector
___() %>%
# Make a volatile corpus
___()