カスタムスロットタイプの作成と編集
このドキュメントではカスタムスロットタイプの作成方法と標準スロットタイプの拡張方法について説明します。
- カスタムスロットタイプの概要
- スキルで使用されるスロットタイプを表示する
- カスタムスロットタイプを追加または編集する
- カスタムスロットタイプの値
- スロットタイプ値の同義語と一意の識別子
- スロットタイプの値を一括で編集またはアップロードする
- 追加の値を使用して標準スロットタイプを拡張する
- スロットタイプのJSON(対話モデルのスキーマ)
- 関連トピック
カスタムスロットタイプの概要
カスタムスロットタイプは、スロットの代表的な値のリストを定義します。カスタムスロットタイプは、Amazonの標準タイプセットでサポートされていない項目のリストに使用します。カスタムタイプを使用する場合は、タイプと値を定義し、インテントの定義の一部としてタイプ名を指定します。
PlanMyTrip
インテントの例で考えてみましょう。activity
スロットタイプで使用する旅行アクティビティのカスタムスロットタイプを定義するとします。タイプの名前をLIST_OF_ACTIVITIES
とします。このタイプには次の値が含まれます。
サイクリング ランニング ツーリング キャンプ キャンピング 散策 ハイキング レース ジョギング 買い物 ショッピング スキー ダイビング 温泉 サーフィン 泳ぎ スイミング
これらは、「私はハイキングに京都に行きます」や「私は散策に京都に行きます」などの発話をサポートします。
カスタム値のセットには、ユーザーが話せる言葉であれば、スキルのスロット処理でサポートしているあらゆる値を使用できます。ただし、スキルの言語の一般的な辞書にない単語は、認識されない可能性があります。
スロット値は、文字形式でスキルに送信されます。たとえば、「a k b フォーティーエイト」の場合、「エーケービーフォーティーエイト」がスキルに送信されます。認識率を向上させるため、アクロニムや個々に発音されるアルファベットは、すべて小文字にし、かつ半角スペースで区切る(「a k b」)必要があります。頭字語に小文字を使うと、発音が正しく検出されないため認識率が低下する可能性があります。例を参照してください。
カスタムスロットタイプは、列挙型と同じではありません。リストにない値でも、音声言語認識システムに認識されれば、返されます。スロットタイプへの入力はリストの値に重み付けされますが、リストの項目だけに限られるわけではありません。ユーザーのダイアログモデルで自分が作成したコードで検証とエラーチェックを実行するか、スロット検証ルールを定義してから、ダイアログをAlexaにデリゲートして、ユーザーに入力可能な値についてのプロンプトを出します。
IntentRequest
にはエンティティ解決の結果を示すresolutions
オブジェクトが含まれるようになります。resolutionsPerAuthority[].status.code
の値をチェックすると、ユーザーから提供された値がスロットタイプ値または定義した同義語と一致するかどうかを確認できます。特定のスロット値のIDを定義して、コードで簡単に処理することもできます。カスタムスロットタイプのエンティティ解決を参照してください。推奨されるカスタムスロットタイプの値については、カスタムスロットタイプの値に関する推奨事項を参照してください。
同じカスタムスロットタイプは同じスキルの複数のスロットに使用できます。
スキルで使用されるスロットタイプを表示する
左側のナビゲーションのスロットタイプセクションには、スキルに追加したすべてのスロットタイプが表示されます。たとえば以下のような情報があります。
- 定義したすべてのカスタムスロットタイプ。
- モデルに追加した、または追加値で拡張した標準スロットタイプ。
スロットタイプの名前を変更したり値を更新したりするには、左側のナビゲーションからスロットタイプを選択してスロットの詳細ページを開きます。(スロットタイプ)を使用中のスロットセクションに、現在そのタイプを使用しているスロットとインテントのすべてが表示されます。
カスタムスロットタイプを追加または編集する
スロットタイプの名前: カスタムスロットタイプの名前には英字とアンダースコア(_)のみを指定できます。ピリオド(.
)は標準スロットタイプにのみ使用できます(AMAZON.City
など)。
1つのスキルに作成できるスロットタイプ数の制限については、対話モデルの制限を参照してください。
新しいカスタムスロットタイプを追加するには
- 左側のナビゲーションから、スロットタイプの隣にある追加をクリックします。
- カスタムスロットタイプを作成オプションを選択します。
- スロットタイプの名前を入力してカスタムスロットタイプを作成をクリックします。
-
それぞれの値を入力して、「+」記号をクリックするかEnterを押します。
- スロット値の詳細については、カスタムスロットタイプの値を参照してください。
- 値を保存した後、スロット値のIDと同義語をスロット値に追加できます。
- ID列をクリックして、値のIDを編集します。
- 同義語列をクリックして値に同義語を入力し、「+」記号をクリックするかEnterを押して保存します。
スロットタイプ値のIDと同義語の使用に関する詳細については、カスタムスロットタイプのエンティティ解決を参照してください。
- 変更したら必ず保存するようにしてください。
スロットタイプの値を編集するには
- スロットタイプの下にあるスロットタイプの名前をクリックして、スロットタイプの詳細ページを開きます。
- それぞれの値を入力して、「+」記号をクリックするかEnterを押します。推奨されるスロットタイプの値については、カスタムスロットタイプの値を参照してください。
- ID列をクリックして、値のIDを編集します。
- 同義語列をクリックして値に同義語を入力し、「+」記号をクリックするかEnterを押して保存します。
- 変更したら必ず保存するようにしてください。
カスタムスロットタイプの名前を変更するには
- 左側のナビゲーションから、スロットタイプの隣にある追加をクリックします。
- スロットタイプの名前のフィールドをクリックします。名前を編集してモデルを保存をクリックします。
カスタムスロットタイプの値
リクエストで指定されるスロットの値は、通常の文字形式でスキルに送信されます。
たとえば下の表では、スロットタイプ値とこれらの値がサービスに渡される際にどのような形式に変換されるか、いくつかサンプルを挙げています。この表のスロット値は、カスタムスロット値のリストに指定する値を指しています。発話形式はユーザーの話しかける言葉、スロットの出力値はスキルに渡されるリクエストのデータを指します。
スロット値 | 発話形式とスロットの出力値 |
---|---|
خمس تفاحات | خمس تفاحات |
اربع سنتمترات | اربع سنتمترات |
اربع نجوم | اربع نجوم |
amazon.com | امازون دوت كوم |
ahmed@company.com | احمد ات كومباني دوت كوم |
مليغرام | مليغرام |
كيلوغرام | كيلوغرام |
مية الف | مية الف |
وعنب | وعنب |
عنب | عنب |
القطة | القطة |
قطة | قطة |
文法的に適切な場合は、スキルのスロット値にو (and)、ل (to)、لل (to the)、عال (on the)などの小辞を含めます。小辞は後ろの語とつなげる必要があるため、キャリアフレーズ内のスロットの前に付けることはできません。スロットの内容によっては、バリエーションの増減が必要になる場合があります。
英語のサンプル発話 | アラビア語(SA)のサンプル発話 | アラビア語(SA)の例 | 対話モデルに含めるスロット値 | スロットの出力値 |
---|---|---|---|---|
add itemOne and itemTwo to my shopping list |
ضيفي
|
ضيفي عنب وتفاح لعربة التسوق حقي |
|
|
add itemOne and itemTwo to my shopping list |
ضيفي
|
ضيفي تفاح وعنب لعربة التسوق حقي |
|
|
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,飛行,飛行機
サンプルの値を一括で編集または読み込むには
- スロットタイプの下にあるスロットタイプの名前をクリックして、スロットタイプの詳細ページを開きます。
- スロット値セクションの右上で、一括編集をクリックします。
-
編集ボックスの値を編集するか、CSVファイルをウィンドウにドラッグしてコンテンツを読み込みます。
- 1行ごとに1スロット値を入力します。
- CSVファイルを読み込むと、編集ボックスに表示される既存のスロット値と置き換えられます。
- 下のCSVにはヘッダーが含まれますを選択して、テキストフィールドに表示される一番上の行を除外します。
- 送信をクリックしないと、値の変更は保存されません。
- 送信をクリックします。
追加の値を使用して標準スロットタイプを拡張する
標準リストスロットタイプのサブセットにユーザー定義のカスタム値を追加できます。つまり、指定した値をAmazonが定義した標準値に追加できるということです。たとえば、AMAZON.City
は都市を認識できるようにします。含まれていない可能性がある小さな町など、追加の都市を収集する必要がある場合、タイプを拡張してリストに追加できます。その後、スロットは、元の値のセットと追加したカスタム値を認識します。
標準スロットタイプに追加する値の同義語とIDを定義することもできます。詳細については、標準スロットタイプのエンティティ解決を参照してください。
標準スロットタイプの拡張は、特定のスキルにのみ適用されます。たとえば、あるスキルで追加の都市を指定してAMAZON.City
を拡張しても、それらの変更はAMAZON.City
を使用するほかのスキルには適用されません。
標準タイプを拡張する前に、スキルにスロットタイプを追加する必要があります。左側のナビゲーションで、スロットタイプのタイプを表示します。拡張するスロットタイプが含まれていなければ、スキルに追加します。
拡張するスロットタイプを追加するには
- ビルドページで、カスタム > アセット > スロットタイプに移動します。
- +スロットタイプをクリックします。
- Alexaのビルトインライブラリから既存のスロットタイプを使用オプションを選択します。
- 追加する標準スロットタイプを検索します。
スロットタイプは名前で絞り込むことができます。 - 追加する標準スロットタイプごとに+スロットタイプを追加をクリックします。
- 変更を保存するには、モデルを保存をクリックします。
標準スロットタイプを拡張するには、カスタムタイプと同様に値を追加します。
標準スロットタイプに値を追加するには
- ビルドページのカスタム > アセット > スロットタイプで、編集するスロットタイプを選択します。
- スロット値に値を入力し、 プラス記号(+) をクリックするか、Enterを押します。
- 変更を保存するには、モデルを保存をクリックします。
スロットタイプの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": "小都市"
}
}
]
}
]
}
}
}
関連トピック
- スキルの対話モデルの作成
- インテント、発話、スロットの作成
- 必要な情報を収集、確認するためにダイアログを定義する
- 発話をテストして対話モデルを改善する
- 自然言語理解(NLU)モデルのバッチテスト
- スロット値の検証
- Alexaデザインガイド
- 開発者コンソールを使用したスキルの作成と管理
- スキルのビルド
最終更新日: 2023 年 11 月 07 日