帖子

[官方资源分享] 【官方】私有语义中通配符、数字匹配以及字段定义的使用

[复制链接]
  • TA的每日心情
    开心
    2017-12-29 09:56
  • 签到天数: 46 天

    [LV.5]常住居民I

    22887  楼主| 王水 发表于 2016-8-2 16:41:33 1#
    先看一个例子:
    1. #ABNF 1.0 UTF-8;
    2. #include"osp_common.abnf"
    3. business command;
    4. root main;
    5. #ABNF HEAD-END;
    6. $want = 送 | 拿 | 端;
    7. $to =  到 | 至 | 去 | 往 ;
    8. $table= $i_number[号](台 | 桌);
    9. $name{object.name}=$_ti_ch_<2-4>;
    10. $main{biz:command} = $want $to $table $name;
    复制代码
    测试结果:送到234号台李先生
    1. {
    2.   "service": "command",
    3.   "text": "送到234号台李先生",
    4.   "semantic": {
    5.     "slots": {
    6.       "object": {
    7.         "name": "李先生",
    8.         "number": {
    9.           "real": "234"
    10.         }
    11.       }
    12.     }
    13.   },
    14.   "rc": 0
    15. }
    复制代码
    上面的例子中先看通配符$_ti_ch_:任意一个字符。 (字母、数字、汉字),后面的数字<2-4>就是匹配2到4个字符。另外还支持一种通配符$_ti_filler_:0 到任意多个字符。
    例子中,使用$_ti_ch_<2-4>来匹配客户的名字称呼等,由于客户的名称范围是不限定的,所以这里不可能通过|运算符来穷举出所有客户,这里通配符就非常适合来满足这样的需求。

    然后看看例子中{object.name}和{biz:command}
    {biz:command}用来定义该私有语义场景的服务标示,对应着返回的语义结果中的:"service": "command"。比如下图中,你定义并勾选了多个私有语义场景,那么你在拿到语义结果的时候,首先判断是那个场景返回的,然后才能有针对性的解析这语义结果。(除了私有语义,每个通用场景也有对应的唯一的服务标示,但是是系统定义好的,不可以更改。)
    QQ截图20160****65534.jpg

    {object.name}这样的结果是用来返回你最关心的某些字段值,比如这个例子中,你最关心的肯定是台号和客户名称,台号下面解释,通过{object.name}这样的语义定义,就可以在返回的结果中得到:
        "slots": {
          "object": {
            "name": "李先生",
            "number": {
              "real": "234"
            }
          }
        }

    这样非常清晰且容易解析的结果格式。

    最后看看一个很方便的功能$i_number,这个是我们的工程师为大家实现好的数字的识别单元,有了它大家就不要自己在苦逼的实现数字匹配的表达式了。使用之前需要#include"osp_common.abnf"。注意:它的匹配范围是8位数,大多数情况下基本够用了。
    ゛﹏箜、陌児 发表于 2016-8-9 14:29:03
    2#
    234读成二百三十四也是可以被识别的吧?
    使用道具 举报 回复
    nbin 发表于 2016-8-25 10:52:04
    3#
    这个功能我也是经常用
    使用道具 举报 回复
    ppdayz 发表于 2016-9-12 17:44:26
    4#
    请问如何开通私有语义
    使用道具 举报 回复
     楼主| 王水 发表于 2016-9-12 18:37:36
    5#
    ppdayz 发表于 2016-9-12 17:44
    请问如何开通私有语义

    attention:私有语义开通+日交互次数调整+离线体验天数增加
    http://bbs.xfyun.cn/forum.php?mo ... 6&fromuid=33982
    (出处: 语音云社区)


    使用道具 举报 回复
    li2863515010 发表于 2016-10-25 14:38:27
    6#
    不错!!!!!!!!!!!!!
    使用道具 举报 回复
    admn 发表于 2016-11-1 09:51:02
    7#
    谢谢分享,学习了。
    使用道具 举报 回复
    不知者☠无畏 发表于 2017-1-9 11:41:14
    8#
    超有用啊,通配符啊
    使用道具 举报 回复