Apitore blog

Apitoreを運営していた元起業家のブログ

極性判定のニュートラルのデータを補強する

はじめに

Apitoreでは極性判定WebAPIを無償で提供しています。Qiitaでもそこそこ反響があった技術です。今回はデータが少なかったNeutralについてDistant Supervisionで補強を試みました。

デモサイト

サンプルコード

やったこと

Apitore極性判定技術はDistant Supervisionをベースに、乾研究室の極性辞書皆様からのフィードバックでオンライン学習をしたものになります。Distant SupervisionはTwitter社の提供する極性判定結果を使っていました。なので、PositiveとNegativeしか集められていませんでした。今回やったことは、NeutralツイートをDistant Supervisionで集めようという試みになります。作業は以下になります。

  1. 手作業で作った約3000語の目的語リストを使って、TwitterのSearchAPIでツイートを収集します。およそ200万ツイート集めました。
  2. 乾研究室の極性辞書に掲載されているpositiveとnegativeの単語を含まないツイートを抽出しました。200万ツイートから取れるだけ取ると過学習する可能性があるので、positiveやnegativeの学習データを参考に適当に決めました。今回は約7万ツイートです。

結果

評価データは前回までのもの+αに、今回のDistant Supervision版Neutralデータ(学習につかったものとは別)を追加しました。下に結果を載せます。「0=positive」「1=negative」「2=neutral」です。 Before(2016年11月21日版)

Examples labeled as 0 classified by model as 0: 4076 times
Examples labeled as 0 classified by model as 1: 2218 times
Examples labeled as 0 classified by model as 2: 3335 times
Examples labeled as 1 classified by model as 0: 1327 times
Examples labeled as 1 classified by model as 1: 28105 times
Examples labeled as 1 classified by model as 2: 4141 times
Examples labeled as 2 classified by model as 0: 11196 times
Examples labeled as 2 classified by model as 1: 9941 times
Examples labeled as 2 classified by model as 2: 4784 times

After(2017年5月12日版)

Examples labeled as 0 classified by model as 0: 7048 times
Examples labeled as 0 classified by model as 1: 759 times
Examples labeled as 0 classified by model as 2: 1822 times
Examples labeled as 1 classified by model as 0: 2090 times
Examples labeled as 1 classified by model as 1: 28438 times
Examples labeled as 1 classified by model as 2: 3045 times
Examples labeled as 2 classified by model as 0: 1101 times
Examples labeled as 2 classified by model as 1: 1015 times
Examples labeled as 2 classified by model as 2: 23805 times

結果から分かるとおり、BeforeはNeutral(っぽい)データをNeutralと判定できていません。学習に使ったデータがほとんどないので・・・まあ当然ですね。一方で、AfterはNeutral(っぽい)データをNeutralと判定できています。 次に、実際のツイートの結果を見てみましょう。めんどくさかったので、Afterだけですし、画像で失礼。まあ、いい感じですね。

おわりに

なぜ最初からこれをやらなかったのかってくらい、単純な話でした。Neutralに出力する割合がかなり増えたので、様子をみてください。もし以前のバージョンの方がよかったってことがあれば、戻すこともできます。・・・が、できれば極性判定デモで現行バージョンの間違いをフィードバックしてほしいなと思います。

関連情報

極性辞書(レファレンス)

  1. 小林のぞみ,乾健太郎,松本裕治,立石健二,福島俊一. 意見抽出のための評価表現の収集. 自然言語処理,Vol.12, No.3, pp.203-222, 2005. / Nozomi Kobayashi, Kentaro Inui, Yuji Matsumoto, Kenji Tateishi. Collecting Evaluative Expressions for Opinion Extraction, Journal of Natural Language Processing 12(3), 203-222, 2005.
  2. 東山昌彦, 乾健太郎, 松本裕治, 述語の選択選好性に着目した名詞評価極性の獲得, 言語処理学会第14回年次大会論文集, pp.584-587, 2008. / Masahiko Higashiyama, Kentaro Inui, Yuji Matsumoto. Learning Sentiment of Nouns from Selectional Preferences of Verbs and Adjectives, Proceedings of the 14th Annual Meeting of the Association for Natural Language Processing, pp.584-587, 2008.