Sentiment Analysisに使えるデータセットとしてSentiWordNetというものがあります。これは、概念 (synset) ごとにポジティブ値とネガティブ値、そして例文がついています。具体的には以下のようになっています。
a 00001740 0.125 0 able#1 (usually followed by `to') having the necessary means or skill or know-how or authority to do something; "able to swim"; "she was able to program her computer"; "we were at last able to buy a car"; "able to get a grant for the project"
a 00002098 0 0.75 unable#1 (usually followed by `to') not having the necessary means or skill or know-how; "unable to get to town without a car"; "unable to obtain funds"
しかし日本語版が提供されていないので、今回はこれを無理やり日本語化しようと思います。
やり方は単純に日本語WordNetのDBを利用してSentiWordNetのsynsetから日本語の見出し語を取得して、例文はGoogle Apps Scriptを使って翻訳します。
コードはこちら
https://gist.github.com/ikegami-yukino/2a5ed3fd3ccde2938f020e47a8e4c9af
実行するには、SentiWordnet 3.0と日本語WordNetのDB (Japanese Wordnet and English WordNet in an sqlite3 databaseって書いてあるやつ) のダウンロードと、Google Apps ScriptのPlease_write_here
の部分を書き換えるのと、requestsのインストールが必要です。
実行すると以下のような結果が得られます。
00001740-a 可能 0.125 0 泳げる,彼女は自分のコンピューターをプログラムできた,ついに車を買うことができました,プロジェクトの助成金を得ることができる
00002098-a できない 0 0.75 車なしでは町に行けない,資金を獲得できない
ただし例文の翻訳が下記のように微妙なことが多々あります。
古い世界をかき回した活発な議論によって触れられないそのささいな地方主義でシチュー
彼の頭は種を蒔くために行ってタンポポのようにあいまい
部屋は窒息していた - 暑くて空気のない
また、英語から日本語に訳す際にニュアンスが変わってしまう言葉があったりするので、このデータをそのままつかうのではなく、シードとして誤りを正すなり除外するなりしたほうがいいと思います。お金があれば翻訳処理の箇所を有償サービスのものに書き換えてみるのも手です。