如何在Alexa中处理意图中的同义词? [英] How to handle synonyms in intents in Alexa?

查看:113
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆