Kom igångKom igång gratis

Skalat jämförelsemoln

Kommer du ihåg "betygsinfationen" i polaritetspoängen för hyresomdömena? Ibland kan ett annat sätt att hitta insikter vara att skala om poängen till 0 och sedan dela upp korpuset. Det innebär att vissa tidigare positiva kommentarer kan hamna i den negativa delen, eller tvärtom, eftersom medelvärdet ändras till 0. I den här övningen skalar du om poängen och ritar sedan om comparison.cloud(). Att ta bort betygsinfationen kan ge ytterligare insikter.

Tidigare tillämpade du polarity()bos_reviews$comments och skapade ett comparison.cloud(). I den här övningen använder du scale() på resultatet innan du skapar comparison.cloud(). Se om det ger en annorlunda bild i visualiseringen!

Eftersom det här till stor del är en repetitionsövning finns mycket av koden redan på plats – fyll bara i rätt objekt och parametrar!

Den här övningen är en del av kursen

Sentimentanalys i R

Visa kurs

Övningsinstruktioner

  • Granska ett avsnitt av det förinstallerade bos_pol$all genom att indexera med [1:6,1:3].
  • Lägg till en ny kolumn kallad scaled_polarity där scale() tillämpas på polaritetspoängkolumnen bos_pol$all$polarity.
  • För positiva kommentarer: använd subset() där den nya kolumnen bos_reviews$scaled_polarity är större än (>) noll.
  • För negativa kommentarer: använd subset() där den nya kolumnen bos_reviews$scaled_polarity är mindre än (<) noll.
  • Skapa pos_terms med paste()pos_comments.
  • Skapa nu neg_terms med paste()neg_comments.
  • Organisera de ihopslagna dokumenten pos_terms och neg_terms i ett enda korpus kallat all_terms.
  • Följ det vanliga tm-flödet genom att kapsla VectorSource() inuti VCorpus() och tillämpa det på all_terms.
  • Skapa TermDocumentMatrix() med objektet all_corpus. Observera att detta är en TfIdf-viktad TDM med grundläggande rensningsfunktioner.
  • Konvertera all_tdm till all_tdm_m med as.matrix(). Byt sedan namn på kolumnerna i den befintliga koden till "positive" och "negative".
  • Slutligen! Tillämpa comparison.cloud() på matrisobjektet all_tdm_m. Lägg märke till de nya vanligaste negativa orden – kanske avslöjar det en ny och oväntad insikt!

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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")
)
Redigera och kör kod