1問1答のチャットボットは簡単に作れる!

目次
はじめに
簡単に!っと言っておきながら、チャットボットは、想定される質問を地道に一つずつ作ります。

一個一個質問の答えを作るのが地道なだけで、難しくはありません
大まかな流れは以下になります。

用語の説明|インテント・エンティティ
覚えておく必要のある用語は2つだけです。
説明 | 例 | |
インテント | 質問に対する回答や請求書の支払処理などの顧客の入力に表現される 目的または目標 | 教えて |
エンティティ | ユーザーの目的に関連した、ユーザー入力の情報 | AI |

アシスタントの追加
では、早速、作っていきましょう。
Watson Assistantのサービスページにある、「 Watson Assistantの起動」をクリックして、「Create assistant」でアシスタントを追加してください。


スキルの追加
Add Dialog skill > Create Skill > Name入力 > Language選択 > Create dialog skill
の順です。


skillを作ったら、そのまま作ったskillをクリックしてください。

インテントの追加
作成したskillを立ち上げると、「Intents」「Entities」「Dialog(会話フロー)」が作成できるようになります。
Intents タブ > Create intent を押してください。

最初にどんなintentにするか聞かれますので、今回は「調べる」をインテントにしたいので、#の後に「search」と入力して、「Create intent」を押します。Descriptionは未入力でも良いです。

あとは、下記のように、調べるときに使いそうなフレーズを入力します。
ここは、できるだけ、現実にされるものを入力してください。
会話ログとかから参照するのが理想です。
ここに入力を多くしておけば、人の微妙な差を吸収してくれます。

エンティティの追加
次にエンティティを追加します。
今回は、「調べる対象」>「AI」とします。
Etities タブ > Create entity を押してください。

「調べる」というインテントに関連する、エンティティ(何を)なので「search_item」とします。入力したら、「Create entity」を押してください。

search_itemは今回は「AI」を追加します。他にもいっぱい入力してみてください。
Value nameに「AI」を追加して、右のSynonymsは類似語を入力してください。ここも多く入力することで、人の微妙な差を吸収してくれます。

ダイアログ(会話フロー)の作り方
最後に、会話のフローを作ります。
Dialogタブを開くと、最初から2つ、nodeが足されています。nodeは会話の1つ1つのことです。
会話は上から順番に進みます。
「ようこそ」というnodeの部分は、チャットボット開始の返信内容が設定されています。
返信内容は好きに設定してください。
「その他」は設定していない質問が来たときに返信する内容です。

ようこそをクリックした状態で、「Add node」を押すと、下に、会話が追加されます。
このnodeの部分では、会話の名称と返信以外に、インテントやエンティティを組み合わせて、どんな質問が来たときに、どんな返信するか設定します。
インテントは頭に「#」、エンティティは頭に「@」がついて表されます。
追加したnodeは、下記のように設定してください。
今回は、#search and @search_item:AIとしています。これで「調べる」&「調べる単語:AI」という質問が来たときという条件が設定できました。
入力には、システムの入力補助が付くので、直接入力せずとも選んでいくだけで良いです。

Try it outで試す
これで、AIについての質問に返信できるようになりましたので、早速試しましょう。
右上にある「Try it」を押すと、チャットボットの動作確認画面が出ます。

「aiとは」と質問してみると、設定した返信をしてくれました。
質問に対して、インテント、エンティティがあっているかも同時に緑線箇所で確認できます。

その他
より複雑な会話をする場合は、ダイアログのノードを階層的にして、会話の状態がわかるように変数を使ったりする必要がありますので、難易度が上がってきます。
ですので、とりあえずは、1問1答でシンプルなチャットボットを作ってみましょう。
word pressの実装はこちらを参照ください。
リンク
チュートリアルのIBM Assistantのリンクです。より詳しくはこちらを参照ください。
最後に
word pressと組み合わせると、自分のウェブサイトに簡単にチャットボットが実装できます。
Watson Assistant以外にも色々なチャットボットのサービスが出ていますので、試すことがあれば、また、記事にしたいと思います。