JavaScript
Node.js
機械学習
indico

3行のソースコードを入れるだけで機械学習できると噂のindicoをNode.jsで使って機械学習入門してみる

More than 3 years have passed since last update.

こんばんわ。

機械学習というワードはすごく盛り上がっているけど少し離れたところで見ている感じでした。

づや会というイベントで機械学習ネタをやることになり、何かやらねばと思っていたところ、この記事(機械学習について調べてみたら、3行のソースコードを入れるだけで機械学習できるサービスがあった(前編))を読んで機械学習の入門はこういうところからでもありかなと思った次第です笑

ちなみに発表資料はこちらです。


indico

3行のソースコードを入れるだけで機械学習できるサービスです。

主にテキスト解析画像解析の機能を使えます。


使い方(主に管理画面)


  • まずはユーザー登録をしてログインしてください。

  • ログインするとダッシュボードを見ることができます。


  • API Keyを確認しつつQuickstartを選択しましょう。

このようにSentiment Analysis(感情分析)が選択されています。


  • 下部でSentiment Analysis(感情分析)のデモがあるので確認しましょう


指定したテキストのポジティブ具合を数値で出してくれます。


なるほど...

こういうの全然使ったことなかったので新鮮です。


3行で機械学習

Pythonだとまじで3行で処理できちゃいます。


app.py

import indicoio

indicoio.config.api_key = 'API KEY'
indicoio.sentiment_hq("I love writing code!")


Node.jsから使ってみる

僕はほぼほぼNode.jsなのでNode.jsで使ってみます。

まずはindico.ioをインストールしましょう。


https://www.npmjs.com/package/indico.io


$ npm i indico.io

以下のコードで簡単に感情分析を行えます。


app.js

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()の引数に画像のパスを記載すると判定してくれます。


app.js

/*省略*/

indico.contentFiltering("http://hogehgoe.com/hogehoge.png")
.then(response)
.catch(logError);


$ node app.js

0.9999968409538269

ちなみにこのプログラムを実行したときの写真は18禁画像でしたね笑


まとめ

こんな感じでindicoを使うとサクッと機械学習を利用することができました。

今回は簡単なAPIの使い方をやりましたが、どんなところで使うかって部分ももっと考えていきたいですね。


本当のつぶやきで機械学習