Nor de comparație cu scoruri scalate
Îți amintești de „inflația scorurilor" de polaritate din recenziile despre proprietăți? Uneori, o altă modalitate de a descoperi un insight este să scalezi scorurile înapoi la 0, iar apoi să realizezi subsetul corpusului. Asta înseamnă că unele comentarii anterior pozitive pot deveni parte din subsecțiunea negativă sau invers, deoarece media este adusă la 0. Acest exercițiu te va ajuta să scalezi scorurile și să refaci graficul comparison.cloud(). Eliminarea „inflației scorurilor" poate oferi perspective suplimentare.
Anterior, ai aplicat polarity() coloanei bos_reviews$comments și ai creat un comparison.cloud(). În acest exercițiu vei aplica scale() rezultatului înainte de a crea comparison.cloud(). Vezi dacă vizualizarea arată altfel!
Deoarece acesta este în mare parte un exercițiu de recapitulare, o mare parte din cod există deja — trebuie doar să completezi obiectele și parametrii corecți!
Acest exercițiu face parte din cursul
Analiza sentimentelor în R
Instrucțiuni pentru exercițiu
- Examinează o secțiune din
bos_pol$allpreîncărcat, indexând cu[1:6,1:3]. - Adaugă o nouă coloană numită
scaled_polarity, aplicândscale()coloanei cu scoruri de polaritatebos_pol$all$polarity. - Pentru comentariile pozitive, folosește
subset()unde noua coloanăbos_reviews$scaled_polarityeste mai mare decât (>) zero. - Pentru comentariile negative, folosește
subset()unde noua coloanăbos_reviews$scaled_polarityeste mai mică decât (<) zero. - Creează
pos_termsfolosindpaste()aplicat pepos_comments. - Creează acum
neg_termscupaste()aplicat peneg_comments. - Organizează documentele combinate,
pos_termsșineg_terms, într-un singur corpus numitall_terms. - Urmează fluxul de lucru obișnuit
tm, incluzândVectorSource()în interiorul luiVCorpus(), aplicat peall_terms. - Creează
TermDocumentMatrix()folosind obiectulall_corpus. Reține că aceasta este o TDM ponderată TfIdf cu funcții de curățare de bază. - Transformă
all_tdmînall_tdm_mcuas.matrix(). Apoi redenumește coloanele în codul existent cu"positive"și"negative". - În sfârșit! Aplică
comparison.cloud()pe obiectul matriceall_tdm_m. Urmărește care sunt noile cuvinte negative cele mai frecvente — poate vei descoperi un insight neașteptat!
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Review
___
# Scale/center & append
bos_reviews$___ <- scale(___)
# Subset positive comments
pos_comments <- subset(bos_reviews$comments, ___)
# Subset negative comments
neg_comments <- subset(bos_reviews$comments, ___)
# Paste and collapse the positive comments
pos_terms <- paste(___, collapse = " ")
# Paste and collapse the negative comments
neg_terms <- paste(___, collapse = " ")
# Organize
all_terms<- c(___, ___)
# VCorpus
all_corpus <- ___(VectorSource(___))
# TDM
all_tdm <- TermDocumentMatrix(
___,
control = list(
weighting = weightTfIdf,
removePunctuation = TRUE,
stopwords = stopwords(kind = "en")
)
)
# Column names
___ <- as.matrix(___)
colnames(all_tdm_m) <- c("___", "___")
# Comparison cloud
comparison.cloud(
___,
max.words = 100,
colors = c("darkgreen", "darkred")
)