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>Übungsanweisungen
- Sieh dir einen Abschnitt des vorab geladenen
bos_pol$allan, indem du[1:6,1:3]indizierst. - Füge eine neue Spalte namens
scaled_polarityhinzu, indem duscale()auf die Polaritätsspaltebos_pol$all$polarityanwendest. - Für positive Kommentare nutze
subset(), bei dem die neue Spaltebos_reviews$scaled_polaritygrößer als (>) null ist. - Für negative Kommentare nutze
subset(), bei dem die neue Spaltebos_reviews$scaled_polaritykleiner als (<) null ist. - Erstelle
pos_termsmitpaste()auspos_comments. - Erstelle nun
neg_termsmitpaste()ausneg_comments. - Fasse die zusammengeführten Dokumente
pos_termsundneg_termsin einem einzigen Korpus namensall_termszusammen. - Folge dem üblichen
tm‑Workflow, indem duVectorSource()inVCorpus()verschachtelst und aufall_termsanwendest. - Erstelle die
TermDocumentMatrix()mit dem Objektall_corpus. Beachte: Dies ist eine TF‑IDF‑gewichtete TDM mit grundlegenden Bereinigungsfunktionen. - Wandle
all_tdmmitas.matrix()inall_tdm_mum. Benenne dann in dem vorhandenen Code die Spalten in"positive"und"negative"um. - Zum Schluss! wende
comparison.cloud()auf das Matrixobjektall_tdm_man. 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")
)