IniziaInizia gratis

Scontro in gabbia! Recensioni pro: Amazon vs. Google

Nelle recensioni positive su Amazon compaiono bigrammi come "good benefits", mentre nelle recensioni negative emergono temi come "workload" e problemi di "work-life balance".

Al contrario, le recensioni positive su Google menzionano "great food", "perks", "smart people" e una "fun culture", tra le altre cose. Le recensioni negative parlano di "politics", del fatto che sta "getting big", di "bureaucracy" e di "middle management".

Decidi di creare un pyramid plot allineando le recensioni positive di Amazon e Google per confrontare le differenze tra i bigrammi in comune. Abbiamo già caricato un data frame, all_tdm_df, composto da terms e dalle frequenze dei bigrammi corrispondenti AmazonPro e GooglePro. Usando questo data frame, identificherai i 5 bigrammi principali condivisi tra i due corpora.

Questo esercizio fa parte del corso

Text mining con Bag-of-Words in R

Visualizza il corso

Istruzioni dell'esercizio

  • Crea common_words a partire da all_tdm_df usando le funzioni di dplyr.
    • Applica filter() sulla colonna AmazonPro per i valori diversi da zero.
    • Allo stesso modo filtra la colonna GooglePro per i valori diversi da zero.
    • Poi usa mutate() per creare una nuova colonna, diff, che è la differenza abs (assoluta) tra le colonne delle frequenze dei termini.
  • Passa common_words in pipe a slice_max per creare top5_df, riferendoti alla colonna diff e ai primi 5 valori. Verrà stampato in console per la verifica.
  • Crea un pyramid.plot passando prima top5_df$AmazonPro, poi top5_df$GooglePro e infine aggiungi le etichette con top5_df$terms.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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)
Modifica ed esegui il codice