RPA BANKをご覧のみなさま、こんにちは!「最近AIが気になって仕方がない」とウズウズしているものの、「ドコにもスキがないピリッとした雰囲気」になかなか一歩を踏み出せないでいる、そんなみなさまに向けたお気楽AI解説連載『さるでき流 AIのはじめかた』、今回でラッキーセブンを迎えております。

はじめてのチャットボット、動きましたね!スキルを作って、インテントを登録し、ダイアログを組み立てていく、という基礎となる流れを体験することができました。みなさまもテスト機能を使って会話を試してみましたか?

コロボ「当たり前ですけど、設定していないことには何も答えられませんね…」
ワトソン「そうなんです。この辺りが『人工無能』と呼ばれてしまう悲しいところなのです」

コロボ「でも大丈夫ですよ!『脳ある鷹は爪を隠す』って言いますし!」
ワトソン『解釈デキマセンデシタ。微妙ニ漢字ガ間違ッテイル気ガシマス。』

今回は、前回少しだけ触れた「インテントの登録」について、もっと深く見ていくことにしましょう。繰り返しになりますが、もし、画面に出てくる用語でわからないものがあったら、第5回までの記事をチェックしてくださいね。

それでは、Watson AssistantサービスのManage画面にある『Watson Assistantの起動』ボタンをポチッとどうぞ!更なるインテント登録の開始です。

【インテントの登録】
インテント登録をグイグイ進めていく前に、一応Watson Assistantによる「チャットボット作りの手順」のおさらいをしておきましょうか。

STEP1 「Assistant(アシスタント)」の作成
STEP2 「Skills(スキル)」の作成
STEP3 「Intents(インテント)」、「Entities(エンティティ)」の登録
STEP4 「Dialog(ダイアログ)」の組み立て

うん、こんな感じでしたね。前回はこの流れを一部ショートカットして、「STEP2(スキルの作成)」「STEP3の一部(インテントの登録)」「STEP4(ダイアログの組み立て)」と、美味しいところから手を付けてみたのでした。まあ、「STEP1(アシスタントの作成)」については、実際にチャットボットをWebサイトなどに組み込む時に必要となってくる設定ですので、しばらくは「スルー」しておいて大丈夫です。

ではでは、サイドバーのタブから「Skills」のメニューをクリックして、前回作った「はじめてのスキル」を表示しましょう。表示されたら、「Intents」メニューを選択して、インテント登録画面を開きます。

前回登録した『あいさつ』インテントがありますね。インテントとは、同じ意味を持つ質問(例題)をいくつも設定し、ひとつの『意思』としてまとめる仕組みのことでした。今回は、この「あいさつ」インテントに複数の例題を追加することで、内容の充実を行っていきます。

では早速、「おはよう」以外の「あいさつ」例題を考えますよ。
えーと。あいさつあいさつ……と。

・おはよう/こんにちは/こんばんは
・ごきげんよう/はじめまして/久しぶり
・お邪魔します/お世話になります
・やあ/よう/どうも/おっす/ウィース/チィース
・ハロー/ハーイ/ヤッホー/ニャー
・もしもし/どもども

ふー、全部で19個ほど考えてみました。基本系、シッカリ系、カジュアル系、猫系、などなど。チャットボットに最初に話しかける挨拶としては、そこそこ網羅できたような気がします。

では、順番に「Add Example(例題の追加)」をしていきましょう。「こんにちは」「ごきげんよう」「どもども」……と。

はい、追加できました。この「あいさつ」のインテントは、前回既に「あいさつ」ダイアログに組み込み済みですので、「テスト機能」を使えば、すぐに登録状態を確認することができます。

【サンプルインテント追加機能】
……が、その前に。ひとつ「便利な機能」をご紹介しましょう。

今登録した例題、「あいさつ」だけでも結構な種類がありましたね。日常生活で使っているカンタンなあいさつばかりでしたが、それでも何個何個も考えるのは結構大変な作業でした。これがさらに、普段あまり使わない意思(インテント)の言葉を考えるとなると……うーむ、なかなか柔軟な思考力が必要になりそうです。

『これは厳しそうじゃわい……』と不安に思った、最近「頭(や肩や首や腰)」がカチコチのみなさま(とワタシ)。ご安心ください。Watson Assistantには、よく使う「サンプルインテント」を、まとめて「追加」する機能が用意されているのです。

サイドバーのメニューの一番下、「Content Catalog」のメニューをクリックすると、「ボット管理」「カスタマー・ケア」「e-コマース」「一般」という、4つの『インテント集』が出てきます。

今回は、この中から「一般」のインテント集を追加してみましょう。

登録はとってもカンタン、「一般」の列の一番右にある「Add to skill」リンクをクリックすれば、「一般インテント集」として用意されている『10個のインテント』が自動的に追加されます。「一般」の文字の方をクリックすると、どんなインテントが用意されているのか、ザックリと確認することもできますよ。

ほうほう、沢山の例題が用意されているようですね。では、「Add to skill」リンクをポチッとな。

追加が完了したら、インテント画面に戻ってみましょう。「#General_About_You(一般的な個人属性)」や「#General_Greetings(ボットへの挨拶)」「#General_Human_or_Bot(人間かボットか)」などなど、様々なバリエーションのインテントが10個加わっています。

よく見ると、「#General_Jokes(ジョーク)」なんて名前のインテントもありますね。各々のインテントには、15個〜20個程度の例題が含まれています。追加前はザックリとしか見ることができませんでしたので、ここで中身を確認しておきましょう。

【テスト機能】
それでは、サンプルインテントの分も含めて、テスト機能で登録状態を確認してみましょう。画面の右上「Try it」ボタンをクリックして、テスト機能をニョキッと引っ張り出してください。

まずは、「あいさつ」をしてみましょうか。

・おはよう
・ごきげんよう
・ハロー
・ニャー

うんうん。すべて、前回登録した「おはよう!ボクはコロボです!」が返ってきますね。「#あいさつ」というインテントが反応しているのがわかります。おお、猫語にもちゃんと対応していますよ。

では次は、こんな感じの言葉を入力してみましょう。

・アナタの名前は?
・できること教えて
・面白いこと言って

結果は「解釈できませんでした」になりました。ダイアログの設定をしていませんので、当然と言えば当然ですね。

ですが、よく見ると、それぞれ「#General_About_You」「#General_Agent_Capabilities」「#General_Jokes」など、異なるインテントが反応しているのがわかります。「返信内容」が設定されていないだけで、『意思』はちゃんと理解しているのです。

さらに細かい部分に注目してみましょうか。最初の質問である「アナタの名前は?」に対して反応している「#General_About_You」インテントには、『名前』に関する例題として以下の「3つ」が用意されているのですが、

・あなたの名前はありますか?
・名前をうかがってもいいですか?
・名前を教えてください

こちらが聞いたのは、「アナタの名前は?」です。

カタカナと平仮名の違い、動詞の省略、語尾の違い、などなど。言葉が完全に一致しているわけではないのに、「#General_About_You」が反応しています。

コロボ「もしや……これが……?」
ワトソン「気付きましたね?そうです、これが人工知能です。」

一問一答でしか答えられない、所謂「人工無能」に対して、多少質問がブレていても、『意思を類推』しながら答えを返す、『人工知能』ならではの動きをしています。おお、スゴいぜ、ワトソンさん。

【ダイアログの変更】
では今回は、最後に「あいさつ」のダイアログを少しだけ修正して終わりにしましょう。サイドバーから「Dialog」メニューをクリックして、ダイアログ画面を開いたら、「あいさつノード」をクリックします。

前回は、『おはよう!ボクはコロボです!』という言葉を返信するように設定していましたが、今回「こんばんは」や「もしもし」など、インテントに含まれるあいさつのバリエーションが増えたことで、少しだけ違和感がある状況が出てくるようになりました。インテントの幅を広げていくと、「おはよう!」のようなピンポイントの返信では、目線が合わなくなってしまうことがあるわけですね。

では、返信も少し幅を広げて、『はじめまして!ボクはチャットボットのコロボです!』くらいにしてみましょうか。

うんうん、「初対面の人との会話を開始するためのあいさつ」としてバランスが良くなりました。「インテント(意思)の幅と、その幅に対する適切な返信の設定」、この辺りが『自然な会話』ができるチャットボットを作るためのポイントになります。

「#General_Negative_Feedback(ネガティブな言葉)」の返信にも、かなり悩みますが……

やっぱり「#General_Jokes」が、最難関ですね。何て答えましょうか?

最初は「慣れ」が必要になりますので、今回追加した各インテントを「トレーニング材料」として、返信を考えてみてください。ダイアログに組み込んだら、テスト機能でどんな印象を受けるか色々試してみてくださいね。次回までの宿題にしましょう!

【今回のまとめ】
さてさて、「更なるインテントの登録」と「サンプルインテントの追加機能」、いかがでしたか?

チャットボットが人間と会話をするためには、まず相手(人間)が「何を言いたいのか」を理解する必要があります。キャッチボールで言えば、ボールをキャッチする必要があるわけです。

ところが、人間は物凄く多くの言葉を使いますので、自由に喋らせてしまうと、ボールをキャッチするのは至難の業になってしまいます。

そこで、「この辺」「あの辺」と、グローブを置いておいて、飛んできたボールをキャッチしやすくするわけです。このグローブの役割をするのが、「インテント」というわけですね。キャッチしたら、適切な方向にボールを投げ返すわけですが、それが「ダイアログ」の「返信」というわけです。

コロボ「会話をキャッチするのって、思った以上に大変ですね」
ワトソン「そうなんです。『チャット(お喋り)』って、実はとても難易度が高いことなのですよ」
コロボ「そこから、キャッチボールをする(会話の流れを作る)なんて……本当にできるのでしょうか?」

ふむふむ、確かにムズカシそうな気がしてきましたね。それでは、次回はダイアログ画面に戻って、『会話の流れ』の組み立て方を見ていくことにしましょう。いかに自然な会話を作っていくか、いかにスムーズに会話をリードしていくか、日々の生活に役立ちそうな「会話のテクニック」も満載(?)です。それでは、次回もお楽しみに!