カスタムスロットタイプの作成と編集

カスタムスロットタイプの作成と編集

このドキュメントではカスタムスロットタイプの作成方法と標準スロットタイプの拡張方法について説明します。

カスタムスロットタイプの概要

カスタムスロットタイプは、スロットの代表的な値のリストを定義します。カスタムスロットタイプは、Amazonの標準タイプセットでサポートされていない項目のリストに使用します。カスタムタイプを使用する場合は、タイプと値を定義し、インテントの定義の一部としてタイプ名を指定します。

PlanMyTripインテントの例で考えてみましょう。activityスロットタイプで使用する旅行アクティビティのカスタムスロットタイプを定義するとします。タイプの名前をLIST_OF_ACTIVITIESとします。このタイプには次の値が含まれます。

サイクリング
ランニング
ツーリング
キャンプ
キャンピング
散策
ハイキング
レース
ジョギング
買い物
ショッピング
スキー
ダイビング
温泉
サーフィン
泳ぎ
スイミング

これらは、「私はハイキングに京都に行きます」や「私は散策に京都に行きます」などの発話をサポートします。

カスタム値のセットには、ユーザーが話せる言葉であれば、スキルのスロット処理でサポートしているあらゆる値を使用できます。ただし、スキルの言語の一般的な辞書にない単語は、認識されない可能性があります。

スロット値は、文字形式でスキルに送信されます。たとえば、「a k b フォーティーエイト」の場合、「エーケービーフォーティーエイト」がスキルに送信されます。認識率を向上させるため、アクロニムや個々に発音されるアルファベットは、すべて小文字にし、かつ半角スペースで区切る(「a k b」)必要があります。頭字語に小文字を使うと、発音が正しく検出されないため認識率が低下する可能性があります。例を参照してください

カスタムスロットタイプは、列挙型と同じではありません。リストにない値でも、音声言語認識システムに認識されれば、返されます。スロットタイプへの入力はリストの値に重み付けされますが、リストの項目だけに限られるわけではありません。ユーザーのダイアログモデル自分が作成したコードで検証とエラーチェックを実行するか、スロット検証ルールを定義してから、ダイアログをAlexaにデリゲートして、ユーザーに入力可能な値についてのプロンプトを出します。

推奨されるカスタムスロットタイプの値については、カスタムスロットタイプの値に関する推奨事項を参照してください。

同じカスタムスロットタイプは同じスキルの複数のスロットに使用できます。

スキルで使用されるスロットタイプを表示する

左側のナビゲーションのスロットタイプセクションには、スキルに追加したすべてのスロットタイプが表示されます。たとえば以下のような情報があります。

  • 定義したすべてのカスタムスロットタイプ。
  • モデルに追加した、または追加値で拡張した標準スロットタイプ。

スロットタイプの名前を変更したり値を更新したりするには、左側のナビゲーションからスロットタイプを選択してスロットの詳細ページを開きます。(スロットタイプ)を使用中のスロットセクションに、現在そのタイプを使用しているスロットとインテントのすべてが表示されます。

カスタムスロットタイプを追加または編集する

スロットタイプの名前: カスタムスロットタイプの名前には英字とアンダースコア(_)のみを指定できます。ピリオド(.)は標準スロットタイプにのみ使用できます(AMAZON.Cityなど)。

1つのスキルに作成できるスロットタイプ数の制限については、対話モデルの制限を参照してください。

新しいカスタムスロットタイプを追加するには

  1. 左側のナビゲーションから、スロットタイプの隣にある追加をクリックします。
  2. カスタムスロットタイプを作成オプションを選択します。
  3. スロットタイプの名前を入力してカスタムスロットタイプを作成をクリックします。
  4. それぞれの値を入力して、「+」記号をクリックするかEnterを押します。

  5. 値を保存した後、スロット値のIDと同義語をスロット値に追加できます。
    • ID列をクリックして、値のIDを編集します。
    • 同義語列をクリックして値に同義語を入力し、「+」記号をクリックするかEnterを押して保存します。

    スロットタイプ値のIDと同義語の使用に関する詳細については、カスタムスロットタイプのエンティティ解決を参照してください。

  6. 変更したら必ず保存するようにしてください。

スロットタイプの値を編集するには

  1. スロットタイプの下にあるスロットタイプの名前をクリックして、スロットタイプの詳細ページを開きます。
  2. それぞれの値を入力して、「+」記号をクリックするかEnterを押します。推奨されるスロットタイプの値については、カスタムスロットタイプの値を参照してください。
  3. ID列をクリックして、値のIDを編集します。
  4. 同義語列をクリックして値に同義語を入力し、「+」記号をクリックするかEnterを押して保存します。
  5. 変更したら必ず保存するようにしてください。

カスタムスロットタイプの名前を変更するには

  1. 左側のナビゲーションから、スロットタイプの隣にある追加をクリックします。
  2. スロットタイプの名前のフィールドをクリックします。名前を編集してモデルを保存をクリックします。

カスタムスロットタイプの値

リクエストで指定されるスロットの値は、通常の文字形式でスキルに送信されます。

たとえば下の表では、スロットタイプ値とこれらの値がサービスに渡される際にどのような形式に変換されるか、いくつかサンプルを挙げています。この表のスロット値は、カスタムスロット値のリストに指定する値を指しています。発話形式はユーザーの話しかける言葉、スロットの出力値はスキルに渡されるリクエストのデータを指します。

スロット値 発話形式とスロットの出力値
خمس تفاحات خمس تفاحات
اربع سنتمترات اربع سنتمترات
اربع نجوم اربع نجوم
amazon.com امازون دوت كوم
ahmed@company.com احمد ات كومباني دوت كوم
مليغرام مليغرام
كيلوغرام كيلوغرام
مية الف مية الف
وعنب وعنب
عنب عنب
القطة القطة
قطة قطة

文法的に適切な場合は、スキルのスロット値にو (and)、ل (to)、لل (to the)、عال (on the)などの小辞を含めます。小辞は後ろの語とつなげる必要があるため、キャリアフレーズ内のスロットの前に付けることはできません。スロットの内容によっては、バリエーションの増減が必要になる場合があります。

英語のサンプル発話 アラビア語(SA)のサンプル発話 アラビア語(SA)の例 対話モデルに含めるスロット値 スロットの出力値

add itemOne and itemTwo to my shopping list

ضيفي

  • ItemOne
  • ItemTwo

ضيفي عنب وتفاح لعربة التسوق حقي

  • عنب
  • وتفاح
  • عنب
  • وتفاح

add itemOne and itemTwo to my shopping list

ضيفي

  • ItemOne
  • ItemTwo

ضيفي تفاح وعنب لعربة التسوق حقي

  • تفاح
  • وعنب
  • تفاح
  • وعنب

play Animal sound

شغلي صوت Animal

شغلي صوت قطة

  • قطة
  • قطة

play the Animal sound

شغلي صوت Animal

شغلي صوت القطة

  • القطة
  • القطة
スロット値 発話形式 スロットの出力値
DJ d. j. DJ
PJ Harvey p. j. harvey PJ Harvey
five apples five apples 5 apples
four inch four inch 4"
4 inch four inch 4"
four star four star 4 star
4-star four star 4 star
all-in-one all in one all in 1
first amendment first amendment 1st amendment
John's john's John's
Ford Motor co. ford motor company ford motor company
Cambridge Univ. cambridge university Cambridge university
Seattle, Washington seattle washington Seattle Washington
R&B r. and b. R&B
r. and b. r. and b. R&B
amazon.com amazon dot com amazon dot com
joe@example.com joe at example dot com joe at example dot com
Fire HD fire h d fire HD
Fire h d fire h d fire HD
Fire HD7 fire h d seven fire HD7
Fire HD 7 fire h d seven fire HD7
ounces ounces ounces
milligrams milligrams milligrams
kilograms kilograms kilograms
KG k. g. KG
k. g. k. g. KG
eighth eighth eighth
mr mister mister
100000 one hundred thousand 100000
スロット値 発話形式 スロットの出力値(de-de)
kevin kevin kevin
ABC a. b. c. ABC
29 neun und zwanzig 29
1 2 3 eins zwei drei 123
29000 neun und zwanzig tausend 29000
1,8 / 1.8 eins punkt acht / eins komma acht 1,8
8 8 8 acht acht acht 888
1907 neunzehn hundert und sieben 1907
90er neunziger 90er
2. zweiter 2.
BBC2 / NDR1 b. b. c. two / n. d. r. eins BBC2 / NDR1
kindermusik kinder musik kindermusik
Fire HD
Fire HD7 / Fire HD 7
fire h. d.
fire h. d. sieben
fire HD
fire HD7
Dr.Oetker doktor oetker doktor oetker
gramm gramm gramm
g. g. G
G g. G
milligramm milligramm milligramm
m. g. m. g. MG
MG m. g. MG
kilogramm kilogramm kilogramm
KG k. g. KG
k. g. k. g. KG
スロット値 発話形式 スロットの出力値
a. k. b. forty eight エーケービーフォーティーエイト akb 48
n. h. k. 第一 エヌエイチケーダイイチ nhk 第一
nasa ナサ nasa
nato ナトー nato
七パーセント ナナパーセント 七パーセント
三センチメートル サンセンチメートル 三センチメートル
君の名は キミノナハ 君の名は
ご注文はうさぎですか ゴチュウモンハウサギデスカ ご注文はうさぎですか
星三点五 ホシサンテンゴ 星三点五

アルファベットを使用する場合、すべて小文字にします。個々に発音されるアルファベット(イニシャリズム)は、ピリオドと半角スペースで区切った小文字を使用します。ピリオドと半角スペースを入れずに小文字を使うと、発音が正しく検出されないために認識率が低下する可能性があります。

数字はアラビア数字ではなく、漢数字で書きます(「5」ではなく「五」とします)。英語で発音される数字は、アルファベットで書きます(「ワン」ではなく「one」とします)。

句読点、特殊文字や記号は使用しないでください(「。」、「★」、「!」、「?」など)。

「%」、「&」、「℃」など、発音される記号は、完全な単語として記述します(「パーセント」、「アンド」、「度」)。

ゲルマン系言語における注意点:ウムラウト(ä, ü, ö)やシャープS(ß)は別のスペルで書いてはいけません。たとえば、認識率の低下を避けるために、「buero」ではなく「büro」、「fussball」ではなく「fußball」と書きます。これらの異なるスペルは、「masse」と「maße」のように、意味の異なる単語に変化する場合もあります。

カスタムスロットタイプの値に関する推奨事項も参照してください。

スロットタイプ値の同義語と一意の識別子

カスタムスロットタイプの各値には、一意の識別子と設定済みの同義語があります。 これにより、複数の発話を1つに結び付けることができ、ユーザーが話す値に関係なく、共通のIDと値をIntentRequestで取得できます。たとえば、特定のメディアタイプを収集するMEDIA_TYPEスロットでは、ユーザーは「楽曲」、「トラック」、「シングル」などと話しかけることができます。これら3つの発話すべてを、一意の識別子SONGを使って1つのスロット値「楽曲」に結び付けることができます。

同義語とIDのしくみの詳細については、カスタムスロットタイプのエンティティ解決を参照してください。

スロットタイプの値を一括で編集またはアップロードする

一括編集を使用して、スロットタイプの値をすばやく入力または編集できます。この機能は、他のファイルから値をコピー&ペーストするのに役立ちます。

値を一括で編集する、または読み込むと、各行はそれぞれ別のスロット値になります。CSV形式で識別子と同義語を入力できます。

スロット値,識別子,同義語,同義語,...

指定のスロット値には、同義語をいくつでも入力できます。

たとえば、このファイルは2つのスロット値(IDがDRIVEの「ドライブする」と4つの同義語、およびIDがFLYの「飛行機に乗る」と2つの同義語)を読み込みます。

ドライブする,DRIVE,車,自動車,自動車で旅行する,自動車旅行
飛行機に乗る,FLY,飛行,飛行機

サンプルの値を一括で編集または読み込むには

  1. スロットタイプの下にあるスロットタイプの名前をクリックして、スロットタイプの詳細ページを開きます。
  2. スロット値セクションの右上で、一括編集をクリックします。
  3. 編集ボックスの値を編集するか、CSVファイルをウィンドウにドラッグしてコンテンツを読み込みます。

    • 1行ごとに1スロット値を入力します。
    • CSVファイルを読み込むと、編集ボックスに表示される既存のスロット値と置き換えられます。
    • 下のCSVにはヘッダーが含まれますを選択して、テキストフィールドに表示される一番上の行を除外します。
    • 送信をクリックしないと、値の変更は保存されません。
  4. 送信をクリックします。

追加の値を使用して標準スロットタイプを拡張する

標準リストスロットタイプのサブセットにユーザー定義のカスタム値を追加できます。つまり、指定した値をAmazonが定義した標準値に追加できるということです。たとえば、AMAZON.Cityは都市を認識できるようにします。含まれていない可能性がある小さな町など、追加の都市を収集する必要がある場合、タイプを拡張してリストに追加できます。その後、スロットは、元の値のセットと追加したカスタム値を認識します。

標準スロットタイプに追加する値の同義語とIDを定義することもできます。詳細については、標準スロットタイプのエンティティ解決を参照してください。

標準スロットタイプの拡張は、特定のスキルにのみ適用されます。たとえば、あるスキルで追加の都市を指定してAMAZON.Cityを拡張しても、それらの変更はAMAZON.Cityを使用するほかのスキルには適用されません。

標準タイプを拡張する前に、スキルにスロットタイプを追加する必要があります。左側のナビゲーションで、スロットタイプのタイプを表示します。拡張するスロットタイプが含まれていなければ、スキルに追加します。

拡張するスロットタイプを追加するには

  1. ビルドページで、カスタム > アセット > スロットタイプに移動します。
  2. +スロットタイプをクリックします。
  3. Alexaのビルトインライブラリから既存のスロットタイプを使用オプションを選択します。
  4. 追加する標準スロットタイプを検索します。
    スロットタイプは名前で絞り込むことができます。
  5. 追加する標準スロットタイプごとに+スロットタイプを追加をクリックします。
  6. 変更を保存するには、モデルを保存をクリックします。

標準スロットタイプを拡張するには、カスタムタイプと同様に値を追加します。

標準スロットタイプに値を追加するには

  1. ビルドページのカスタム > アセット > スロットタイプで、編集するスロットタイプを選択します。
  2. スロット値に値を入力し、 プラス記号(+) をクリックするか、Enterを押します。
  3. 変更を保存するには、モデルを保存をクリックします。

スロットタイプのJSON(対話モデルのスキーマ)

JSONエディターですべてのスロットタイプのJSON表現の確認や編集ができます。interactionModel.languageModel.typesプロパティにはスロットタイプオブジェクトの配列が含まれています。カスタムスロットタイプと拡張された標準スロットタイプがそれぞれこの配列で表されます。

この例では、カスタムタイプ(LIST_OF_TRAVEL_MODES)のtypesプロパティと拡張された標準タイプ(AMAZON.City)を示しています。簡潔に表現するため、interactionModelおよびlanguageModelのほかのプロパティは示していません。対話モデルJSONの詳細については、対話モデルのスキーマを参照してください。

{
  "interactionModel": {
    "languageModel": {
      "types": [
        {
          "name": "LIST_OF_TRAVEL_MODES",
          "values": [
            {
              "id": "TRAIN",
              "name": {
                "value": "電車に乗る",
                "synonyms": [
                  "電車",
                  "乗車"
                ]
              }
            },
            {
              "id": "FLY",
              "name": {
                "value": "飛行機に乗る",
                "synonyms": [
                  "ジェット",
                  "飛行",
                  "飛行機で"
                ]
              }
            },
            {
              "id": "DRIVE",
              "name": {
                "value": "ドライブする",
                "synonyms": [
                  "車",
                  "自動車",
                  "自動車で旅行する",
                  "自動車旅行"
                ]
              }
            }
          ]
        },
        {
          "name": "AMAZON.City",
          "values": [
            {
              "name": {
                "value": "カスタムの都市"
              }
            },
            {
              "name": {
                "value": "小都市"
              }
            }
          ]
        }
      ]
    }
  }
}