Geschaalde vergelijking-cloud
Weet je nog de "cijferinflatie" van polariteitsscores in de huurrecensies? Soms helpt het om inzichten te vinden door de scores eerst te schalen naar 0 en daarna pas de corpus-subset te maken. Daardoor kunnen sommige eerder positieve opmerkingen in het negatieve deel terechtkomen, of andersom, omdat het gemiddelde naar 0 wordt verschoven. In deze oefening schaal je de scores en maak je daarna de comparison.cloud() opnieuw. Het verwijderen van de "cijferinflatie" kan extra inzichten opleveren.
Eerder heb je polarity() toegepast op bos_reviews$comments en een comparison.cloud() gemaakt. In deze oefening ga je het resultaat eerst scale() voordat je de comparison.cloud() maakt. Kijk of de visual nu iets anders laat zien!
Omdat dit grotendeels een herhalingsoefening is, staat veel code al klaar. Vul alleen de juiste objecten en parameters in!
Deze oefening maakt deel uit van de cursus
Sentimentanalyse in R
Oefeninstructies
- Bekijk een gedeelte van de vooringeladen
bos_pol$alldoor te indexeren met[1:6,1:3]. - Voeg een nieuwe kolom toe genaamd
scaled_polaritymetscale()toegepast op de polariteitskolombos_pol$all$polarity. - Gebruik voor positieve comments
subset()waar de nieuwe kolombos_reviews$scaled_polaritygroter is dan (>) nul. - Gebruik voor negatieve comments
subset()waar de nieuwe kolombos_reviews$scaled_polaritykleiner is dan (<) nul. - Maak
pos_termsmetpaste()oppos_comments. - Maak nu
neg_termsmetpaste()opneg_comments. - Organiseer de samengevoegde documenten,
pos_termsenneg_terms, in één corpus met de naamall_terms. - Volg de gebruikelijke
tmworkflow doorVectorSource()te nesten binnenVCorpustoegepast opall_terms. - Maak de
TermDocumentMatrix()met het objectall_corpus. Let op: dit is een TfIdf-gewogen TDM met basisreinigingsfuncties. - Zet
all_tdmom naarall_tdm_mmetas.matrix(). Hernoem vervolgens de kolommen in de bestaande code naar"positive"en"negative". - Tot slot! pas
comparison.cloud()toe op het matrixobjectall_tdm_m. Let op de nu meest frequente negatieve woorden. Misschien ontdek je een nieuw inzicht!
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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")
)