#はじめに
Watson Conversation(以下、Conversation)はIBM Watsonで自動応答を実現する対話アプリケーションプラットフォームであり、サービス提供終了が発表されたWatson Dialogの後継にあたります。豊富なGUIにより初心者でもすばやくかんたんに応答システムを作成することができることが特徴です。
すでにWatson Developer CloudにはConversationのチュートリアルが用意されており、IBM BluemixからConversationを使用する手順を順を追って体験することができます。
ただし、このチュートリアルは英語なので、本記事ではこれを日本のユーザーにもわかりやすく日本語で実施してみました。
#チュートリアルの前に
実際にチュートリアルを実施する前に必要最低限の事項を説明します。
##自動車チュートリアル
本チュートリアルで作成するのは、自動車に搭載する応答システムをごく単純化したものです。運転手や同乗者をユーザーと想定して、ユーザーとの会話の中からユーザーの目的を認識して、適切な応答を返すという動作をします。
自動車向けということで、たとえば次のような会話をさせることが目標です。
- 会話例(1)
ユーザー:こんにちは。
Watson:こんにちは!ご用件はなんでしょうか?
- 会話例(2)
ユーザー:ヘッドライトをつけて。
Watson:わかりました。ヘッドライトを起動します。
- 会話例(3)
ユーザー:音楽を流して。
Watson:わかりました。どんな音楽が聞きたいですか?
ユーザー:クラシックにして。
Watson:わかりました。クラシックを流します。
##intent, entity, dialog
Conversationで応答システムを作成する上で理解しておく必要があるのは、次のintent, entity, dialogの3つの要素です。
Conversationではこの3つを定義していくことで応答システムを作成します。チュートリアルでもその流れを追っていきます。
-
intent:
ユーザーからの呼びかけに含まれる目的です。
Conversationはユーザーからの呼びかけを分類し、ユーザーが求めている目的を理解します。
intentを定義するときは、Conversationがそのintentを識別できるようにするための発言例をあわせて追加します。 -
entity:
ユーザーからの呼びかけに含まれるキーワードです。
目的(intent)の対象物を指定するなどして目的を補足し、Conversationのユーザー目的の理解を助けます。
entityを定義するときは、Conversationがそのentityを識別できるようにするためのentity値とその類義語(同じ意味で異なる表現)を追加します。 -
dialog:
ユーザーからの呼びかけとそれに対するWatsonからの応答の組み合わせです。
ユーザーからの呼びかけを受け取るとそのintentとentityが識別され、dialogの中でそれらに対応する正しい応答が選択されます。
一度のやりとりに対応する単一のdialogであることもあれば、何回かのやりとりに対応する木構造のdialogであることもあります。
##自動車チュートリアルのintent, entity, dialog
本チュートリアルで自動車チュートリアルを作成するために定義するintent, entityを示します。
dialogに関しては後編(次回)で示しますが、上述の会話例は本チュートリアルで定義するdialogの一部です。
- intent
intent | intentの用途 | 発言例 |
---|---|---|
#起動 | 車載機器(ラジオ、ワイパー、ヘッドライトなど)を起動させる | 明かりをつけて、音楽を流して、ラジオを流して、エアコンをつけて、ヘッドライトをつけて |
#あいさつ | Watsonに向かって話しかける | やあ、どうも、おはようございます、こんにちは、こんばんは |
- entity
entity | entityの用途 | 値 (※( )は類義語) |
---|---|---|
@機器 | 起動可能な車載機器 | 音楽(ラジオ)、ヘッドライト(ライト)、エアコン(空調) |
@ジャンル | 選択可能な音楽のジャンル | クラシック(交響楽)、リズム・アンド・ブルース(R&B)、ロック(ポップ) |
- dialog
後編(次回)で説明します。
#チュートリアル
いよいよ、チュートリアルを実施します。
チュートリアルは下記のような構成となっています。
- Stage 1: サービス作成
- Stage 2: ワークスペース作成
- Stage 3: intent作成
- Stage 5: entity作成
- Stage 6: dialog作成
本シリーズではこのチュートリアルを前後編に分けて実施します。 - 前編(今回):Stage 1~Stage 5
- 後編(次回):Stage 6
(※リンク先のチュートリアルでは、番号付けにミスがあるようでStage4が抜けています。本記事でもそのままこの番号に準拠します)
##Stage 1: サービス作成
チュートリアルを開始するには、まずConversationサービスのインスタンスを作成してツールを起動します。
##Stage 2: ワークスペース作成
ワークスペースとは、サービスの動作を定義した情報を格納するためのものです。
ワークスペース内のツールを使用してConvesationサービスの設定を行います。サービスインスタンスに対応するタイルをクリックしたとき、ワークスペースがまだ存在しない場合には作成するように要求されます。ワークスペースは複数作ることができ、ワークスペースページにそれぞれタイルとして表示されます。
##Stage 3: intent作成
Intents
タブにて下記手順により前述の2つのintentを定義します。
以下は、#起動
intentを作成する場合の例です。
1.ワークスペースページにて
自動車チュートリアル
ワークスペースタイルをクリックします。Intents
タブにワークスペースが開きます。
2.Intents
タブにてCreate new
をクリックします。
3.Intent name
欄に起動
と入力します。
4.#起動
intentの発言例を追加します。たとえば、User Example
欄に明かりをつけて
と入力してEnterキーを押すと、発言例明かりをつけて
がintentに追加されます。
5. 同様の手順を繰り返して残りの発言例も追加し、Create
をクリックします。
#起動
intentが作成されIntents
タブに表示されます。
##Stage 5: entity作成
Entities
タブにて下記手順により前述の2つのentityを定義します。
以下は、@機器
entityを作成する場合の例です。
#おわりに(後編に向けて)
今回(前編)はStage1~Stage5を通して、サービスとワークスペースを作成した後、intentとentityを作成しました。
この状態ですでに、作成したintentとentityをWatsonとの会話において使用することができるようになっています。下記手順で確かめてみましょう。
1.
Dialog
タブにて右上のマークをクリックします。
2.Enter some thing to test your bot
に明かりをつけて
と入力しEnterを押します。続けて、音楽
と入力してEnterを押します。
以上の結果からわかるように、すでにWatsonは作成されたintentとentityを識別しています。「明かりをつけて」が機器の「起動」を要求している発言であるということ、「音楽」が起動可能な「機器」であることを理解しているのです。
ただし、現段階ではまだユーザーからの呼びかけを識別できるだけで、応答を返すことはできません。応答を返せるようになるには、dialogを作成してあげる必要があります。
次回(後編)はStage6を通して、いよいよdialogを作成します。
#お問い合わせ
ご質問がございましたら、こちらにもお問い合わせいただけます。
すくすくワトソン編集室: eb17685@jp.ibm.com