Twitterデータの感情分析

MAXQDAには、Twitterデータを分析するための機能が搭載されています。
このページでは、AIアプローチを使用してツイートを分析し、ツイートに含まれる感情を検出・評価する感情分析機能ツールを紹介します。

Twitterデータの感情分析
  • 英語のツイートをポジティブ・ネガティブのスコアで自動的に分類
  • 検出された感情の得点に応じてツイートを自動コーディング
  • 得点を利用して、ツイートをフィルタリングと並び替え
  • 感情分析の結果をグラフで表現

Twitterデータのインポート方法については、下記のページをご参照ください。

Twitter感情分析機能ツールは、英語データに対してのみご利用いただけます。日本語データに対して感情分析を行う場合は、辞書機能をご活用ください。

ツイートの感情を分析

  • 分析タブから、ツイートを表形式で確認できます
  • 英語のツイートを自動的に感情分析し、ネガティブ・ポジティブのスコアによって5段階に分けることができます

ツイート分析ダイアログ

ツイートの分析は、分析タブからTwitter > ツイートを分析すると操作して、専用のダイアログにアクセスできます。

分析タブ

ツイートを分析する専用のダイアログが表示されます。ダイアログでは、読み込んだツイートが表形式で表示され、アカウント名、ツイートした日時、ツイートのタイプ、ツイート本文、リツイートの数、お気に入りの数およびフォロワー数を確認できます。

関連ページTwitterデータの分析

Twitter分析ダイアログ

ワンポイントアドバイス

一度に分析できるツイートの上限数は1,000です。これを超えるツイートのインポートしている場合、以下のように1000ツイートずつのグループとして分析されます。

ツイートの選択

感情分析

  1. ツイートに含まれている感情の分析を行うには、ツイート分析ダイアログのツールバーで感情を分析するをクリックして分析を開始します。
    感情分析
  2. 新しくダイアログが開くので、分析方法の設定を行います。ドロップダウンメニューからツイートの言語を選択して、さらに、ハッシュタグを無視するか、および除外語リストを適用するかを選択します。
    分析可能なツイートの言語は現在、英語のみです。
    分析の設定
  3. 設定が完了したら、OKをクリックして分析を実行します。

感情分析の結果

感情分析の結果が表示されます。緑丸アイコンの単語列はツイートに含まれるポジティブな単語の数、赤丸アイコンの単語列はネガティブな単語の数です。これらの差が違い列に表示されます。感情列はこの差異を評価して決定されます。

分析結果

分析したツイートはツイートタイプや感情のスコアでフィルタリングできます。画面左側のチェックボックスにチェックを入れて表示するツイートをフィルタリングしましょう。

結果のフィルタ

ツイートを感情で自動コーディング

  • 分析した感情の情報に基づき、ツイートを自動コーディングすることができます
  1. 感情付きツイートを自動コーディングするをクリックして自動コーディングします。
    自動コーディング
  2. ダイアログが開き、自動コーディングする感情の種類を選択し、OKをクリックして自動コーディングを実行します。
    自動コーディングの設定
  3. 自動コーディングが終了し、分析ダイアログを閉じると、文書ブラウザにコードが表示されます。
    コーディングの結果

感情分析の結果をグラフで表現

  • 分析したツイートの感情はグラフまたは表で表示することができます
  1. 分析ダイアログに戻り、感情を分析するをクリックします。感情分析が完了したら、ツールバーで統計ボタンをクリックします。グラフが表示されるので、上部中央のドロップダウンメニューで感情を選択します。
    グラフの選択
  2. 以下のように感情の分布をグラフが作成されます。
    感情ブラフ
  3. グラフの代わりに表で感情の分布を表すことも可能です。グラフツールバーの左上にある表による表示ボタンをクリックします。
    結果表

ワンポイントアドバイス

グラフツールバーでは、グラフの様々な設定を行うことができます。主な機能は以下の画像をご覧ください。

グラフツールバー

感情分析機能ツールの仕様

  • MAXQDAのTwitter感情分析ツールは、感情スコア辞書に基づいて感情スコアを算出します
  • 感情スコア辞書は、SentiWordNet 3.0をベースに作成されています
  • 1ツイートに含まれる単語の感情スコアの平均値が正の値であれぱポジティブな傾向、負の値であればネガティブな傾向と判定されます

感情スコア辞書

Twitter感情分析ツールの感情スコア辞書は、SentiWordNet 3.0をベースにしています。SentiWordNet 3.0とは、単語または連語ごとにポジティブスコアとネガティブスコアを記述したリストです。

MAXQDAでは、SentiWordNet 3.0を元に下記の点をカスタマイズしています。

  • 特殊文字と重複の削除
  • SNSで使われる略語(LOLなど)、絵文字、最上級の追加
  • 同義語が同じスコアになるように調整

感情分析に使われる辞書は、下記のLemmatizationフォルダにインストールされています。

Windows
C:\Program Files\MAXQDA2020\Resources\SentimentScore
MacOS
プログラムフォルダ>MAXQDA2020を右クリック>Show package contents:Contents / Resources / SentimentScore
ポータブル Windows版
\MAXQDA2020
ポータブル Mac版
MAXQDA 2020 Portable for Mac>MAXQDA2020を右クリック>Show package contents:Contents / Resources / SentimentScore
ファイル一覧

SentimentScoreフォルダには、Twitter分析に使用される下記のファイルが入っています。

  • lexicon.csv:感情スコア辞書本体(SentiWordNet 3.0に絵文字やSNS用語を追加したもの)
  • modal_verbs.txt:助動詞リスト(can、shouldなど)
  • modifiers.txt:修飾語リスト(very、reallyなど)
  • neg_contractions.txt:否定語の短縮形対応リスト(do not⇔don’tなど)
  • negations.txt:否定語リスト(not、noなど)

Resources\Lemmatizationフォルダには、Twitterの感情分析や単語検索などに使用する見出し語リストが含まれます。

※見出し語化(lemmatization)とは、単語の原形を推定する処理です。例えば、この処理によってlookとlookingを同一の単語として扱えるようになります。

lexicon.csvについて

SentiWordNet 3.0に絵文字やSNS用語を追加した感情スコア辞書です。単語または連語ごとに、分類(形容詞、動詞、絵文字など)、ポジティブスコア、ネガティブスコア、トータルスコア(ポジティブスコアとネガティブスコアの合計)が記載されています。

lexicon.csv

ポジティブスコアは正、ネガティブスコアは負の値です。トータルスコアが大きいほどポジティブ度合いが強く、ゼロに使いとニュートラル、負の値になるとネガティブとなります。


感情分析のプロセス

感情分析機能ツールは、下記のプロセスで感情スコアを算出します。

  1. ツイートに含まれている各単語が、感情スコア辞書に含まれているかどうかを検索します。
  2. 単語が感情スコア辞書に含まれていた場合は、辞書の記載に従って単語ごとに感情スコアをつけます。
  3. 単語が辞書に含まれていない場合は、Lemmatization(見出し語)リストを検索します。単語がLemmatizationリストに含まれていて、その原型の単語が感情リスト辞書にある場合は、感情スコアを付けます。
  4. 下記に当てはまる場合は、各処理を行います。
    • 否定文の場合は、否定に続く3単語のスコアの正負が逆になります。
      例:「I was not very happy」の場合は「happy」を負のスコアとする
    • canやshouldのような助動詞がつくと、その後に続く単語の感情スコアが減少します。
  5. 1ツイートに含まれる単語の感情スコアの平均値を計算します。
  6. 感情スコアの平均値が負の値だと、そのツイートは「ネガティブ」、または「ややネガティブ」と判定されます。正の場合は、「ポジティブ」か「ややポジティブ」となります。平均値がゼロになった場合は、「ニュートラル」です。感情スコアがどの単語にもつかないツイートは「無感情」とされます。

ワンポイントアドバイス

感情の自動コーディングは、手作業で行う場合と比較して、60-70%の正解率と報告されています。手作業の場合も、分析者によって評価が異なることを考慮する必要があります。

感情分析の質はいくつかの要因に左右されますが、特にトピックスに対して感情スコア辞書がフィットするかどうかが大きく影響します。感情分析は、感情が全く表現されていないツイートに対してはほとんど意味のないことに注意してください。
例:「生活満足度についての統計はこちら→URL」という情報のみのツイートについて、「満足」がポジティブと判定されてしまうケース


参考文献

page_top_icon