日本語極性判定を作って公開した

## はじめに
日本語極性判定APIを公開しました。[こちら](https://apitore.com/store/apis/details?id=11)で公開しています。極性判定は、入力テキストについてPositiveかNegativeを判定する技術です。早速動作を見てみましょう。

※11月6日アップデート
最新の性能情報は[こちら](http://blog.apitore.com/2016/11/06/update-info-sentiment-api/)でアップデートします。

<img src="http://blog.apitore.com/wp-content/uploads/2016/10/amarec-20161023-142925.png" alt="amarec (20161023-142925)" width="1032" height="640" class="alignnone size-full wp-image-514" />


## デモサイト
- [みんなで改善するSocial Sentiment](https://mashup.apitore.com/social-sentiment/index.html)
- [APIはこちらから利用できます](https://apitore.com/store/apis/details?id=11)


## 関連情報
- <a href="http://blog.apitore.com/2016/09/19/deeplearning4j-jwikipedia-word2vec/">deeplearning4jで日本語WikipediaのWord2Vecを作る</a>
- <a href="http://blog.apitore.com/2016/09/22/deeplearning4j-word2vec-limitation-and-application/">deeplearning4jのword2vecの限界とその上手な使い方</a>
- [deeplearning4jのdoc2vecで極性判定してみた](http://blog.apitore.com/2016/10/17/deeplearning4j-doc2vec-sentiment/)
- [deeplearning4jのdoc2vecにwikipediaのword2vecモデルを注入する](http://blog.apitore.com/2016/10/18/deeplearning4j-doc2vec-word2vec-injection/)
- [deeplearning4jでword2vecのベクトルデータからNNで極性判定してみる](http://blog.apitore.com/2016/10/19/deeplearning4j-word2vec-neuralnetwork-sentiment/)
- [deeplearning4jでword2vecのベクトルデータからRNNで極性判定してみる](http://blog.apitore.com/2016/10/20/deeplearning4j-word2vec-rnn/)
- [【API】日本語極性判定APIを公開しました](http://blog.apitore.com/2016/10/24/sentiment-classification-api/)
- [日本語極性判定技術のデモサイト作りました](http://blog.apitore.com/2016/10/25/ja-sentiment-classification-demo/)
- [deeplearning4jのRNNで極性判定を作った～Early Stop編～](http://blog.apitore.com/2016/11/01/deeplearning4j-rnn-sentiment-early-stop/)
- [【アップデート情報】極性判定APIの精度改善](http://blog.apitore.com/2016/11/06/update-info-sentiment-api/)


## 活用事例
- [ぴよまる様 感情推定【極性判定】AppleScript](http://piyocast.com/as/archives/4289)


## 使ってみる
極性判定の性能はF値で80%程度あります。

【極性判定の性能】
Precision: 0.778
Recall:    0.8633
F1 Score:  0.8185

ということで、ツイッターで適当にツイートを取ってきて、それをぶっこんで動作を見てみましょう。適当にツイートを取ってきたので、誰かのツイートをそのまま載せています。問題があれば教えてください。

まずはポジティブっぽいツイートを・・・。おお。ちゃんとポジティブっぽいやつがポジティブに分類されていますね。

```
"text": "FEif買ったけど普通に面白いな。 昔やってたテンミリオンっていうゲームに似てるからテンミリオン好きで任天堂信者なら買ってみ？"
"sentiment": "positive"
"score": 0.5070942044258118
```

つづいてネガティブです。こちらのネガティブっぽいやつもちゃんと取れていそうです。

```
"text": "地震だったね（ ; ; ） 最近家がドシンと揺れることがあるんだけどなんでだ🤔 工事とかしてないのになあ(´･ω･`)"
"sentiment": "negative"
"score": 0.5986717343330383
```

概ねあっている印象です。評判分析とか商品課題抽出とか、色々な業務改善タスクが捗りそうです。・・・が、当然失敗もします。

```
"text": "任天堂ＮＸの 動画みた！🤗 凄いなー！ 欲しい！☺️"
"sentiment": "negative"
"score": 0.5325021147727966

"text": "ひどいな。何に性的刺激を感じるかは人それぞれ、フェティシズムの対象を公共の場所に貼るのは性的マイノリティに対する暴力である！"
"sentiment": "positive"
"score": 0.7025600075721741
```

## デモの説明
[こちら](https://mashup.apitore.com/social-sentiment/index.html)でデモを体験できます。

公開ツイートを極性判定した結果と、自分で入力したテキストを極性判定した結果を見れます。極性判定結果が間違ってたらフィードバックを送れるようにしたので、よろしければ性能改善にご協力ください。学習モデルを定期的にアップデートしていきます。「みんなで作る無料の極性判定技術」がコンセプトです。デモの詳細な使い方は[こちら](http://blog.apitore.com/2016/10/25/ja-sentiment-classification-demo/)を御覧ください。


## おわりに
日本語極性判定はありそうでなかったと思います。英語の極性判定技術はIBM Watsonが出していますね。元々はAlchemyAPI社の技術で、3年前くらいに仕事で評価しましたがそこそこ性能が良かったです。今回公開したAPIは日本語でそのときのAlchemyAPIに匹敵するくらいの性能は出ています（現状は知りません）。ここから無料APIというメリットを活かして、みんなでものすごく使える極性判定技術を作れたら良いなと思います。ご協力いただければ嬉しいです。

## その他関連技術情報
- [Twitter Stream APIデータに対して初歩的な感情分析を試みる](http://qiita.com/kenmatsu4/items/52ab6deffdd61e7d8c0f)
- [ディープラーニングを使って転職会議の企業クチコミデータを感情分析してみる](http://qiita.com/inuscript/items/54daa5aedde599e2637c)
- [深層学習でツイートの感情分析](http://qiita.com/hogefugabar/items/93fcb2bc27d7b268cbe6)