始める無料で始める

頂上決戦!Amazon vs. Google の好意的レビュー

Amazon の肯定的なレビューでは「good benefits」などのバイグラムが目立ち、否定的なレビューでは「workload」や「work-life balance」に関する問題が中心のようです。

一方、Google の肯定的なレビューでは「great food」「perks」「smart people」「fun culture」などが挙がります。否定的なレビューでは「politics」「getting big」「bureaucracy」「middle management」といった話題が見られます。

そこで、Amazon と Google の肯定的レビューを並べたピラミッドプロットを作成し、共通するバイグラム間の違いを比較することにしました。 データフレーム all_tdm_df をあらかじめ読み込んであります。これは terms と、それに対応する AmazonProGooglePro のバイグラム頻度から成ります。これを使って、2つのコーパスで共有されている上位5つのバイグラムを特定します。

この演習はコースの一部です

Rで学ぶBag-of-Wordsによるテキストマイニング

コースを見る

演習の手順

  • dplyrの関数を使って、all_tdm_dfからcommon_wordsを作成します。
    • AmazonPro列が0でない行でfilter()します。
    • 同様にGooglePro列が0でない行でもfilter()します。
    • その後、mutate()で新しい列diffを作成します。これは用語頻度列同士のabs(絶対)差です。
  • common_wordsをパイプでslice_maxに渡し、diff列を基準に上位5件を抽出してtop5_dfを作成します。コンソールに出力されます。
  • pyramid.plotを作成し、top5_df$AmazonProtop5_df$GoogleProの順に渡し、最後にtop5_df$termsでラベルを追加します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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)
コードを編集して実行