1 背景
在UNIT平台的一些应用场景中,用户配置了两个槽位,比如,城市槽位[D:user_city]、时间槽位[D:user_time],之后想要将“北京时间”、“纽约时间” 这样的case也识别成一个槽位[D:user_city_time]。即用户可以配置组合槽位A=B+D+…,在这里即为[D:user_city_time]= [D:user_city]+ [D:user_time]。
2 名词解释
组合词槽:词槽A由其他多个词槽组成,当且仅当其他多个词槽都识别的情况下,识别为词槽A。
=:赋值。 +:代表组合。
例如:
[D:user_city_time] = [D:user_city] + [D:user_time],代表的含义:
[D:user_city] [D:user_time]
3 实现的功能
能够识别用户配置的组合词槽。能够提供的功能如下:
4 配置方式
样例1:
1)新建一个意图:CITYTIME,添加词槽 user_city_time,别名:城市时间,user_city_time选择自定义词典。词槽必填,澄清话术用默认的即可;答复:正在为您查询…… 保存
2)在【训练数据--词槽管理】中找到user_city_time,进入,在自定义词典里添加:##combine##user_city+user_time。然后再在【词槽管理】中添加两个词槽user_city、user_time,分别选择系统次词典sys_loc_city、sys_time。
3)在【训练数据--对话模板】中添加对话模板,选择意图「CITYTIME」,在第一个模板片段中添加:[D:user_time_city]是几点,把模板阈值调0.4
4)训练并生效模型,在测试窗口输入query: 北京现在是几点 就能识别
样例2:
对于一些包含数字的自定义词槽,例如cctv1 cctv2 cctv3…… hntv1 hntv2 hntv3等等,你可能会把这些频道都写出来,这样词典值很多且维护麻烦。
1)你可以定义user_a,里面自定义词典值为cctv、hntv,再定义一个词槽user_b,复用系统sys_num或是自定义正则表达式类型的词典值$$$[0-9]{1,2}
2)然后再定义词槽user_c,自定义词典值写上##combine##user_a+user_b,这样就能轻松识别cctv、hntv和数字组合后的词槽了。
5 注意点
1)词槽词典值如果使用组合词槽,之前在自定义词典值里只能添加一个词典值,目前已经升级可以支持多个词典值了。
2)下面这样把特殊字符和词槽组合的错误用法 会导致训练失败
详细的格式要求见上面的第3点表格里的说明。
附:词槽词典中设置正则表达式类型的词典值方法:https://ai.baidu.com/forum/topic/show/492687
4 配置方式
样例1
3 :词槽名是不是有些错误,非[D:user_time_city] 因是[D:user_city_time]?
如何配置,没看懂?这样吗??有没有实际例子说明
功能越来越强大了。辛苦各位大佬了。
强烈推荐!!!