インターン ツイートの感情分析

ツイートの感情分析

東京都立産業技術高等専門学校 ものづくり工学科 情報通信工学コース
実習先 Shannon Lab株式会社

1.はじめに
Shannon Lab 株式会社は中野区にある人工知能を開発するベンチャー企業である。アプリ開発・データ解析なども行っている。会社名は情報理論の父と言われる数学者のクロード・シャノン氏に因んでいる。
Shannon Labはインターンシップ生を積極的に募集している。ベンチャー企業であるのでインターン生も即戦力であり、大企業などのインターンシップと違い実習活動の成果が求められる。実習の内容は、今回私が参加させて頂いた開発以外にも、企画・デザイン・営業・経営まで幅広い。
今回、インターンシップの実習期間は8月18日から9月5日までの15日間行った。その約1ヶ月前から事前準備としてPython言語の練習・開発には必須となるデータベースの扱いの練習・各種環境の準備などを行った。
実習のテーマは『単語感情極性対応表』を用いたtwitterのツイートの感情分析である。『単語感情極性対応表』とはその語が一般的に良い印象をもつか悪い印象を持つかを1から-1の値で示した表である。
このテーマを選んだ理由は、3年生の創造実習でこの表を用いた日記を作っており、もっと身近でたくさんの人が使うツイッターの感情分析ツールを作ってみたいと考えたからだ。
実習の目標を『そのツイートがネガティブかポジティブかを判断するプログラムを作る』と定め、インターンシップ活動に臨んだ。

2.実習内容
作業日程は以下のようになった。
第一週は去年のインターン生が作成したプログラムの引き継ぎ・改変作業を主に行った。MeCabやCaboChaの練習などもこの週に行った。
第二週は実習テーマである『ツイートの感情分析』に取りかかった。
第三週はその精度上げとツイートの自動取得機能追加を行った。
感情分析プログラムには以下の3つを使用した。
ツイートの形態素解析にはオープンソースの形態素解析エンジン『MeCab』を使用した。MeCabは、文を分かち書きしたり、分かち書きした単語の品詞や基本形を判断することができる。今回はこの機能を感情辞書を引く為の前準備であるツイートの分かち書きと品詞・基本形判断に使用した。また、『単語感情極性対応表』を参考に感情値の情報を追加した感情辞書をつくり、MeCabで使用した。
ツイートの構文解析にはSVMに基づく日本語係り受け器『CaboCha』を使用した。CaboChaはツイートに含まれる単語同士の関係性(係り受け)を求めることができる。今回は、「楽しくない」など否定を表す「ない」を発見するために使用した。「ない」の判別は、「楽しくない」を「楽しい」の感情値反転とする為に必要不可欠である。
ツイートの自動取得にはtwitterAPI用pythonライブラリtweepyを使用した。tweepyを用いることにより、キーワードでツイートを検索し取得してくる事ができる。
作業を進めていく上で以下のような工夫をした。
『単語感情極性対応表』自体がネガティブ寄りであるので、そのまま使用すると殆どのツイートがネガティブ判定されてしまう。これは、ネガティブとポジティブの境界線を-0.2に定める事で大体それらしい判定ができるようにした。
『良かった』は『良い』の過去形だが、感情辞書には基本形の形しか登録されていない為直接感情値をとってくることができない。これは、MeCabのシステム辞書を使い分かち書き後の単語を基本形に変換する工程を加える事で解決した。
否定表現の判定は、分かち書きした単語が『基本形が「ない」の助動詞』であれば、文内の名詞・動詞・形容詞の感情値を反転するという方法で行ったが、この方法では『海に行かない?』の『ない』が否定表現と判定されてしまう。『ない』の後に『か』がある場合、もしくは文末にクエスチョンマークがある場合には否定表現ではないと判定するように判定基準を改変した。
『感情極性対応表』には、「映画」や「漫画」などといった普通名詞も存在するが、それらに対する感情は個々人で違う。しかし名詞全てを除外すると「感動」や「絶望」といった直接的に感情を表す名詞も消えてしまう為、名詞の中でもMeCabの種分けで一般・数・固有のものを選んで感情辞書から取り除いた。
ツイッターの文章は砕けたものが多く、『かわいい』などの最後が『いい』で終わるものは『いー』、『寂しい』などの最後が『しい』で終わる物は『しー』に変換するなどして砕けた表現を感情辞書に追加した。
ツイッターでは顔文字が感情表現に使われているので、感情を表す顔文字を辞書として配布しているサイトを参考に感情辞書に顔文字を追加した。また、文末に『w』のあるツイートは感情の起伏が激しいと判断し、その文の感情値を増幅した。
ツイートの自動取得に関しては、定期ツイートや広告ツイートを取り除く簡単なクリーニングを行い、できるだけ人間のツイートを取得できるようにした。

3.結果と考察
映画『リトルフォレスト』を検索キーワードとして集めた100のツイートをネガティブとポジティブに分けた結果、感情値の絶対値が大きい3つを、図1と図2に表した。


図1 映画についてのネガティブ

図2 映画についてのポジティブ

図1の一番下は、「嫌」などによりネガティブ評価が下されたのだと思われるが、「リトルフォレストをみて心を洗いたい」と言っている事から、リトルフォレストに対してはポジティブな印象を持っていると分かる。このように、ツイートの感情とキーワードに対する感情が一致していない場合があるので、この方法ではキーワードに対する評価が分かるとは言えない。 
『香川真司』を検索キーワードとして集めた100のツイートをネガティブとポジティブに分けた結果、感情値の絶対値が大きい3つを、図3と図4に表した。

図3 人物についてのネガティブ

図4 人物についてのポジティブ

 図3から分かるように、人物に関するツイートの感情判断の結果は人間が納得出来ないものが多い。一番上は「戻る」、二番目は「向ける」「公開」「反応」などに負の感情値がついているのが原因である。しかし、ファンからの手紙についてのツイートは、人間から見るとポジティブな感情を持っていると思われる。
 人物についてのツイートには、形容詞などはっきりと感情を伝える単語があまり含まれず、場合によって受け取り方が異なる動詞や名詞などの感情値の影響が出てしまう。そして感情辞書の基にした『感情極性対応表』の収録する単語の多くが負の感情値を持つ為に、負の感情値をもつ単語の方が多く見つかり、全体の感情値がネガティブになる。結果的に感情が曖昧なツイートはネガティブ判定されやすくなっているのだと考えられる。これは、感情辞書のどちらともとれる曖昧な単語を消すか、何らかの方法で「どちら」と特定出来るようにする必要がある。

 自動でキーワード検索して取得してきたツイートを、感情分析してネガティブとポジティブに振り分けるプログラムを作る事ができた。
 しかし、振り分け結果については、ポジティブは納得できる結果が得られたが、ネガティブと判定されたツイートについては納得できないものも多く含まれた。これには、感情辞書のもとにした『感情極性対応表』の単語がネガティブ寄りであることが原因であると考えられる。
 今回はMeCabの勉強不足でニコニコ大百科やwikipediaなどから取り出した固有名詞を使用する事ができなかったので、固有名詞に感情辞書に載っている単語が含まれる場合その感情値を拾ってしまう問題が発生した。ツイートには日々増え続けるネット用語が含まれており、これらで感情表現を行っているツイートについては感情値をとる事ができないのも問題として挙げられる。
 また、今回作ったプログラムでは「絵は嫌いだがストーリーは好きだ」という風に複数の評価が混在すると、感情値の判断が正しく行われない。文の中でどこが強調されているのかなど、単純に単語の感情値を合計するだけでない工夫が必要だと考えられる。
 他にも、ツイートの日本語は話し言葉に近く、CaboChaでの構文解析が難しいことや、固有名詞同士の関係が分からないと比較表現のあるツイートの感情分析が困難である事が分かった。(例えばドラえもんでキーワード検索した場合「ドラえもんは好きだがアンパンマンは嫌いだ」という場合と「ドラえもんは好きだがのび太は嫌いだ」という場合ではドラえもんという作品についての感情値は変わる。)

4.まとめ
 文章の感情値を調べる為には、単語の感情値を単純に辞書と照らし合わせてとってくるだけでは不十分だと分かった。ツイートの構文解析を正確に行うことで、もっと精度が上がるだろうと考えられる。
 また、ツイートの感情辞書を作成する場合は、ネット用語や顔文字なども含める必要があり、岩波国語辞典をリソースとした既存の表を使用するのには限界があると感じた。
 

(a) インターンシップに参加した感想
 前述したように、Shannon Labのインターンシップは開発・企画・デザイン・営業・経営まで幅広く募集しているため、インターン生には工学系の学生だけでなく、法学や芸術を専門とする学生もいた。今回のインターンは、工学以外を専門とする人たちと話をする良い機会になったと思う。
 また、インターンシップ中に首都大学東京で行われた情報処理学会を見学させていただくことができた。とても貴重な体験をしたと思う。
 
(b) 後輩へのアドバイス
 Shannon Labでのインターンシップは決められたスケジュールに沿って決められた作業をする職業体験ではありません。テーマを決めた後は目標に向けて自分で方法を調べ、試行錯誤を重ねて活動するという方針は創造実習と同じです。しかし、サーバをお貸しいただけたり、会社製のプログラムを見せて頂けるなど、1人では決してできない経験ができるので、力をつけたい人にはおすすめです。

参考文献
1) 高村大也, 乾孝司, 奥村学
“スピンモデルによる単語の感情極性抽出”, 情報処理学会論文誌ジャーナル, Vol.47 No.02 pp. 627–637, 2006.

Comments are closed.