モデルの発話競合の検出
Note: Sign in to the developer console to build or publish your skill.
モデルの発話競合の検出
モデルをビルドすると、意図せずに複数のインテントにマッピングされる発話が作成されることがあります。開発者コンソールを使用して、これらの発話の競合を検出し、その処理方法を決定できます。
発話の競合の種類
さまざまな種類の競合が発生する可能性があります。
- カスタムインテント間の競合
- 発話が2つ以上のカスタムインテントにマッピングされたときに発生します。通常、これは、複数のインテントに同じサンプル発話がある場合、またはサンプル発話がスロット値が重複しているスロットタイプを使用している場合に発生します。競合を修正しないと、Alexaは正しいインテントを解決しようとしますが、今後の変更によって結果が変更される可能性があります。特定の発話が常に特定のインテントに解決されるようにするには、対話モデルを変更して競合を修正します。
- ビルトインインテントとカスタムインテントの間の競合
- 発話がカスタムインテントと標準ビルトインインテント(どれか1つ)の両方にマッピングされたときに発生します。たとえば、「ヘルプ」という発話を持つカスタムインテントはビルトインインテントである
AMAZON.HelpIntent
と競合します。Alexaはカスタムインテントをビルトインインテントよりも優先するため、この例では「ヘルプ」はビルトインインテントではなく、常にカスタムインテントに解決されます。発話をビルトインインテントではなくカスタムインテントにマッピングする場合は、この競合は発生しません。 - ビルトインインテントと複数のカスタムインテント間の競合
- 発話がビルトインインテントとカスタムインインテント(複数)の両方にマッピングされたときに発生します。たとえば、2つのカスタムインテントにそれぞれ「ヘルプ」という発話がある場合、発話はカスタムインテントと
AMAZON.HelpIntent
の両方と競合します。Alexaはビルトインインテントを無視し、正しいカスタムインテントを解決しようとします。発話が常に特定のカスタムインテントに解決されるようにする場合は、対話モデルを変更して競合を修正します。 - カスタム発話で拡張されたビルトインインテント間の競合
- カスタム発話でビルトインインテントを拡張し、拡張された発話が別のビルトインインテントと競合した場合に発生します。たとえば、
AMAZON.StopIntent
に「ヘルプ」という発話を追加したとします。この種の競合は、スキルの精度を低下させます。ビルトインインテントから競合する発話を削除します。
AMAZON.SearchQuery
またはAMAZON.LITERAL
スロットタイプを使用する発話間の競合は含まれないことに注意してください。
開発者コンソールで競合の一覧を表示する
モデルの完全ビルドを正常に実行すると、発話の競合が生成されます。競合が検出されると、開発者コンソールにアラートが表示されます。ビルドページで、カスタム>対話モデル>発話の競合に移動し、競合の一覧を表示します。
ページには以下の列が表示されます。
- 発話の競合
- 複数のインテントにマッピングされる発話(スロット値を含む)を表示します。スロット値は小文字の発話形式で表示されます(たとえば、値「4」は「四」と表示されます)。
- サンプル発話
- 対話モデルで定義されているように、競合するサンプル発話が表示されます。スロットは波括弧(
{}
)で囲まれています。 - インテント
- 発話の競合にマッピングされるインテントを表示します。インテントをクリックして、その発話を編集します。
- 現在の動作
- モデルを変更せず、競合を削除した場合のAlexaの動作について説明します。
必要に応じてモデルを変更および再テストする
解決する競合について、サンプル発話とスロット値を編集します。例:
-
返さないインテントのサンプル発話を削除または変更します。たとえば、単語を追加してあいまいさを取り除くことができます。そうすると、発話があまり自然ではなくなり、(明確な単語がない)元のフレーズの方がより自然に聞こえる場合があります。
- あいまいさを含むインテントを取り入れる機能を再検討します。本や映画の場合、通常、非常に多くの本の題名と映画のタイトルが競合するので、1冊の本や1本の映画のみに絞ったスキルの方が良いかもしれません。そうすると、ユーザーは「{book} について教えて」など、より自然な発話ができるようになります。
- カスタムスロットタイプで重複したスロット値を削除または編集します。
- ビルトインインテントを拡張する発話を削除または編集します。
ヒント: カスタムインテント間の競合については、Alexaが発話プロファイラーで発話をどのようにあいまいさを解決しているかを確認できます発話の競合列から発話をコピーしてテストします。これは、現在のモデルでAlexaがどのようにインテントを解決するかを示していることに注意してください。モデルとAlexaサービスに対して今後変更が加えられると、これらの結果が変更される可能性があります。そのため、発話が常に特定のインテントに解決されるようにするには、他のインテントのサンプル発話を削除または変更します。
変更を行った後、モデルを再ビルドし、発話の競合ページを再度確認します。
競合を残してAlexaに正しいインテントを選択させる場合は、アノテーションセットに発話を追加し、現在返されているインテントにマッピングします。NLU評価ツールを使用して、このアノテーションセットを今後回帰テストとして実行し、結果が変更されるかどうかを確認できます。
関連トピック
- スキルの対話モデルの作成
- インテント、発話、スロットの作成
- サンプル発話とカスタムスロットタイプの値を作成する際のベストプラクティス
- 発話をテストして対話モデルを改善する
- 自然言語理解(NLU)モデルのバッチテスト