Amazon Lex のスロットタイプ AMAZON.Cityは、都道府県と県庁所在地をどこまで認識してくれるか調査してみた

Lex のスロットタイプ AMAZON.Cityは、都市や地域を認識するスロットタイプです。 日本の都道府県と県庁所在地をどこまで認識してくれるか調査してみました。
2023.02.06

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

はじめに

Amazon LexのスロットタイプであるAMAZON.Cityを利用した際に、Lexが日本語の都市をどこまで認識してくれるか調査しました。

例えば、AMAZON.Cityをスロットに適用し、テストした場合、東京都東京さいたま札幌札幌市を入力すると、Lexは、それぞれ都市として認識してくれます。

下記は、テストしたときの画像です。

東京都東京さいたま札幌札幌市が認識されています。

テストの作成方法は、後述します。

日本の都市に関して、都道府県県庁所在地(県庁所在地を除く)政令指定都市は、スロットタイプ AMAZON.Cityでどこまで認識するかを調査しました。

調査結果

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

調査日(2023年2月6日 金曜日)時点でのLexの認識能力のため、時間が経てば認識能力が上がることで、より聞き取ってくれる可能性はあります。

都道府県(漢字)

末尾に都道府県をつけた場合も含めて、調査しました。

例えば、「青森」と「青森県」、どちらも確認します。

入力内容 判定 都道府県をつけた場合 判定
北海道 × 北海道 ×
青森 青森県 ×
岩手 × 岩手県 ×
秋田 × 秋田県 ×
宮城 × 宮城県 ×
山形 山形県 ×
福島 福島県 ×
新潟 新潟県 ×
栃木 栃木県 ×
茨城 茨城県 ×
千葉 千葉県 ×
東京 東京都
神奈川 × 神奈川県 ×
埼玉 ×  埼玉県 ×
富山 富山県 ×
群馬 × 群馬県 ×
石川 石川県 ×
長野 長野県 ×
山梨 山梨県 ×
静岡 静岡県 ×
愛知 × 愛知県 ×
岐阜 岐阜県 ×
福井 福井県 ×
滋賀 × 滋賀県 ×
三重 × 三重県 ×
奈良 奈良県 ×
和歌山 和歌山県 ×
大阪 大阪府 ×
兵庫 × 兵庫県 ×
京都 京都府 ×
鳥取 鳥取県 ×
岡山 岡山県 ×
島根 島根県 ×
広島 広島県 ×
山口 山口県 ×
香川 × 香川県 ×
徳島 徳島県 ×
高知 高知県 ×
愛媛 × 愛媛県 ×
福岡 福岡県 ×
佐賀 佐賀県 ×
長崎 長崎県 ×
大分 大分県 ×
熊本 熊本県 ×
宮崎 宮崎県 ×
鹿児島 鹿児島県 ×
沖縄 沖縄県 ×

都道府県の3割弱は、AMAZON.Cityでは、認識しないようですね。。

また、末尾に都道府県をつけると、東京都を除いて認識しないことが分かります。

認識しなかった都道府県(ひらがな)

認識しなかった都道府県をひらがなで入力して調査しました。

入力内容 Lexの認識 判定
ほっかいどう - ×
いわて - ×
あきた あきた
みやぎ - ×
かながわ - ×
さいたま さいたま
ぐんま - ×
あいち - ×
しが - ×
みえ - ×
ひょうご - ×
かがわ - ×
えひめ - ×

「あきた」、「さいたま」のみ、認識されました。 「さいたま」は、ひらがな表記で県庁所在地になっていますので、Lexも認識したと推測できますが、なぜ「あきた」も認識し、他はしないのでしょうか。。。

県庁所在地(都道府県と異なる・漢字)

県庁所在地も試してみましょう。

都道府県名と同じ県庁所在地は、上記の都道府県(漢字)で確認できるため、都道府県と異なる県庁所在地のみの結果を記載しました。

入力内容 判定 入力内容(市を含む) 判定
札幌 札幌市
盛岡 盛岡市
仙台 仙台市
宇都宮 宇都宮市
水戸 水戸市
横浜 横浜市
さいたま さいたま市
前橋 前橋市
金沢 金沢市
甲府 甲府市
名古屋 名古屋市
大津 大津市
津市
神戸 神戸市
松江 松江市
高松 高松市
松山 松山市
那覇 那覇市

市の有無に関わらず、都道府県と異なる県庁所在地は、全て認識しました。

都道府県(漢字)×になった都道府県は、県庁所在地の場合は、認識するようですね。

そのため、都道府県は認識しないが、県庁所在地は認識するパターンもあることが分かりました。

県庁所在地以外の政令指定都市(漢字)

県庁所在地以外の政令指定都市も調査しました。

入力内容 判定 入力内容 判定
川崎 川崎市
相模原 相模原市
浜松 浜松市
堺市
北九州 北九州市

県庁所在地以外の政令指定都市も確認しましたが、先程と同様に、全て認識しました。

スロットタイプのAMAZON.Cityは、同種の言葉を変換しない

スロットタイプのAMAZON.Cityは、数行ですがドキュメントに説明文があります。

ローカルおよび世界の都市のリストを提供します。スロットタイプは、都市名の共通バリエーションを認識します。 Amazon Lex は、バリエーションから公式名に変換しません。

つまり、世界の都市や地域を認識します。

ただし、「Amazon Lex は、バリエーションから公式名に変換しません。」と記載があるため、例えば「東京」「とうきょう」「東京都」の3つを入力した場合、3つとも「東京」と変換せず、「東京」や「とうきょう」、「東京都」がそれぞれのスロット値に入るようです。

ドキュメント通りの仕様かどうか、実際に調査してみましょう。

実際に調査

入力内容 Lexの認識内容(スロット値に入る値)
東京 東京
とうきょう とうきょう
東京都 東京都
とうきょうと とうきょうと
トウキョウ トウキョウ

ドキュメントに記載していた通り、公式名に変換されないことが分かりました。

調査環境の作成

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

ボットの作成

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

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

インテントの作成

  1. インテント名を入力し、サンプル発話に「都市」を追加します。
  2. [スロットを追加]から、スロットタイプ[AMAZON.City]を選択します。プロンプトと名前も記載します。
    • スロット名をcity1としました。
    1. と同じようにスロット値を4つ作成します。スロットを5つ作成すると、テストできる量が5倍になります。不要であれば、スロットは、1つでもよいです。
  3. [Confirmation]の確認プロンプトに、以下を記載します
    • {city1}、{city2}、{city3}、{city4}、{city5}、でよろしいでしょうか?
  4. インテントを保存後、Buildすると、インテントのテストが行えます。

テスト方法

  1. [Test]をクリックし、「都市」と入力後、「1つ目の都市名を教えて下さい」と問われるため、「東京」などと入力すると、Lexが認識できた場合のみ、次のスロットのプロンプトが呼ばれます。

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

最後に

スロットタイプのAMAZON.Cityでは、「岩手」などの一部の都道府県や県庁所在地が認識されないため、Lexを使用する際に注意が必要だと分かりました。

他のスロットタイプもどこまで日本語を認識してくれるか調査してみてもよいですね。

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