如何在Alexa中处理意图中的同义词? [英] How to handle synonyms in intents in Alexa?
问题描述
在下面的示例中:
如果用户说太妃糖,那不应该翻译成糖果吗?我之所以问,是因为传递给我的意图的价值是太妃糖。所以不确定我有什么不对。
In the following example: If the user says toffee, shouldn't that be translated to candy? I ask because the value handed to my intent is 'toffee'. So not sure what I have incorrect.
types":[
{
"name":"SHOPPING_LIST",
"values":[
{
"id":null,
"name":{
"value":"candy",
"synonyms":[
"toffee"
]
}
},
{
"name":"GetPrice",
"samples":[
"Get me the price of {item}",
"tell me the price of {item}",
],
"slots":[
{
"name":"item",
"type":"SHOPPING_LIST"
}
]
}
推荐答案
我们需要在您的后端代码中处理实体解析。 b $ b更多信息可以在这里参考:
https://developer.amazon.com/blogs/alexa/post/5de2b24d-d932-4c6f-950d -d09d8ffdf4d4 / entity-resolution-andslot-validation
We need to handle the entity resolution in your backend code. More can be referred here: https://developer.amazon.com/blogs/alexa/post/5de2b24d-d932-4c6f-950d-d09d8ffdf4d4/entity-resolution-and-slot-validation
在您的代码中,您可以添加
In your code you can add,
this.attributes.item = slotValue(this.event.request.intent.slots.item);
此外,在您的处理程序函数之外添加此
Also, add this outside your handler function,
function slotValue(slot, useId){
let value = slot.value;
let resolution = (slot.resolutions && slot.resolutions.resolutionsPerAuthority && slot.resolutions.resolutionsPerAuthority.length > 0) ? slot.resolutions.resolutionsPerAuthority[0] : null;
if(resolution && resolution.status.code == 'ER_SUCCESS_MATCH'){
let resolutionValue = resolution.values[0].value;
value = resolutionValue.id && useId ? resolutionValue.id : resolutionValue.name;
}
return value;
}
现在,当用户输入太妃糖时,它将转换为糖果。
Now when your user enters toffee, it will be translated to candy.
这篇关于如何在Alexa中处理意图中的同义词?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!