話題の記事

[Amazon Lex] サンプル発話にヒットしなくてもインテントに入れる方法(実験結果)

2019.04.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

1 はじめに

こんにちは、Alソリューション部の平内(SIN)です。

Amazon Lex(以下、Lex)では、インテントに、サンプル発話を定義し、それがヒットした時に当該インテントに突入するようになっています。

複数のインテントが定義されていて、ユーザーの発話によって、インテントを振り分ける場合は、これで全然問題ないのですが、もしインテントが1つしかないようなボットの場合、サンプル発話にヒットさせること自体が、ちょっと無駄となってしまいます。

今回は、サンプル発話に関係なく、インテントにヒットさせる方法を試してみました。なお、この内容は、公式にアナウンスされたものではありません。単純に私が試してみた結果であることを予めご了承下さい。

1 サンプル発話によるインテントへの突入

通常、インテントには、そのインテントを呼び出すためのサンプル発話が定義されます。下記は、テンプレートとして提供されていいる、OrderFlowersに設定されたサンプル発話です。

この場合、多少の、言葉の揺れはLexが吸収するとしても、概ね定義された発話が無いと、インテントが起動できません。

次のように、ユーザーから有効な発話がない場合、インテントにヒットできません。

この状態では、まだインテントに突入できていないため、レスポンスは、Error Handlerから返されており、インテントのバリデーション用に設置された、Lambdaでも制御(フォロー)が出来ません。

2 何でもヒットするサンプル発話

そこで、ユーザーが、どのような発話を行ってもヒットするサンプル発話を検討してみます。

Lexでは、いくつかの組み込みスロットが利用可能ですが、その中には、非常に多くの単語がヒットすると思われるものが結構あります。今回は、比較的に単語の範囲(種類)が広いと思われる、AMAZON.Book、及び、AMZON.Movieを試してみました。

まずは、Slot typeをAMAZON.Book、及び、AMZON.Movieに設定したスロットを定義します。必須(Required)のチェックは外します。

次に、そのスロットを受取るサンプル発話追加します。

これで、ユーザーの発話が、本や、映画のタイトルであると認識されれば、サンプル発話にヒットすることになります。

3 試してみた

試してみた様子です。

aという発話が、AMAZON.Movieにヒットしています。

hiという発話が、AMAZON.Bookにヒットしています。

uという発話が、AMAZON.Movieにヒットしています。

4 最後に

今回は、何でもヒットするサンプル発話について試してみました。

最初に、お断りさせて頂いたとおり、この内容は、公式にアナウンスされたものではなく、絶対にうまく動作する保証はありません。しかし、Alexaと違い、Lexの場合は、審査への提出もありませんし、Amazon Connectから呼び出される場合などは、特定機能の実現のためにインテントが1つである事が充分想定されるので、実装要領の検討に一つに入るのではと考えています。


弊社ではAmazon Connectのキャンペーンを行なっております。

3月に引き続き、4月も「無料Amazon Connectハンズオンセミナー」を開催致します。導入を検討されておられる方は、是非、お申し込み下さい。

また音声を中心とした各種ソリューションの開発支援も行なっております。