Amazon Lexの組み込みインテントのAMAZON.CancelIntentが日本語でどこまで認識するか試してみた

Amazon Lexの組み込みインテントのAMAZON.CancelIntentが日本語でどこまで認識するか試してみた

Clock Icon2024.06.26

はじめに

Amazon Lexでチャットボットを実装する場合、ユーザーから以下のようにキャンセルや終了などを聞き取る機会があります。

  • 注文の取り消し
  • チャットボットとの会話の中断
  • 進行中の操作の中止

Lexでは、組み込みインテントという、一般的なアクションに対して、AWS側で用意されている組み込みインテントライブラリが利用できます。

組み込みインテントの場合、インテントのトリガーとなるサンプル発話やスロットは、AWS側で設定されており、開発者側で追加や変更はできません。

組み込みインテントのうちAMAZON.CancelIntentは、ユーザーが現在の対話をキャンセルしたいことを示す以下のような単語やフレーズに応答します。

  • キャンセル
  • 取り消し
  • やめて
  • 忘れて

今回は、AMAZON.CancelIntentが日本語でどこまで認識するか試してみました。

https://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/built-in-intent-cancel.html

前提

  • 2024年6月18日時点での検証内容です。
  • 今後のバージョンアップによって、改善される可能性があり、恒久的な結果ではありません。

Lexボット構築

Amazon Lex のコンソールから「ボットの作成」をクリック後、ボット名を入力し、以下の設定通り次へ進みます。

日本語を選択し、[完了]をクリックします。これでボットは完成です。

インテント

AMAZON.CancelIntent用のインテントを作成します。

[インテントを追加]から[組み込みインテントを使用]をクリックします

組み込みインテントは、AMAZON.CancelIntentを指定します。インテント名は、cancel_intentとします。

そのままインテントを保存し、ビルドします。

検証

以下の2つのインテントのうち、どちらのインテントがトリガーされるか検証しました。

  • cancel_intent
  • FallbackIntent

FallbackIntentは、組み込みインテントの一種であり、ユーザーの発話がボットの想定するインテントと一致しない場合に誘発される組み込みインテントです。詳細は以下の記事をご参考下さい。

テスト方法は、以下のように言葉を入れて、どちらインテントがトリガーされたかで判定します。

言葉としては、キャンセルなど「否定に関する言葉」と、同意など「肯定に関する言葉」の2つで試してみます。

検証結果

否定に関する言葉

以下の言葉は、cancel_intentがトリガーされました。

入力内容 Lexの認識
いいえ cancel_intent
違います cancel_intent
取り消す cancel_intent
撤回します cancel_intent
中止する cancel_intent
差し戻す cancel_intent
無視します cancel_intent
拒否します cancel_intent
断る cancel_intent
却下する cancel_intent
否定する cancel_intent
結構です cancel_intent
要りません cancel_intent
必要ありません cancel_intent
遠慮します cancel_intent
遠慮いたします cancel_intent
控えさせていただきます cancel_intent
辞退する cancel_intent
お断りします cancel_intent
受け入れられません cancel_intent
同意できません cancel_intent
賛成できません cancel_intent
反対する cancel_intent
無理です cancel_intent
嫌です cancel_intent
問題になります cancel_intent

以下の言葉は、FallbackIntentがトリガーされました。

入力内容 Lexの認識
ノー FallbackIntent
嫌だ FallbackIntent
ほげ FallbackIntent

「いいえ」、「違います」、「取り消す」など、多くの否定的な言葉が適切にcancel_intentとしてトリガーされています。これは期待通りの動作といえます。

肯定に関する言葉

肯定は、FallbackIntentがトリガーすべきですが、cancel_intentがトリガーされました。

入力内容 Lexの認識
同意します cancel_intent
イエース cancel_intent
続けて下さい cancel_intent
問題ない cancel_intent
それでお願いいたします cancel_intent
構わない cancel_intent
気にしない cancel_intent
賛成です cancel_intent
okです cancel_intent
オーケーです cancel_intent
その通りですう cancel_intent

キャンセルや否定に関する言葉を認識した一方で、肯定に関する言葉も多くトリガーされる結果となりました。

ちなみに、cancel_intentがトリガーとなる場合、信頼度スコアはおおよそ80~95%を推移しました。

「キャンセル」など事前にトリガーさせたい言葉が決まっている場合は、組み込みインテントではなく、トリガーとなるサンプル発話がカスタムできるカスタムインテントを利用する方がよいと考えます。

最後に

今回は、Amazon Lexの組み込みインテントのAMAZON.CancelIntentが日本語でどこまで認識するか試してみました。

検証の結果、キャンセルなどの多くの否定的な言葉を適切に認識できることが確認できました。一方で、肯定的な言葉については、期待通りの動作とはならず、個人的には日本語で利用するのは限定的であると感じました。

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.