组合词槽与正则表达式词典值使用说明
tiancorn 发布于2018-06 浏览:13904 回复:4
3
收藏
最后编辑于2020-03

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

 

收藏
点赞
3
个赞
共4条回复 最后由134******14回复于2020-03
#5134******14回复于2020-03

4 配置方式

样例1

3 :词槽名是不是有些错误,非[D:user_time_city] 因是[D:user_city_time]?

 

0
#4莫笑浅路繁华回复于2018-11

如何配置,没看懂?这样吗??有没有实际例子说明

2
#3rose20135188回复于2018-06

功能越来越强大了。辛苦各位大佬了。

0
#2伊茨米可回复于2018-06

强烈推荐!!!

0
TOP
切换版块