本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
当用户说话时,Amazon Lex V2 会使用自然语言理解 (NLU) 来理解用户的请求并返回正确的意图。默认情况下,Amazon Lex V2 会返回您的机器人定义的最可能的意图。
在某些情况下,Amazon Lex V2 可能难以确定最可能的意图。例如,用户可能会说出模棱两可的言语,或者可能有两个相似的意图。为了帮助确定正确的意图,您可以将自己的专有领域知识与解释列表中的 NLU 置信度分数相结合。置信度分数是 Amazon Lex V2 提供的评级,表明其对意图是正确意图的置信度。
要确定某个解释内两个意图之间的差异,您可以比较其置信度分数。例如,如果一个意图的置信度分数为 0.95,而另一个意图的置信度分数为 0.65,则第一个意图可能是正确的。但是,如果一个意图的分数为 0.75,而另一个意图的分数为 0.72,则这两个意图之间存在歧义,您可以在应用程序中使用领域知识来区分。
您还可以使用置信度分数来创建测试应用程序,以确定对意图言语的更改是否会影响机器人的行为。例如,您可以使用一组言语来获取机器人意图的置信度分数,然后用新的言语更新意图。然后,您可以查看置信度分数,以确定是否有所改善。
Amazon Lex V2 返回的置信度分数是比较值。请避免将其视作绝对分数进行信任。根据对 Amazon Lex V2 的改进,这些值可能会发生变化。
Amazon Lex V2 会在每个响应中以 interpretations
结构返回最有可能的意图以及最多 4 个替代意图及其相关分数。以下 JSON 代码显示了RecognizeText操作响应中的interpretations
结构:
"interpretations": [
{
"intent": {
"confirmationState": "string",
"name": "string",
"slots": {
"string" : {
"value": {
"interpretedValue": "string",
"originalValue": "string",
"resolvedValues": [ "string" ]
}
}
},
"state": "string"
},
"nluConfidence": number
}
]
亚马逊。 FallbackIntent
在以下两种情况下,Amazon Lex V2 将返回 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 函数中的响应,也可以在自定义应用程序中使用会话 APIs 管理。
在 Lex V2 机器人中使用 Lambda 函数
当您使用 Lambda 函数时,Amazon Lex V2 会使用包含该函数输入的 JSON 结构对其进行调用。JSON 结构包含一个名为 currentIntent
的字段,该字段包含 Amazon Lex V2 已确定为最有可能的用户言语意图的意图。JSON 结构还包括一个 alternativeIntents
字段,该字段包含最多四个可能满足用户意图的额外意图。每个意图都包含一个名为 nluIntentConfidenceScore
的字段,其中包含 Amazon Lex V2 指定给该意图的置信度分数。
要使用替代意图,您可以在 Lambda 函数的 ConfirmIntent
或 ElicitSlot
对话框操作中指定该意图。
有关更多信息,请参阅 将 AWS Lambda 功能集成到您的机器人中。
在 Lex V2 机器人中使用会话管理 API
要使用与当前意图不同的意图,请使用 PutSession 操作。例如,如果您认为第一个替代意图比 Amazon Lex V2 选择的意图更可取,则可以使用 PutSession
操作来更改意图,以便用户与之交互的下一个意图就是您选择的意图。
有关更多信息,请参阅 了解 Amazon Lex V2 机器人会话。