始める無料で始める

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

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

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

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

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

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

Rで学ぶSentiment Analysis

コースを見る

演習の手順

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

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

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

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

# Qdap polarity
___

# Get Bing lexicon
bing <- get_sentiments("___")

# Join text to lexicon
ag_bing_words <- ___(___, ___, by = c("___" = "___"))

# Examine
ag_bing_words

# Get counts by sentiment
ag_bing_words %>%
  ___(___)
コードを編集して実行