大家可以通过在上传的词表文件中配正则表达式(需要在行首加“$$$”与正常词区分)来使用该功能,使用示例:
1、识别邮箱:如果想把邮箱识别成user_email词槽,可在user_email词槽上传的词表中加入下面两行(第一行可以识别xxx_xxx@gmail.com等,第二行可以识别xxx_xxx@sina.com.cn等):
$$$[a-z0-9_-]{1,20}@[a-z0-9]{1,10}\.[a-z0-9]{1,10}
$$$[a-z0-9_-]{1,20}@[a-z0-9]{1,10}\.[a-z0-9]{1,10}\.[a-z0-9]{1,10}
2、识别电话号码:如果想把电话号码识别成user_phone词槽,可在user_phone词槽中加入下面两行(第一行可以识别固定电话,第二行可以识别手机号):
$$$\d{3,4}-\d{7,8}
$$$1[34578]\d{9}
3、识别中文汉字:如果想识别“周x”、“周xx”等姓名,可用下面正则表达式:
$$$周[\u4e00-\u9fff]{1,2}
注:如果想识别姓名,不推荐使用上面这种正则写法(会导致“周三”等时间槽位识别不了以及其他很多识别冲突问题),最好使用下面的识别子表达式功能(可以在正则表达式前后加上上下文)
4、识别子表达式:(本次新增功能)可将小括号内的子表达式匹配的内容识别为该槽位,如想将query为“我的名字是张三”中的“张三”识别为[D:user_name],可在[D:user_name]槽位中配如下正则表达式:
$$$我的名字是([\u4e00-\u9fff]{2,3})
说明:
1、暂时只支持以下7种字符类:"\s" "\d" "\w" "\u"(中文Unicode编码) "." "[…]" "(...)"(子表达式);以及3种量词:"?" "{n}" "{m,n}" ,其他正则表达式符号如:* + ^ $ 等均不支持, 如果不加反斜杠进行转义训练会失败
2、正则表达式和普通词可以在一个词槽文件中,正则表达式行首需要加$$$进行区分
3、当正则表达式词典值 与 其他词槽的普通文本词典值重叠时,普通文本词典值得优先级高于正则,需要删除重叠的词典值才能让正则词典值识别。20181229update
附--组合词槽的使用说明:https://ai.baidu.com/forum/topic/show/865416
令人期待已久的功能,基于正则,各位可以解决数字词典的问题了,前排撒花