在意图管理中通过用户话术来对意图内容进行丰富,并支持规则配置。
新建意图
点击意图管理右上角的新建意图即可唤出新建意图的弹窗,输入意图标题和用户话术后即可完成创建。用户话术表示命中该意图时用户说的句子。
在创建用户话术时可以选择纯本文话术和规则话术,上限分别为50条和5条。
规则的配置规则可参见下方意图规则说明。
填写完成意图信息后,在意图并未配置完成还有待完善时可以选择保存为草稿,并在列表中点击编辑继续完善,还可以直接在列表中进行发布。当完成意图的配置时可以直接选择保存并发布,并在列表中可以进行失效操作。
意图规则说明
这里的规则可以理解为是正则表达式与逻辑运算符的结合,这两部分在质检规则中均有出现,主要支持以下几种写法:
基础规则
最基础最简单的规则是普通文本,比如“我要预订今天的车票”,这个规则仅能匹配一个用户输入,就是“我要预订今天的车票”。
我要预订今天的车票
可有可无的字段
使用“[]”可以标记文本中的某个部分是可有可无的,比如下面句子里面“我要”,这样的规则,能匹配两个文本输入,“我要预订今天的车票”和“预订今天的车票”。
[我要]预订今天的车票
也可以在句子中加入多个“[]”,例如下面的示例,可以命中“我要预订今天车票”,“我要预订今天的车票”,“预订今天车票”,“预订今天的车票”。
[我要]预订今天[的]车票
"或"关系表示
使用“|”可以表述句子中某个部分的“或”关系,比如下面的例子,既可以匹配“我要预订今天的车票”又可以匹配“我想预订今天的车票”,需要注意的是,使用“|“的时候为避免歧义,可以用“()”隔离表达部分,如下所示:
(我要|我想)预订今天的车票
“|”也可以和“[]”联合使用,这样可有可无的部分也有多种可能,比如下面例子所示:
[我要|我想]预订今天的车票
使用通配符加强泛化
规则的“可有可无”部分和“或”功能都可以增强用户的泛化表述能力,但依然要列举出用户可能要说的文字,还不能达到最大的泛化效果。为了继续增强泛化效果,规则支持通配符,表示方式是".{下限,上限}",如下示例,.{0,3}表示用户可以说0到3个任意字符:
.{0,3}预订今天的车票.{0,3}
这句规则可以支持用户表述“请帮我预订今天的车票”,“给我预订今天的车票好吗”,“预订今天的车票”,“预订今天的车票可以吗”......
使用通配符后,一句用户表述可能命中多个通配符规则比如“你不开心吗”可以命中下面这两个规则:
.{0,3}开心.{0,3}
.{0,3}不开心.{0,3}
“非”语法和通配符共用
规则通过通配符泛化后,容易引入一些不可控的因素,比如:
.{0,3}今天的机票.{0,3}
规则的本意是希望能够匹配“今天的机票”相关的内容但是如果输入的文本为“退订今天的机票”,那么就有可能跟业务的初衷相悖,所以需要对通配符的范围进行限定 ,如下:
(!退订|取消){0,3}今天的机票.{0,3}
将.{m,n}中的 “.” 去掉,在前面加入(!xxx),就可支持不以“退订”或“取消”开头。注意如有多个要排除的文本,只要用一个“!”即可。在这种规则下,用户说“退订今天的机票”,就不会命中上面的规则。
“非”语法和“或”的共用
“非”语法也可以在“或”语法中使用,如下:
帮我(!吃下|!弄下|开下)大门吧
“帮我吃下大门吧”,“帮我弄下大门吧”就不会命中这条规则,只有“帮我开下大门吧”可以命中。注意这里每个或之间的词如果要去掉都要加入“!”。
一些建议
建议在“[]”中只使用“|”和文本,不要使用".{m,n}"和“()”。