ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Examinează o secțiune din bos_pol$all preîncărcat, indexând cu [1:6,1:3].
  • Adaugă o nouă coloană numită scaled_polarity, aplicând scale() coloanei cu scoruri de polaritate bos_pol$all$polarity.
  • Pentru comentariile pozitive, folosește subset() unde noua coloană bos_reviews$scaled_polarity este mai mare decât (>) zero.
  • Pentru comentariile negative, folosește subset() unde noua coloană bos_reviews$scaled_polarity este mai mică decât (<) zero.
  • Creează pos_terms folosind paste() aplicat pe pos_comments.
  • Creează acum neg_terms cu paste() aplicat pe neg_comments.
  • Organizează documentele combinate, pos_terms și neg_terms, într-un singur corpus numit all_terms.
  • Urmează fluxul de lucru obișnuit tm, incluzând VectorSource() în interiorul lui VCorpus(), aplicat pe all_terms.
  • Creează TermDocumentMatrix() folosind obiectul all_corpus. Reține că aceasta este o TDM ponderată TfIdf cu funcții de curățare de bază.
  • Transformă all_tdm în all_tdm_m cu as.matrix(). Apoi redenumește coloanele în codul existent cu "positive" și "negative".
  • În sfârșit! Aplică comparison.cloud() pe obiectul matrice all_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")
)
Editează și rulează codul