頂上決戦!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 と、それに対応する AmazonPro、GooglePro のバイグラム頻度から成ります。これを使って、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$AmazonPro、top5_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)