「Watson Assistant(ワトソンアシスタント)でAIチャットボットを作ってみた第2弾」は、Intentの作成です。
Watson Assistantでの作成において3つの要素があります。
- Intent(インテント)
- Entity(エンティティ)
- Dialog(ダイアログ)
今回は、上記の3つのうちのIntentを作成していくところを紹介します。EntityとDialogが、どういうものかは次回以降で紹介しますね。
インテントとはなんぞや?
Intentってなんだ?はい。訳すと「意図」です。私なりの解釈では、
「同じような意味の言葉(自然言語)をグルーピングしてタグ付けしたもの」
です。
まあとりあえず作成開始します。作っていくうちになんとなく分かってくると思います。
まずはIntentの登録です。Intent nameに「Greeting」、Descriptionに「挨拶」と入力してCreate intentボタンをクリックします。すると下にAdd user examplesというのが出てきます。そこに「こんにちは」と入力してAdd exampleボタンをクリックします。
以上でIntentの設定は完了。非常に簡単です。
あとは、「こんにちは」以外にも「こんばんは」「やあ」「どうも」など色々な言い回しの挨拶系の言葉を登録し、Watsonに学習させます。
最低10個の違う言い回しを登録
最低10個の違う言い回しのものを登録するといいみたいです。そうすると、様々な挨拶の言葉が入力されてもGreeting(挨拶)だなとWatsonが認識します。
でもこれがなかなか思いつかない・・・。というか結構めんどくさい。2〜3個ぐらいでなんとかならないかな。
Intentの数が多い場合大変ですね。
挨拶以外にも「Favorite」というIntentを作ってみました。これで”好きな何か”を聞かれたんだということを認識するようになります。
テストしてみよう
右上にある「Try it」ボタンをクリックするとテスト画面がスライドして出てきます。
「あなたの好きな曲は」と入力するとテスト画面上の入力した言葉の下に「#Favorite」と表示され、きちんと好きなものを聞かれたと認識してます。他にもちょっと登録してる言葉と違う言い回し「お気に入りのバンドは」と入力。
お!ちゃんと「Favorite」として認識してます。
なかなか賢いねワトソン君
さて他にもちょっと意地悪な質問してみました。「推し曲教えて」と入力。ちょっとダジャレみたいになってますが、なぜかGreetingとして認識されてしまいました。
うーんなぜだろう。「おっす」と聞き間違えたか?んなわきゃないか。
でも大丈夫。Watson君に、それは間違いだよと教えてあげればいいんです。
間違えたらWatson君に再学習させる
テスト画面上のIntentのタグが表示されている箇所がプルダウンになっているのでクリックすると作成したIntentがずらっと出てきます。その中から適切なもの「Favorite」を選択します。するとWatsonが学習を始めます。だいたい1〜2分待つとモディファイが完了して、今度は「推し曲教えて」と入力するとFavoriteとして認識しました。
Favoriteを確認するとUser examples(学習コーパス)の中に「推し曲教えて」が追加されています。
Intentの作成は教師あり学習
このIntentの登録は、機械学習の手法でいうと、「教師あり学習」というやつですね。たくさんの学習データ(違う言い回しの言葉の集合)にラベル(タグ)をつけてあげて、この言葉は挨拶だよと教えてあげて、間違った時は違うよその言葉は好きな曲を聴いてるんだよとラベルを付け直してあげるわけです。
一方、「教師なし学習」というのがあります。これは、ラベルをつけないやり方ですね。ひたすら大量の言葉を登録すると、AIが勝手にラベルをつけてくれるという学習法です。
教師なし学習は、大量データから何かしらの傾向を分析すると言った用途などに向いていると思います。
どちらが進んでいるということではなく、目的によってどちらの方法が良いか選択することが大事なのだと思います。この辺は語り始めると長くなるので今回はさらっとにしておきます。
コメント