Amazon Lex のスロットタイプ AMAZON. LastNameは、日本の名字ランキングTOP100の名字をどこまで認識してくれるか調査してみた

Lex のスロットタイプ AMAZON.LastNameは、名字を認識するスロットタイプです。 日本の名字をどこまで認識してくれるかブラックボックス化していますので、解き明かすべく調査してみました。
2023.03.23

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

はじめに

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

AMAZON.LastNameは、ドキュメントでは、一般的に使用される姓と記載があります。

例えば、AMAZON.LastNameをスロットに適用し、テストした場合、佐藤鈴木高橋田中伊藤と入力すると、Lexは、それぞれ名字として認識してくれます。

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

佐藤鈴木高橋田中伊藤が認識されています。

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

日本の名字に関して、スロットタイプ AMAZON.LastNameでどこまで認識するかを調査しました。

また、「太郎」などの名前は、認識しないようになっているかも確認します。

調査結果

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

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

名字ランキングTOP100の名字

このサイトに記載されている名字ランキングを参考にランキング100位までを確認しました。

TOP100までの名字を持つ人数は、全人口の3分の1となります。

本当は、サイトに記載されている名字全てを調査してみたかったのですが、効率よく調べる方法を思いつきませんでした。

入力内容 判定 入力内容 判定
佐藤 原田
鈴木 中川
高橋 松田
田中 竹内
伊藤 小野
渡辺 田村
山本 ○  中山
中村 和田
小林 石田
加藤 森田
吉田 上田
山田
佐々木 内田
山口 柴田
松本 酒井
井上 宮崎
木村 横山
× 高木
斎藤 安藤
清水 宮本
山崎 大野
× 小島
池田 谷口
橋本 今井
阿部 工藤
石川 高田
山下 増田
中島 丸山
石井 杉山
小川 村田
前田 大塚
岡田 新井
長谷川 小山
藤田 平野
後藤 藤本
近藤 河野
村上 上野
遠藤 野口
青木 武田
坂本 松井
斉藤 千葉
福田 岩崎
太田 菅原
西村 木下
藤井 久保
金子 佐野
岡本 野村
藤原 松尾
中野 市川
三浦 菊地

「森」「林」以外は、全て認識しましたので、認識率は非常によいと分かりました。

この2つのみ認識されない理由は、「森」「林」という単語のみで「wood」「forest」などの意味を持つため、誤認識した?と推測しました。

一文字で一般的に意味が知られている名字を追加で、調査しました。

一文字の名字

入力内容 判定 入力内容 判定
×
西
×

一文字で一般的に意味が知られている名字は、認識されることがわかりましたので、推測は間違いでした。

一般的な名前

名字では、おそらく存在しないであろう名前を使い、AMAZON.LastNameが名字と認識しないか調査しました。

入力内容 判定 入力内容 判定
愛子 × 翔太
香織 大翔
琴音 × 颯太
純子 陽翔
紗希 悠斗
歩夢 悠真
志穂 駿太
美咲 凌大
里奈 優太 ×
恵美子 × 太郎 ×
慎太郎 × 次郎 ×

名前は、認識しないでほしかったのですが、意外と認識されました。

「郎」とつく名前は、名字と認識されない傾向にあるようですね。

以上の結果から、AMAZON.LastNameは、名字の認識率は非常に高い反面、名前も認識するということが分かりました。

調査環境の作成

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

ボットの作成

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

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

インテントの作成

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

テスト方法

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

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

最後に

スロットタイプのAMAZON.LastNameは、名字の認識率は非常に高い反面、名前も認識するということが分かりました。

機会があれば、参考にしたサイトにある全ての名字を認識するか確認してみたいと思います。

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