0

我有一项 Alexa 技能,要求至少有一个运动队 (teamOne),以及可选的两个运动队(teamOne 和 teamTwo)。

我对这两个插槽都使用了内置插槽类型 AMAZON.SportsTeam。

我注意到它有时会捡起一些甚至不接近运动队的东西。

这是一个示例:用户询问“匹兹堡钢人队是什么”的技能,它会这样解析它:

"teamOne": {
                "name": "teamOne",
                "value": "what is",
                "confirmationStatus": "NONE"
            },
"teamTwo": {
                "name": "teamTwo",
                "value": "Pittsburgh Steelers",
                "confirmationStatus": "NONE"
            }

假设“什么是”是一个运动队的名字,这到底是怎么回事?在不手动定义数百(数千?)个运动队的情况下,如何使这项技能更好?显然,这不是调用该技能的“正确”方式,但用户不应该因此而受苦。

4

1 回答 1

2

我们很惊讶插槽值不受其中定义的值的约束。我们为我们的应用程序定义了几个具有特定值的插槽,但有时会收到无效数据。在与 Amazon Alexa 人员交谈后,我们通过几种方式解决了这个问题:

A) 对于已定义的列表,我们的服务器中有一些方法可以针对特定插槽类型的固定列表运行传入值。当没有找到完全匹配时,我们确定最接近的匹配并使用该值。

B)定义许多不同的话语来匹配一个意图,在你上面的例子中,你可以添加:[谁是​​(teamSlotValue)],[谁是(teamSlotValue)],[什么是(teamSlotValue)],等等......覆盖为许多可能的意图排列。我们发现对每个话语执行此操作可以提高准确性,不仅可以调用正确的话语,还可以减少槽值中的噪声。

于 2017-12-18T18:40:06.550 回答