用户语句

优质
小牛编辑
144浏览
2023-12-01

1.1. 用户语句(user_says)

为意图配置任何可能的用户语句,形成映射关系。例如,我们对意图中定义的JSON进行完善:

{
 "intents": [
  {
   "intent": "bestcoffeebar",
   "slots": [
        {
        "name": "city",
        "type": "LIST_OF_CITIES"
        }
   ],
    "user_says":[
        "$city哪里好点的咖啡馆",
        "$city哪里有好一点的咖啡馆",
        "$city哪里有好点的咖啡馆"
        ]
  }
    {
    "intent": "nicedrink",
    "user_says": [
        "米萨咖啡哪种最好喝",
        "米萨咖啡最好喝的是哪一种",
        ]
    }
 ]
}

这样,有3句不同的用户语句对应到了意图bestcoffeebar,有2句不同的用户语句对应到了意图nicedrink。意味着用户说出这些语句时,就会匹配到对应的意图。

用户语句可以枚举,同时支持正则表达式,具体请参考Rokid正则表达式使用指南

请配置尽可能多的用户语句以匹配用户多种多样的表达方式。另外,在后续填写技能发布信息时,您需要从这些语句中选出3句最能代表您技能特点的语句展示在技能说明中告知用户。

特别提醒: 用户语句是句式强匹配,除特殊情况外,不建议在句末添加标点符号,否则可能会导致句式无法匹配。

比如在上例中将语句加上标点:

杭州哪里好点的咖啡馆?

那么此时只有ASR解析结果为杭州哪里好点的咖啡馆?的语句才可以被识别,而杭州哪里好点的咖啡馆则无法被识别。

相反,如果配置的语句为:

杭州哪里好点的咖啡馆

那么语句杭州哪里好点的咖啡馆?杭州哪里好点的咖啡馆以及末尾带有其他标点的句子均能被正确识别。

1.2. 用户语句(user_says)类型

  • 领域内的user_says

领域内的user_says即只有在处于该领域的时候用户说这句话才能被命中的说法,如下面的内容,只有通过打开该技能,用户说:“杭州哪里有好点的咖啡馆”才能被命中

"$city哪里有好点的咖啡馆",

领域内的user_says一般用于公有技能,或者明显会存在意图冲突的intent中,如“上一首,下一首”等

  • 不受领域限制的user_says 用户在领域外或者领域内,能够直接通过这个句式命中的说法,不受领域先限制的user_says以"#"开头,只有在“私有技能”才被允许使用,避免意图的冲突。如下面配置,用户说:”杭州哪里有好点的咖啡馆“,即可直接打开技能,并且命中该user_says对应的Intent
"#$city哪里有好点的咖啡馆",

特别说明:由于该说法的特殊性,因此哪怕在私有技能上使用,也需要向Rokid商务(rokidopen@rokid.com )申请此用法的权限。

  • Confirm询问的情况下使用的user_says 用户在我们设备主动发起询问,并且限制了回答范围的时候才能命中的说法,具体详见“Confirm”说明,Confirm询问的情况下使用的user_says以"!"开头
"!$city(哪里有好点的咖啡馆)?",