create every day - 福野泰介の一日一創

Hello Watson! はじめての Watson AI会話プログラミング with IBM Bluemix

2016/11/24 23:55:00
#AI #fas 

福井県情報システム工業会の理事会とセミナー「学習するコンピューター IBM Watson 経済社会はどう変わるか

IBMといえばWatson。創業者のトーマス・ワトソンから名付けられ、シャーロックホームズの助手ワトソンのように人をサポートするAI(Augmented Intelligence)であって、人の代わりになるAI(Artificial Intelligence)ではないという位置づけとのこと。 ワトソンといえば、古くからWindowsを使っている人には懐かしいDr.Watson

病名を当てるなど実績を上げるWatson、気になるお値段は!?
→ $0.0025 (USD) per API call

約0.25円/回のAPI呼び出しと安い!しかも、1月1000回まで無料!

せっかくなので試してみます。IBM Bluemixで無償評価登録し、"Create Application"、CatalogからWatson、Conversationを選択、Free PLANなので安心です。 IntentでキーワードとDialogで対話状態を設定しておきます。とりあえず、挨拶できるように、おはようと、こんにちはを登録。

JavaのソースコードがGitHubにあるので、Clone or downloadして、Watson APIに接続するためのライブラリを準備します。

コンパイルはJDKとMavenを使います。MavenのMacへのインストールからpackageづくりまでは下記の通り。

# Maven install brew install maven # package をつくる pom.xml があるところで mvn package # 依存するライブラリをtarget/dependencyにつくる mvn dependency:copy-dependencies -DincludeScope=runtime

できたjarファイルを使って、user/pass/workspaceidを設定してサンプルプログラムを実行!

import com.ibm.watson.developer_cloud.conversation.v1.*; import com.ibm.watson.developer_cloud.conversation.v1.model.*; public class Main { static final String USER = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx"; static final String PASS = "xxxxxxx"; static final String WORKSPACE = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx"; public static void main(String[] args) throws Exception { ConversationService service = new ConversationService(ConversationService.VERSION_DATE_2016_07_11); service.setUsernameAndPassword(USER, PASS); MessageRequest newMessage = new MessageRequest.Builder().inputText("おはようございます").build(); MessageResponse response = service.message(WORKSPACE, newMessage).execute(); System.out.println(response); } }

Watsonくんと会話できました!

返ってきたデータはこんな感じで、完全一致していなくても、confidenceで確からしさと合わせて推測してくれます。

{ "context": { "conversation_id": "2f845331-c896-46f8-b745-5524c6abd8cf", "system": { "dialog_stack": [ "root" ], "dialog_turn_counter": 1.0, "dialog_request_counter": 1.0 } }, "entities": [], "intents": [ { "confidence": 0.9416873829261506, "intent": "morning" } ], "output": { "log_messages": [], "text": [ "おはようございます!" ], "nodes_visited": [ "node_3_1480025899490" ] }, "input": { "text": "おはようございます" } }

「おはよう」しか登録はありませんが「おはようございます」に対して、確からしさ94.16%で「おはよう」と判断し、結果を返してきています。

いろんな業務データやオープンデータをimportして使ってみてもおもしろそうですね!


日本IBM、Watson事業部の林さん、遠く福井までありがとうございました!

福井県内のIT企業が集う「福井県情報システム工業会」来年30周年を祝う、スペシャル企画進行中!
ご興味ある方、まずはセミナーや懇親会などにご参加くださいっ

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image