1. 学ぶ
  2. /
  3. コース
  4. /
  5. Rで学ぶSentiment Analysis

Connected

演習

Bing の tidy 極性: シンプルな例

内部結合の基本がわかったところで、これを「Bing」レキシコンに適用してみましょう。inner_join() は dplyr の関数で、レキシコンのオブジェクトは tidytext の get_sentiments() で取得します。

Bing レキシコンは単語をポジティブまたはネガティブにラベル付けします。次の3つの演習では、この特定のレキシコンを実際に扱います。get_sentiments() を使うには、取得したいレキシコン名として "afinn"、"bing"、"nrc"、"loughran" のような文字列を渡します。

内部結合のワークフロー:

  • get_sentiments() で目的のレキシコンを取得します。
  • レキシコンと tidy 形式のテキストデータを inner_join() に渡します。
  • inner_join() を動作させるには、共有の列名が必要です。共有の列名がない場合は、追加のパラメータ by に c で列名を指定して宣言します(下記参照)。
object <- x %>% 
    inner_join(y, by = c("column_from_x" = "column_from_y"))
  • 交差したテーブルに対して集計や分析を行います。

指示

100 XP

ag_txt(Agamemnon の最初の100行)と、その tidy 版である ag_tidy を読み込んであります。

  • 比較のため、ag_txt に対して polarity() を使ってください。
  • get_sentiments() に文字列 "bing" を渡してレキシコンを取得します。
  • ag_tidy と bing で inner_join() を実行します。
    • 単語の列名は、ag_tidy では "term"、レキシコンでは "word" なので、by 引数を指定します。
    • 新しいオブジェクト名は ag_bing_words としてください。
  • ag_bing_words を出力し、結果に含まれる単語をいくつか確認します。
  • パイプ演算子 %>% を使って、ag_bing_words を count() の sentiment に渡します。polarity() のスコアと、感情カテゴリの件数比を比較しましょう。