自然言語理解(NLU)モデルのバッチテスト
NLU評価ツールを使って、Alexaスキルの自然言語理解(NLU)モデルをバッチテストできます。
モデルを評価するには、スキルに送られると予想されるインテントやスロットにマッピングした発話のセットを定義します。これをアノテーションセットと呼びます。次に、アノテーションセットを使ってNLU評価ツールを起動し、想定したとおりにスキルのモデルが機能しているか確認します。この評価ツールを使用して、NLUモデルの精度を測定したり、見直しテストを実行することができます。見直しテストは、モデルを変更してもユーザーエクスペリエンスが低下していないことを確認するためのものです。
NLU評価ツールは、すべてのロケールのスキルモデルで使用できます。また、これらのツールには、スキル管理API(SMAPI)、ASKコマンドラインインターフェース(ASK CLI)からもアクセスできます。NLU評価ツールAPIを参照してください。
前提条件
NLU評価ツールは、対話モデルの定義とビルドが完了したら使用できます。
このツールはエンドポイントを呼び出しません。そのため、スキルモデルのテスト用にサービスを作成する必要はありません。
アノテーションとアノテーションセット
NLU評価ツールを使ってモデルを評価するには、アノテーションセットを作成します。アノテーションセットとは、スキルに送られると予想されるインテントやスロットにそれぞれマッピングした一連の発話のことです。予想されるインテントやスロットにマッピングした各発話のことをアノテーションと呼びます。
各アノテーションには次のフィールドがあります。
- 発話
- テストの対象となる発話です。
- ウェイクワードや呼び出し名は含めません。ユーザーがスキルを呼び出した後に使うと考えられる発話のみを指定します。
- 発話は、書き言葉と話し言葉のいずれでも入力できます。また、数値は漢数字(「五」)で表記します。その他の例については、カスタムスロットタイプの値を参照してください。
- 予想されるインテント
- 発話がトリガーするインテントです。
- 予想されるスロット名
- (オプション)発話に入るスロット名です。1つの発話に予想されるスロットを複数指定できます。
- 予想されるスロット値
- 予想されるスロット名には必ず値を指定する必要があります。指定したスロットに入ると予想される値を指定してください。
- 参照タイムスタンプ(UTC)
- (オプション)相対日時値の基準となる日時をUTC形式で指定します。このフィールドは、発話で「今日」、「明日」、「今」といった相対日時を表す単語を使い、
AMAZON.DATE
、AMAZON.TIME
の各スロットをテストする場合に使用します。 ミリ秒を含め、完全な日時を指定してください(例:2018-10-25T23:50:02.135Z
)。詳細については、相対日時を使ったアノテーションを作成するを参照してください。
アノテーションセットの作成と編集
アノテーションセットは、開発者コンソールのビルド>カスタム>アノテーションセットで管理できます。開発者コンソールから直接、アノテーションを作成し、編集できます。
開発者コンソールでアノテーションセットを作成する
- 開発者コンソールでスキルを開きます。
- ビルド>カスタム>アノテーションセットに移動します。
- アノテーションセットを作成をクリックします。
- ページ上部に、アノテーションセットの名前を入力します。
- アノテーションを作成します。
アノテーションセットを編集する
- 開発者コンソールでスキルを開きます。
- ビルド>カスタム>アノテーションセットに移動します。
- 編集するアノテーションセットに移動し、名前か編集リンクをクリックします。
開発者コンソールでアノテーションを作成する
アノテーションの各フィールドについては、アノテーションとアノテーションセットを参照してください。
- アノテーションセットを作成するか、編集します。
- テストする発話を入力して、プラス記号をクリックするか、Enterキーを押します。
- 発話の一覧で、予想されるインテントフィールドをクリックし、発話がトリガーするインテントを選択します。
- 発話にスロットがある場合は、予想されるスロット名を選択して予想されるスロット値を入力し、+(プラス記号)をクリックします。
- 必要に応じて、参照タイムスタンプフィールドをクリックし、日付ピッカーから日付と時刻を選択します。選択すると、その日時がUTC形式で入力されます。相対日時を使ったアノテーションを作成するを参照してください。
- 新規のアノテーションをすべて追加したら、アノテーションセットを保存をクリックします。
相対日時を使ったアノテーションを作成する
ビルトインスロットタイプのAMAZON.DATE
とAMAZON.TIME
では、現在の日付からの相対日時を指定できます。たとえば、「今日」という発話は通常、現在の日付に解決されます。つまり、このスロット値は発話をテストする日付によって変わります。
この種の発話をNLU評価ツールでテストするには、参照タイムスタンプ(UTC)フィールドに特定の日時を入力します。すると、日時のスロット値を計算する際に、実際の現在日時の代わりにこの値が使われます。
例として、以下のアノテーションを見てみましょう。
発話 | 予想されるインテント | 予想されるスロット名 | 予想されるスロット値 |
---|---|---|---|
日付スロットを明日でテストする | TestDateSlotIntent | DateSlotExample | 2019-08-22 |
日付スロットを来週月曜日でテストする | TestDateSlotIntent | DateSlotExample | 2019-08-26 |
参照タイムスタンプを指定しない場合、これらの発話は2019年8月21日にテストしないと成功しません。これらのアノテーションの参照タイムスタンプにそれぞれ、2019-08-21T00:00:00.000Zを指定します。こうすることで、NLU評価ツールは実際の日時にかかわらず、現在日時を2019年8月21日の午前0時と解決するため、指定した予想されるスロット値が実際の結果と一致します。
日時ピッカーから日付と時刻を選択します。日付/時刻がUTC形式: YYYY-MM-DDThh:mm:ss.sTZD
で追加されます(例: 1997-07-16T19:20:30.45Z)。
評価を開始する
スキルにアノテーションセットを1つ以上定義したら、評価を開始できます。このツールでは、スキルの対話モデルでビルドした自然言語理解(NLU)モデルを、指定したアノテーションセットを使って評価します。
公開中のスキルの場合、開発中バージョン、公開中バージョンのどちらに対して評価を実行するかを選択できます。
評価は、同時に複数実行することができます。
-
ビルド>カスタム>対話モデルセクションの任意のページで、右上隅のモデルの評価ボタンをクリックします。モデルの評価ボタンはアノテーションセットページにもあります。
- NLU評価ツールタブを選択します。
- ステージリストから、開発中、公開中のいずれかを選択します(該当する場合)。
- アノテーションソースリストから、アノテーションセットを1つ選択します。
- 評価を実行をクリックします。
評価が開始され、現在のステータスがNLU評価結果一覧に表示されます。評価には数分かかる場合があります。モデルの評価パネルを閉じて、スキルの別の作業を進め、後からテスト結果を確認できます。
結果を確認してモデルを更新する
NLU評価ツールパネルの評価結果では、特定の評価結果の詳細を確認できます。過去のすべての評価が保存され、後から確認できます。
NLU評価結果の概要を確認する
モデルの評価ボタンをクリックし、NLU評価ツールタブを選択します。パネル下部の一覧に、評価中と完了済みの評価結果がそれぞれ表示されます。
一覧に表示される評価結果には、以下の情報が含まれます。
- 評価ID
- 評価結果の一意のIDです。評価が完了すると、このIDがリンクに変わるため、クリックしてレポート全体を確認できます。
- ステータス
- 評価が完了したかどうかを表します。
- 結果
- 評価結果を表します。アノテーションセットのすべてのテストが、予想されるインテントとスロットの値を返した場合、評価結果は合格とみなされます。アノテーションセットのテストが、予想されるインテントとスロットの値を1つも返さなかった場合、評価結果は失敗とみなされます。
- アノテーションソース
- 評価に使用するアノテーションセットの一意のIDです。このリンクをクリックすると、アノテーションセットのページが開きます。
- ステージ
- テストするスキルのステージ(開発中、公開中)です。
- 開始時間
- 評価が開始した時刻です。
特定の評価結果を取得します。
指定した評価の結果を確認するには、結果の概要を開きます。評価IDリンクをクリックすると、結果が開きます。結果ページで、どの発話がテストに合格しなかったかを確認できます。失敗した各発話について、予想していた値と実際の値が赤で表示されます。
JSONを書き出しボタンをクリックすると、JSON形式でレポートをダウンロードできます。
スキルを更新する
評価結果から、失敗する発話を特定します。これらをサンプル発話とスロット値として対話モデルに追加し、再ビルドしてから、同じアノテーションセットで再度評価し、変更によって精度が上がったかどうかを確認します。
見直しテストにNLU評価ツールを使う
NLU評価ツールは、見直しテストに特に効果的です。すべてのテストに合格するアノテーションテストを追加したら、対話モデルを変更するたびに再評価を実行してスキルの精度が低下していないことを確認できます。
問題を見つけたら、スキルの対話モデルを前のバージョンに戻すことができます。以前のバージョンの対話モデルを使用するを参照してください。
関連トピック
- スキルの対話モデルの作成
- インテント、発話、スロットの作成
- カスタムスロットタイプの作成と編集
- 必要な情報を収集、確認するためにダイアログを定義する
- 発話をテストして対話モデルを改善する
- スロット値の検証
- Alexaデザインガイド
- 開発者コンソールを使用したスキルの管理
- スキルのビルド
- NLU評価ツールAPI(SMAPI)