Amazon Lex のスロットタイプで、AMAZON.Dateは、日本語の日付に関する言葉をどこまで認識してくれるか調査してみた

日本語には、日付に関する類語が多くありますが、スロットタイプのAMAZON.Dateでは、どこまで認識するのかを調査しました。
2023.02.02

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

はじめに

Amazon Lexのスロットタイプで、AMAZON.Dateを利用した際に、Lexが日本語の日付に関する言葉をどこまで認識してくれるか調査しました。

例えば、AMAZON.Dateをスロットに適用し、テストした場合、明日と入力すると、Lexは、明日を認識し、具体的な日付に変換してくれます。

下記は、2023年2月2日にテストしたときの画像になります。

明日を認識し、2023年2月3日に変換されていますね。

日本語には、明日以外にも、翌日またの日あした金曜日(木曜日の場合)...など様々な言い回しがあります。

Lexではどこまで認識してくれるか調査しました。

調査結果

先に調査結果を出します。

明日を様々な言い方でテストした結果

調査日(2023年2月2日 木曜日)

入力内容(明日) Lexの認識 判定
明日 3日
次の日 3日
翌日 - ×
あした - ×
あす - ×
3日 3日
またの日 - ×
金曜日 3日

表のLexの認識のうち-のところは、Lexが認識しなかった箇所です。

ただし、調査時点でのLexの認識能力のため、時間が立てば、認識能力が上がることで、より聞き取ってくれる可能性はあります。

日付に関する様々な言葉でテストした結果

調査日(2023年2月2日 木曜日)

入力内容 Lexの認識 判定
今日 2日
きょう - ×
2日
いま - ×
本日 2日
ほんじつ - ×
明後日 4日
あさって 4日
明々後日 - ×
しあさって - ×
1日 3月1日 ○ (翌月の1日)
4日後 6日
来週 12日の日曜日 ? (翌週の日曜日)
水曜日 8日 ○ (来週の水曜日)
来週の水曜日 8日
今週 1月30日(月曜日) ? (今週の月曜日)
今週の水曜日 - ×
今月 2月1日
来月 3月31日
来年 2024年12月31日
再来年 2025年12月31日

調査結果から、AMAZON.Dateに関して、以下のことが分かりました。

  • 「あした」「翌日」「きょう」などの日本語は、認識しなかったです。どうしても認識させたい場合は、カスタムスロットタイプで「あした」「翌日」を「明日」と認識させる方法があります。ただし、具体的な日付に変換するには、Lambdaと連携させる必要があります。。

  • 「水曜日」は、過去ではなく、来週(未来の)水曜日と変換するようです。 ドキュメントには明言されていないですが、特定の日付に関しては、ドキュメントに以下の通りに記載されていました。そのため、曜日も同様だと推測し、過去ではなく、未来の日付として変換するようですね。

    「today」、「now」、または「11 月 20 日」など、特定の日付にマッピングされる発話は、完全な日付に変換されます。 2020-11-25これはデフォルトで現在の日付以降の日付になります。

  • 「今週」は、来週の月曜日と判定されましたが、ドキュメントに以下の記載があったため、仕様通りだと確認できました。

    特定の週 (例: "This week"、または "next week") にマッピングされる発話は、曜日の初日の日付に変換されます。ISO-8601 形式では、週は月曜日から始まり、日曜日に終了します。たとえば、今日が 2020-11-25 の場合、「次の週」は に変換されます2020-11-30。

調査環境の作成

調査するために、作成したボットとインテントの作成方法を説明します。

ボットの作成

  1. Lexのコンソール画面から、[ボットの作成]をクリックします。
  2. [空のボットを作成します]を選択し、ボット名を記載し、下記画像の通りに入力します。
  3. 日本語を選択し、[完了]をクリックします。

これでボットが作成できました。

インテントの作成

  1. インテント名を入力し、サンプル発話に「予約」を追加します。
  2. [スロットを追加]から、スロットタイプ[AMAZON.Date]を選択します。プロンプトと名前も記載します。
  3. [Confirmation]の確認プロンプトに、以下を記載します
    • {date}でよろしいでしょうか?
  4. [応答を閉じる]をアクティブにします。
  5. インテントを保存後、Buildすると、インテントのテストが行えます。

テスト方法

  1. [Test]をクリックし、「予約」と入力後、「予約の日付を教えて下さい」と問われるため、「明日」などを入力すると、Lexが認識できた場合のみ、確認プロンプトで作成した文章が返ってきます。

このインテントで、AMAZON.Dateのテストが行えます。

最後に

スロットタイプのAMAZON.Dateでは、「翌日」などよく使う日本語が認識できない部分もあることが分かりました。 他のスロットタイプもどこまで日本語を認識してくれるか調査してみようと思います。

Lexを使用する際に、参考になれば幸いです。