Sentiment AnalysisのVADER論文を読んだ

ちゃお・・・†

まいおり・・・†

今回はNLTKに採用されたVADERの論文について紹介しようと思います。

VADERって?

ICWSM-14で提案されたsentiment analysisの手法。

以下の特長があるようです。

  • ソーシャルメディアに出てくるようなテキストに強い
  • 学習データがいらない
  • True/False の2値じゃなくて0.0-1.0の範囲で程度を表す
  • ストリーミングデータに対応できるくらい早い
  • スピードと精度のトレードオフを考えなくてもいい

評価実験では4200ツイートの極性判定でF1値が0.96とのこと。

どんな風にして作られたかざっくり書いてみます。

1. 収録語彙の候補を集める

さまざまな言語資源から収録語彙を収集。

全部で9000くらいになるらしい

2. 人手でスコアリング

Amazon Mechanical Turk (AMT) で人を募って、語のpositive/negativeの度合い[-4, +4]をレーティングする。

このとき、AMTを使うにあたって品質コントロールのためにいろいろやってる。

  • 大学レベル以上の英語読解能力の人に絞る
  • 事前にsentiment ratingのトレーニングなどを受けさせる
  • あらかじめ分布を計算した特定の語 (golden items) よりかけ離れたレートをつける人のデータは使わない
  • 大多数の人が選んだレートと一致してたら報酬を与える

こうしてレーティングされた結果から無効な語彙をカット。

結果、7500語が残ったそう

3. sentiment intensityの特徴をみつける

1.と2.でやったのはpositive/negativeの度合いで、 今度はネガポジ関係ない感情的な強さを示す特徴をみつける。

1万ツイート中からpattern.enのpositive/negativeのスコアが高い順に400ずつツイートを抽出。

人間が各ツイートの強さをレーティングしてそれを分析して5つの特徴を使うことにしている。

  • 感嘆符 (!) の数
  • 全て大文字で書いてる語 (greatをGREATって書いたり)
  • 程度を表す語 (extreamyとかpartlyとか)
  • "but" の後の文は極性をシフトする
  • tri-gram (cut the mustardとか)