この記事では、2019年11月8日に開催したイベント「チャットボットをつくってみよう!使いやすいAI(人工知能)「Watson Assistant」ハンズオン」をレポートします。
前回、大好評に終わった羽山さん、樋口さん、江澤さんの講師3名によるIBM Watsonのイベント。実際に自分で使ってみたいという声を多くいただき、ハンズオン形式による今回のイベントが実現しました。Watsonの機能の1つである「Watson Assistant」を利用し、チャットボットを作成する方法を教えていただきました。
・Watsonでチャットボットを作る前に、Intent・Entity・Dialogの3つの要素について、概念を知っておく
・チャットボットで質問をされたとき、どれだけの言い方があるのかを考え、ボットが柔軟に対応できるように考える
・そのとき、文章のなかにスペースを入れると文脈として認識しないため、できるだけつながった自然な文章を入力するのがコツ
IBM CloudでWatson Assistantを立ち上げる
普段の生活のなかでチャットボットにお世話になっている方もあまり気づくことはないと思いますが、チャットボットには大きく分けて「一問一答タイプ」と、「要望受付タイプ」の2種類があるそうです。たとえば、LINEで使える有名なボット「元女子高生AIりんな」は「一問一答タイプ」で、ヤマト運輸の再配達依頼は「要望受付タイプ」。そう言われると、確かに種類が違うような気がします。
Watsonでチャットボットを作る前に、まず、Intent、Entity、Dialogという3つの要素について、概念を知っておく必要があります。
文章の意図を理解させるためのものです。たとえば私たちには「Watsonについて教えて」と「Watsonって何?」と「Watsonについて知りたい」が、すべて同じ意味だということがわかりますが、Watsonには分かりません
単語や表記のゆれをフォローするものです。たとえば、和食、洋食、中華、フレンチ、イタリアンの単語すべてが、同じ料理ジャンルであるということはWatsonには分かりません
会話の流れを組み立てるものです。どう言われたらどう返すのかというもの。会話の構成を組み立てる要素です
3つの要素を理解したところで、いよいよ実際にWatsonを使ってみます。IBM Cloudにログインして、サービスを作成します。
次にエリアや料金プランを選択します。
次にSkillを作成します。
Intentの作成
ここから先の作業は「センス」が必要になるそうです。今回は、架空のピザ店「Pizza Watson(ピザ・ワトソン)」の注文受け付けシステムを作成していきます。
まずはIntentから作成していきます。
「センスが必要になる」のはココ。ピザを注文するのにどれだけの言い方があるのかを考え、ボットが柔軟に対応できるように入力していきます。
また、このとき、スペースを入れると文脈として認識しないので、できるだけつながった自然な文章を入力するのがコツだそうです。なぜなら、Watsonは前後の係り受け、主語・述語を認識しながら学習しているそうで、スペースを入れると、前後関係がわからなくなり、学習効果が薄まるからとのことでした。
入力したら、画面上の青い[←]で戻ります。確定しなくても反映されます。他のアプリケーションと勝手が違うので、少し不安になりますが、これでIntentの作成は終了です。
Entityの作成
次にEntityを作成していきます。
カタカナ、ひらがな、アルファベットなどはもちろんですが、名前をうろ覚えで「カプリなんとか」と注文する人もいるかもしれません。そうした可能性までも網羅しておくと良いそうです。
Dialogの作成
IntentとEntityは、Dialogを組み立てるための部品です。部品が揃ったところで、それらを機能させるDialogを構築していきます。
上記画面の「ようこそ」と書かれたノードは自動的に作成されます。これをクリックし、内容を「いらっしゃいませ。Pizza Watsonです!ご用件をどうぞ!」と、それらしい内容に変えてみます。ここの文章は学習に関係ありません。また、入力後は反映ボタンが無く、[×]ボタンで閉じて問題はありません。もちろん変更は反映されています。
では、新しいノードを追加してみましょう。
ピザの注文以外に「営業時間は何時から何時までですか」など、想定されるいろいろな質問に対応できるようにするとなると、ノードの数も何十個と増えていきます。
Dialog作成中に[Try It]ボタンをクリックすると、ここまでの入力結果を実際に試すことができます。
基本的な作成はここまで。
参加者は30名強。IBM Championの肩書を持つお二人のTAが席を回りながら、分からないところ、つまずいたところをフォローしてくださったため、参加者のほとんどが基本機能の実装は完成された様子でした。余った時間は、追加機能の実装に取り組まれていました。
樋口さんは、できればやって欲しい要素も紹介してくださり、各自が「Pizza Watson」から依頼されてチャットボットを作るエンジニアになったつもりで、完成度を高めていきました。
最後に、樋口さんが作成した完成度の高いチャットボットのソースデータが配布されました。これは樋口さんがチャットボット作成をはじめた当初に「誰かが、出来上がったお手本をくれないかな」と思ったことがあり、参加者が同じ思いを抱いたときのために用意してくださったとのことでした。
樋口さん提供の完成品では「カプリチョーザって何?」と聞くと、その説明もしてくれるなど、かなり多機能。これをお手本に、Watson Assistantを使いこなせるようになりたいと参加者の皆さんは感じたのではないでしょうか。
株式会社リクルートスタッフィングが運営するITSTAFFINGでは、弊社に派遣登録いただいている皆さまのスキル向上を支援するこのようなイベントを、定期的に開催しています。皆さまのご参加をお待ちしております。