こんばんわ。
機械学習というワードはすごく盛り上がっているけど少し離れたところで見ている感じでした。
づや会というイベントで機械学習ネタをやることになり、何かやらねばと思っていたところ、この記事(機械学習について調べてみたら、3行のソースコードを入れるだけで機械学習できるサービスがあった(前編))を読んで機械学習の入門はこういうところからでもありかなと思った次第です笑
ちなみに発表資料はこちらです。
indico
3行のソースコードを入れるだけで機械学習できるサービス
です。
主にテキスト解析
と画像解析
の機能を使えます。
使い方(主に管理画面)
- まずはユーザー登録をしてログインしてください。
- ログインするとダッシュボードを見ることができます。
- API Keyを確認しつつ
Quickstart
を選択しましょう。
このようにSentiment Analysis(感情分析)
が選択されています。
- 下部で
Sentiment Analysis(感情分析)
のデモがあるので確認しましょう
指定したテキストのポジティブ具合を数値で出してくれます。
なるほど...
こういうの全然使ったことなかったので新鮮です。
3行で機械学習
Pythonだとまじで3行で処理できちゃいます。
import indicoio
indicoio.config.api_key = 'API KEY'
indicoio.sentiment_hq("I love writing code!")
Node.jsから使ってみる
僕はほぼほぼNode.jsなのでNode.jsで使ってみます。
まずはindico.ioをインストールしましょう。
$ npm i indico.io
以下のコードで簡単に感情分析を行えます。
var indico = require('indico.io');
indico.apiKey = 'API KEY';
var response = function(res) { console.log(res); }
var logError = function(err) { console.log(err); }
// single example
indico.sentimentHQ("I love writing code!")
.then(response)
.catch(logError);
実行します。 I love writing code!
という文字列のポジティブ具合を
$ node app
0.676276445388794
これでI love writing code!
は67%
のポジティブということが分かりました。
同様に文字列をI'm tired
と入れて実行すると32%
とだいぶネガティブな表現ということが分かり、 Delicious kebabs
(->ケバブおいしい)と入れて実行すると97%
とかなりポジティブな表現ということが分かります。
画像解析も使ってみる
indico.~~
でテキスト解析や画像解析の色々な機能が使えます。
どんなメソッドがあるからはドキュメントを確認しましょう。
けっこうたくさんAPIがあるので色々試してみたいですね。
- contentFiltering
contentFilteringメソッド
は画像のフィルター機能を提供してくれます。
こんな感じで18禁画像かどうかを判定してくれます。
contentFiltering()
の引数に画像のパスを記載すると判定してくれます。
/*省略*/
indico.contentFiltering("http://hogehgoe.com/hogehoge.png")
.then(response)
.catch(logError);
$ node app.js
0.9999968409538269
ちなみにこのプログラムを実行したときの写真は18禁画像でしたね笑
まとめ
こんな感じでindicoを使うとサクッと機械学習を利用することができました。
今回は簡単なAPIの使い方をやりましたが、どんなところで使うかって部分ももっと考えていきたいですね。