IBM Watsonと連携するTwitter Botを作ってみよう!
IBM Bluemix User Group(BMXUG)リレー寄稿 第4回
-
- Page 5
9 Hubotにスクリプトを追加し、再度デプロイする
Hubotはスクリプトを追加することで、さまざまな動作をさせることができます。今回はREST APIを利用するスクリプトを作成しましょう。スクリプトは、「C:\Users\(ユーザー名)\watsonhubotdev\ scripts」フォルダ直下に配置します。
HubotのスクリプトはCoffeeScriptかJavaScriptで記述します。今回はCoffeeScriptで記述しています。
テキストエディタなどを開き、以下のコードをコピーしてください。
module.exports = (robot) ->
status = {}
robot.respond /(.*)/i, (res) ->
message = res.match[1]
return if message is ''
res
.http('https://(NLCのusername):(NLCのpassword)@gateway.watsonplatform.net/natural-language-classifier/api/v1/classifiers/(NLCのclassifier_id)/classify')
.headers('Content-Type': 'application/json')
.post(JSON.stringify({ text: message})) (err, response, body) ->
if err?
console.log "Encountered an error #{err}"
else
data = JSON.parse body
res.send Math.round(data["classes"][0]["confidence"]*100) + '%の確率でプログラム言語 「' + data["top_class"] + '」 のことではないでしょうか?'
ファイル名は何でも構いませんが、ここではwatson_nlc.coffeeとしました。後、保存時に必ず文字コードUTF-8で保存するようにしてください。そうしないと、日本語が文字化けしてしまいます。
最後に、manifest.ymlを編集します。NLCサービスが新しく加わったので、テキストエディタなどを開き、以下の内容としてください。
applications: - name: watsonhubotdev path: . memory: 256M services: - watsonhubotdev-nlc
最後に、Cloud Foundryアプリケーションにデプロイを行います。コマンドプロンプトから以下のコマンドを実行してください。
cf push watsonhubotdev
デプロイが完了したら、用意したアカウントとは別のTwitterアカウントでログインし、何か話しかけてみましょう。試しに、「一番難しいプログラム言語は?」と話しかけてみます。

高確率で、「93%の確率でプログラム言語 「C」 のことではないでしょうか?」という回答が返って来ました。プログラム言語のことを学習させているので、それについての話題の正答率は高いです。
では、「アイスクリーム美味しいよね!」と全然関係ない話題を振ったらどうなるでしょうか。

「49%の確率でプログラム言語 「Java」 のことではないでしょうか?」という回答が返って来ました。
このように、学習させた話題とまったく異なる内容では、正答率は極端に低くなることが分かります。
10 最後に
今回は、Hubotを利用して、「質問すると、プログラム言語を返答するBot」を作成してみました。しかし、今回の内容は一例でしかありません。IBM Watsonに学習させる内容や、Hubotのスクリプトの記述次第では、もっと汎用的な質問に回答できるBotを作成できます。また、NLC APIの内容については、QAシステムなどを作成する際にも利用できるものとなっています。
ぜひ、この記事の内容を応用して、快適なコグニティブ・ライフをお過ごしください。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- IBM Bluemix User Group(BMXUG)リレー寄稿連載記事一覧
-
- ブロックチェーンアプリを実際に動かしてみよう!
- Apache Sparkによるスケーラブル機械学習入門
- IBM Watsonと連携するTwitter Botを作ってみよう!
- この記事の著者
-
佐藤 一成(Bluemix User Group)(サトウ イッセイ)
株式会社DIGC/株式会社アイク・ラボの両社にて、代表取締役社長を務める。フルスタック・IBM Watsonを主とした人工知能系エンジニア。大学卒業後、大手SIer、外資系コンサル企業を経て、ベンチャー・一部上場企業の社内SEを経験。その後フリーランスとなり、2015年起業、現在に至る。全国初のIBM Watsonを活用したIctシステムのコンサルティング・システム開発を専門とする。現在は、株式会社株式会社DIGCにて1...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
