Tidy の感情分析と Qdap の極性を比較する
ここでは、感情分析の手法が異なれば結果も異なることを学びます。多くの場合、細部は違っても、結果が同じ方向性を示していれば十分なことがあります。前の演習では、ストップワードを除いた賃貸レビューのデータフレーム tidy_reviews を作成しました。章の前半では、qdap の基本関数 polarity() を計算・可視化し、レビューが概ねポジティブであることを確認しました。
では次に、tidytext 流の同様の分析を行いましょう。前の章で学んだように、まず inner_join() を行い、その後に count()、さらに pivot_wider() を適用します。
最後に、mutate() を使って新しい列を作成し、positive - negative を計算します。
この演習はコースの一部です
Rで学ぶSentiment Analysis
演習の手順
get_sentiments()関数に "bing" を指定すると、bing の主観性レキシコンを取得できます。レキシコンはbingという名前で保持してください。- このコードは第2章ですでに書いているので、
mutate()の中でレキシコンオブジェクトbing、新しい列名(polarity)、その計算式を入力するだけで構いません。 - 最後に新しいオブジェクト
pos_negに対してsummary()を呼び出します。値は異なっていても、平均値を見たとき、polarity()を使った場合と同様に、ほとんどの賃貸レビューはポジティブと言えますか?「成績インフレ(grade inflation)」は見られますか?
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Get the correct lexicon
bing <- ___
# Calculate polarity for each review
pos_neg <- tidy_reviews %>%
inner_join(___) %>%
count(sentiment) %>%
pivot_wider(names_from = sentiment, values_from = n, values_fill = 0) %>%
mutate(___ = ___ - ___)
# Check outcome
___