LoslegenKostenlos starten

Skalierte Comparison Cloud

Erinnerst du dich an die „Noteninflation" der Polaritätsscores in den Mietbewertungen? Manchmal hilft es, die Scores auf 0 zu zentrieren und dann das Korpus zu unterteilen. Dadurch können einige zuvor positive Kommentare in den negativen Teil rutschen – oder umgekehrt –, weil der Mittelwert auf 0 gesetzt wird. In dieser Übung skalierst du die Scores und erstellst anschließend die comparison.cloud() neu. Das Entfernen der „Noteninflation" kann zusätzliche Erkenntnisse liefern.

Zuvor hast du polarity() auf bos_reviews$comments angewendet und eine comparison.cloud() erstellt. In dieser Übung wirst du das Ergebnis vor dem Erstellen der comparison.cloud() mit scale() transformieren. Schau, ob sich dadurch in der Visualisierung etwas Neues zeigt!

Da dies größtenteils eine Wiederholungsübung ist, ist viel Code bereits vorhanden – fülle einfach die richtigen Objekte und Parameter ein!

Diese Übung ist Teil des Kurses

<Kurs>Sentimentanalyse in R</Kurs>
Kurs ansehen

Übungsanweisungen

  • Sieh dir einen Abschnitt des vorab geladenen bos_pol$all an, indem du [1:6,1:3] indizierst.
  • Füge eine neue Spalte namens scaled_polarity hinzu, indem du scale() auf die Polaritätsspalte bos_pol$all$polarity anwendest.
  • Für positive Kommentare nutze subset(), bei dem die neue Spalte bos_reviews$scaled_polarity größer als (>) null ist.
  • Für negative Kommentare nutze subset(), bei dem die neue Spalte bos_reviews$scaled_polarity kleiner als (<) null ist.
  • Erstelle pos_terms mit paste() aus pos_comments.
  • Erstelle nun neg_terms mit paste() aus neg_comments.
  • Fasse die zusammengeführten Dokumente pos_terms und neg_terms in einem einzigen Korpus namens all_terms zusammen.
  • Folge dem üblichen tm‑Workflow, indem du VectorSource() in VCorpus() verschachtelst und auf all_terms anwendest.
  • Erstelle die TermDocumentMatrix() mit dem Objekt all_corpus. Beachte: Dies ist eine TF‑IDF‑gewichtete TDM mit grundlegenden Bereinigungsfunktionen.
  • Wandle all_tdm mit as.matrix() in all_tdm_m um. Benenne dann in dem vorhandenen Code die Spalten in "positive" und "negative" um.
  • Zum Schluss! wende comparison.cloud() auf das Matrixobjekt all_tdm_m an. Achte auf die neuen, häufigsten negativen Wörter. Vielleicht entdeckst du eine neue Erkenntnis!

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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")
)
Code bearbeiten und ausführen