Aan de slagGa gratis aan de slag

Kooi­gevecht! Amazon vs. Google pro-reviews

In positieve reviews over Amazon duiken bigrammen op als "good benefits", terwijl negatieve reviews focussen op bigrammen rond "workload" en problemen met "work-life balance".

Daartegenover noemen positieve reviews over Google zaken als "great food", "perks", "smart people" en een "fun culture". In negatieve reviews over Google gaat het over "politics", "getting big", "bureaucracy" en "middle management".

Je besluit een piramidediagram te maken waarin je de positieve reviews van Amazon en Google naast elkaar zet, zodat je de verschillen tussen gedeelde bigrammen kunt vergelijken. We hebben alvast een data frame all_tdm_df voor je geladen, met terms en de bijbehorende bigramfrequenties AmazonPro en GooglePro. Met dit data frame ga je de top 5 bigrammen vinden die beide corpora delen.

Deze oefening maakt deel uit van de cursus

Text mining met bag-of-words in R

Cursus bekijken

Oefeninstructies

  • Maak common_words op basis van all_tdm_df met dplyr-functies.
    • filter() op de kolom AmazonPro voor niet-nulwaarden.
    • Filter op dezelfde manier de kolom GooglePro voor niet-nulwaarden.
    • Gebruik daarna mutate() om een nieuwe kolom diff toe te voegen met het absolute (abs) verschil tussen de frequentiekolommen.
  • Pipe common_words naar slice_max om top5_df te maken op basis van de kolom diff met de hoogste 5 waarden. Dit wordt in je console afgedrukt ter controle.
  • Maak een pyramid.plot en geef achtereenvolgens top5_df$AmazonPro, top5_df$GooglePro en als labels top5_df$terms door.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Filter to words in common and create an absolute diff column
common_words <- all_tdm_df %>% 
  filter(
    ___ != 0,
    ___ != 0
  ) %>%
  ___(diff = ___(___ - ___))

# Extract top 5 common bigrams
(top5_df <- common_words %>% ___(___, n = ___))

# Create the pyramid plot
pyramid.plot(top5_df$___, top5_df$___, 
             labels = top5_df$___, gap = 12, 
             top.labels = c("Amzn", "Pro Words", "Goog"), 
             main = "Words in Common", unit = NULL)
Code bewerken en uitvoeren