翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ユーザーが発話を行うと、Amazon Lex V2 は自然言語理解 (NLU) を使用してユーザーの要求を理解し、適切な意図を返します。デフォルトでは、Amazon Lex V2 は、ボットによって定義された最も可能性の高い意図を返します。
場合によっては、Amazon Lex V2 が最も可能性の高い意図を判断するのが困難なことがあります。例えば、ユーザーが曖昧な発話をした場合や、似たような意図が2つある場合などです。適切な意図を決定するために、解釈のリストで、ドメイン知識と NLU信頼性スコア を組み合わせることができます。信頼スコアは、Amazon Lex V2 が提供する評価で、意図が正しい意図であるという確信度を示します。
解釈内の 2 つの意図の差を判断するには、信頼度スコアを比較します。例えば、あるインテントの信頼スコアが 0.95 で、別のインテントのスコアが0.65の場合、最初の意図はおそらく正しいでしょう。ただし、あるインテントのスコアが 0.75 で、別のインテントのスコアが 0.72 の場合、2 つのインテントの間には曖昧さがあり、アプリケーションでドメインナレッジを使用して識別できます。
また、信頼度スコアを使用して、インテントの発話に対する変更がボットの動作に違いをもたらすかどうかを判断するテストアプリケーションを作成することもできます。例えば、一連の発話を使用してボットのインテントの信頼度スコアを取得し、新しい発話でインテントを更新することができます。その後、信頼スコアをチェックして、改善があったかどうかを確認することができます。
Amazon Lex V2 が返す信頼スコアは、比較のための値です。絶対的なスコアとして信頼するべきではありません。この値は、Amazon Lex V2 の改善に基づいて変更される場合があります。
Amazon Lex V2 は、最も可能性の高いインテントと、最大 4 つの代替インテントを、各レスポンスの interpretations
構造で関連するスコアとともに返します。次の JSON コードは、RecognizeText オペレーションからのレスポンスにおける interpretations
の構造を示しています。
"interpretations": [
{
"intent": {
"confirmationState": "string",
"name": "string",
"slots": {
"string" : {
"value": {
"interpretedValue": "string",
"originalValue": "string",
"resolvedValues": [ "string" ]
}
}
},
"state": "string"
},
"nluConfidence": number
}
]
AMAZON.FallbackIntent
Amazon Lex V2 は、次の 2 つの状況で最上位インテントとして AMAZON.FallbackIntent
を返します。
-
考えられるすべてのインテントの信頼スコアが信頼度しきい値を下回っている場合。デフォルトのしきい値を使用することもできますし、独自のしきい値を設定することもできます。
AMAZON.KendraSearchIntent
が設定されている場合、この状況で Amazon Lex V2 は同様にそれを返します。 -
AMAZON.FallbackIntent
の解釈の信頼度が、他のすべてのインテントの解釈の信頼度よりも高い場合。
Amazon Lex V2 は、AMAZON.FallbackIntent
の信頼スコアを表示しないことに注意してください。
信頼度しきい値の設定と変更
信頼度しきい値は 0.00 から 1.00 の間の数値である必要があります。以下の方法で、ボットの言語ごとにしきい値を設定できます。
Amazon Lex V2 コンソールの使用
-
[言語を追加] を使用してボットに言語を追加するときにしきい値を設定するには、[信頼度スコアのしきい値] パネルに希望する値を挿入します。
-
しきい値を更新するには、ボットの言語の [言語詳細] パネルで [編集] を選択します。次に、[信頼度スコアしきい値] パネルに希望する値を挿入します。
API オペレーションの使用
-
しきい値を設定するには、CreateBotLocale オペレーションの
nluIntentConfidenceThreshold
パラメータを設定します。 -
信頼度しきい値を更新するには、UpdateBotLocale オペレーションの
nluIntentConfidenceThreshold
パラメータを設定します。
セッションの管理
Amazon Lex V2 がユーザーとの会話で使用するインテントを変更するには、ダイアログコードフックの Lambda 関数からの応答を使用するか、カスタムアプリケーションでセッション管理 API を使用します。
Lex V2 ボットでの Lambda 関数の使用
Lambda 関数を使用する場合、Amazon Lex V2 は関数への入力を含む JSON 構造で呼び出します。JSON 構造は、Amazon Lex V2 がユーザーの発話の最も可能性の高い意図として特定した意図を含む、currentIntent
と呼ばれるフィールドを含んでいます。JSON 構造は、ユーザーの意図を満たす可能性のある最大 4 つの追加意図を含む alternativeIntents
フィールドも含んでいます。各意図には、Amazon Lex V2 がその意図に割り当てた信頼度スコアを含む nluIntentConfidenceScore
というフィールドが含まれます。
別の意図を使用するには、Lambda 関数の ConfirmIntent
または ElicitSlot
ダイアログアクションで指定します。
詳細については、「ボットへの AWS Lambda 関数の統合」を参照してください。
Lex V2 ボットでのセッション管理 API の使用
現在のインテントと異なるインテントを使用するには、PutSession オペレーションを使用します。例えば、Amazon Lex V2 が選択した意図よりも、最初の選択肢が望ましいと判断した場合、PutSession
オペレーションを使用して意図を変更し、ユーザーが次に対話する意図が選択したものになるようにすることが可能です。
詳細については、「Amazon Lex V2 ボットセッションについて」を参照してください。