Loading...

Watson Conversation 日本語環境を試してみる

チャットボットや質疑応答に多くの人が「Watson Dialog」をお使いですが、16年9月8日を以て新規利用受付の終了および17年8月9日でサービス終了とアナウンス(※)されました。
※IBMの発表(こちらから)
後継サービスが、「Watson Conversation」です。16年8月20日現在、日本語に対応していることを確認しました。「Watson Conversation」を用いて、チャットボットの会話をWatsonに教育・学習する手順を紹介します。また、実際に検証用の画面を用いてチャットを行う方法もご紹介します。

Watson Conversation

公式資料は他のWatsonサービスと同じく英語で、ここをクリックすることでアクセスすることができます。日本語の資料については、コミュニティベースのQiita(キータ)にもWatson Conversationの資料があります。
Bluemix上で使用するには、こちらをクリックしてください。今回ご紹介するにあたり、Bluemixの英国データセンターを使用しています。Bluemixを使ったことがない方にはピンとこないかもしれませんが、Bluemixには、日本国内のデータセンターがなく、英国、米国南部、シドニーの3つのデータセンターから選ぶことができます。

Bluemixにログインし、こちらからWatcon Conversation サービスを無料プランで作成、起動します。今回は特にプログラムコードを書かずに、Watsonに会話を学習させるツール上でチャットボットの検証を行います。

Watcon Conversation が起動すると、画面下に「Launch tool」ボタンが表示されますのでクリックします。画面は英語ですが気にせずに進めます。

Watsonに会話を学習させるツールが起動しますので、初めて使用する場合は、ワークスペースを作る必要があります。「Create」ボタンをクリックします。

ワークスペース作成画面では、「Name」に英数字でワークスペース名を入力し、「Language」では、Japaneseを選択しました。入力後、「Create」ボタンをクリックします。

下図のように、ワークスペースが作成されます。作成したワークスペースをクリックします。

すると、最初は質問の例の集合体(intents)が無いので、intentsを作成するように言われます。画面上部の「Intents」をクリックしし、質問の例の集合体を作成しましょう。

「Intent name」は英数字で入力し、その下の「User example」に、チャットボットの使用者が質問しそうな質問の例を5つ以上入力し、「Create」ボタンをクリックします。5つというのは最低限ですから、4つ入力して「Create」ボタンをクリックすることは出来ません。ここでは、「#set_hungry」というIntent nameで、おなかへったをという質問の例を6つ入力しています。質問の例の数が多いほど、質問の例と異なる質問をチャットボットの使用者がWatsonに質問しても、Watson側で推測・対応してくれるようになります。

次は、Intents)に対するEntitiesを作成します。Entitiesは、チャットボットの利用者がWatsonに質問 → Watsonが回答を返す際のキーワードの集合体と考えれば良いでしょう。こちらも最低5つ以上、valueを入力します。Value(キーワード)に対するSynonyms(類義語)は多いほど、Watsonが推測し易くなります。

Intents、Entitiesと作成しましたら、Dialog で会話の流れを組み立てます。Dialogの利用については、IBM developerworksのこちらの資料が大変参考になります。Dialogの画面では、最初の箱の「Enter a condition」に、「conversation_start」と入力し、Watson Says に、Watsonから最初の挨拶文を入力します。続けて、「Anything else」に、Watsonが、利用者からの質問が理解できない場合の文を入力します。

次に、最初の箱の直下に下図のように「#set_hungry」の箱を作成します。最初の箱の下にある「+」のアイコンをクリックし、次の値を入力します。
Enter a condition:「#set_hungry」
Watson Says:「そうですね、」

その後、「#set_hungry」の箱で、右上の枠の部分をクリックし、「Continue from…」をクリックします。再度、「#set_hungry」の箱の右横の「+」アイコンをクリックします。そして下図のようになるように、選択、入力します。
Enter a condtion:作成したEntitiesより「@traditional_area_food」
Watson Says:「<? @traditional_area_food ?> の郷土料理に興味はありますか?」
上記入力後に、「Go to condition」をクリックします。
<? @traditional_area_food ?>の部分に、Entitiesに定義したキーワードが入ります。

次に、「@traditional_area_food」の箱をクリックし、下の「+」アイコンをクリックします。新たな箱ができますので、下図のようになるように入力します。
Enter a condtion:「true」
Watson Says:「どこに行く予定ですか?」

ここまで出来ましたら、画面右上のチャットアイコン(Ask Watson)をクリックしますと、画面右端に検証用のチャット画面が表示されますので、Intentsで定義した質問を入力します。また、Watsonが「どこに行く予定ですか?」といった後には、Entitiesで定義したキーワードを入力しますと、「@traditional_area_food」の箱に入力したWatson Saysの内容がかえってきます。

まとめ

今回は、Watson Conversationを用いて、Watsonにチャットボットの会話を日本語で教育・学習させるための設定手順を紹介しました。実際には、Node.jsやJava等のプログラミング言語を用いて、チャット用のUIを作成する必要があります。UIのサンプルとしては、こちらの公式デモが参考になります。
公式デモにアクセスし、画面下の「Simple Chat App on Github」または「Full car dashboard demo on Github」をクリックしますと、公式デモの説明やソースコードを確認することができます。