意图用来定义对话工厂内用户表述的一种意向,比如查天气、订机票、是本人等一个完整的意图可包含:意图名称、意图别名、用户问法、问法模板等信息。

意图基本信息

意图名称:意图名称在机器人内不能重复。如. 申请公积金贷款。

意图别名:意图面向用户可理解的一种表述,当机器人识别到两个相近的意图时,会主动用意图别名澄清访问。机器人澄清示例. 请问您是要申请公积金贷款,还是使用公积金支付房贷?

意图-0

意图问法

意图问法包括两类:用户问法和问法模板。在意图的问法配置中,给意图添加用户问法和问法模板。输入完成后,enter可快捷添加问法。

意图-1

在问法模板中,有时需要配置槽位参数,这时需要我们先创建全局槽位,槽位名称我们可以自定义,然后在识别方法中选择自建或系统内置的实体,根据槽位的特性,选择数组还是单值,选择是否加密,配置完成后点击确定即可。

意图-3

用户问法

用户问法:用户表达该意图的各种不同的表述方式,用户问法应更多覆盖给类不同的表述方式

相似的表达方式,比如:我要买火车票、买火车票、买一张火车票

不同表达的方式,比如:我要买火车票、我要坐火车出行、坐火车到xx去玩

注意:每个意图的用户问法建议5条以上

划词标注:用户问法中包含了特定的参数信息,使用划词标注可以提升机器人识别用户参数的效果,特别对于使用相同识别方式的两个参数有更大的帮助。

例如:我要买从北京到杭州的火车票

在这句话中,北京和杭州都是中国的城市,如果您直接说”北京”或者”杭州”,是没有办法直接识别哪个是出发地哪个是目的地。利用划词标注,我们可以根据用户描述中的样例说法找到出发地和目的地。

标注后,用户有相似的说法“我要买从天津到广州的火车票”,机器人可以识别到“天津”和“广州”到对应的参数

标注方法:在编辑框中,用光标选中词,即可标注该词到对应的意图参数上。标注完成后,保存话术后即生效。

意图-4

问法模板

问法模板(原LGF):通过模板匹配来表示用户的问法。问法模板支持以下元素

元素

说明

示例

${}

代表意图参数(槽位),配置时可以引用意图内定义的参数,${参数名}

${城市}

其中“城市”是用户定义的意图参数名

[]

可选符

[请|麻烦]帮我打水

用户说了“帮我打水”、“请帮我打水”、“麻烦帮我打水”都可以匹配到问法模板。

()

必选符

附近的(餐馆|饭店)

用户说了“附近的餐馆”、“附近的饭店”可以匹配到问法模板,用户说了“附近的酒店”或“附近的”则不可以匹配到模板。

|

小明的(电话|联系方式)

用户说了“小明的电话”或“小明的联系方式”都可以匹配到问法模板。

.{下限,上限}

指定数量的文本

.{0,3}${日期}${城市}的天气

.{0,3}代表任意0~3个字,用户说了“查一下明天北京的天气”、“我想问后天杭州的天气”、“下周一上海的天气”都可以匹配到问法模板。

注意:元素里面使用到的符号都是英文符号

问法模板(LGF)配置实践

最简单的LGF

最简单的LGF就是普通的文本,比如下面的“今天的北京天气“,在勾选严格匹配的情况下,这个LGF表达仅仅能匹配一个输入,也就是原封不动的“今天的北京天气“今天的北京天气

可选部分

使用“[]“可以标明,文本中的某个部分是可有可无的,比如下面的“的“,在这样的LGF表达下,能匹配两个输入,“今天北京天气“和“今天北京的天气“今天北京[的]天气我们可以在不同的地方加入可选标记,能让句子的表达能力翻倍(x2),比如下面的表达就能匹配4个输入今天北京[的]天气[预报]

逻辑或

使用“|“可以表达某个部分“逻辑或关系“,比如下面的时间部分,可以表达3个时间中的任意一个,使得总共可以匹配的输入数量扩展到了12(xn,n表示候选的个数)需要注意的是,使用“|“的时候为了避免表达歧义,建议使用“()“做隔离表达,如下所示:(今天|明天|后天)北京[的]天气[预报]除了可以使用“()“来隔离外,如果逻辑或部分同时也是可选部分,那么使用“[]“也能形成天然的隔离,如下所示:(今天|明天|后天)北京[的]天气[预报|情况|状况]

参数表达

以上的例子都属于LGF的文本表达,但是在对话工厂构建对话的过程中,会有很多的参数填充,比如上述的天气的例子,需要知道“时间“和“地点“2个参数在LGF中可以使用”${}”引用具体的参数(注意:是参数名,而不是来源名词),那么如下表达就能命中非常多具体表达如:“明天杭州的天气情况“,“2号广州天气“,“大后天深圳天气状况“等等${date}${city}[的]天气[预报|情况|状况]

通配符泛化

LGF的“可选部分“和“逻辑或“等手段都是对表达能力的一种增强,但在一些应用中仍无法满足泛化能力的需求,比如下面的表达中,开发者想覆盖更多的多样的前后缀[请问|查下|告诉我]${date}${city}[的]天气[预报|情况|状况][如何|怎么样|好不好]为了对应这样的需求,LGF也支持通配符,表示方式是“.{下限,上限}“,例子如下:.{0,3}${date}${city}[的]天气[预报|情况|状况].{0,3}比如“.{0,3}“表示能匹配0个(没有)到3个任意字符(UTF字符,中文字算一个),上述的表述方式能兼容一些前后缀的情况。但是,切记这样的泛化是很不可控的,可能会导致一些其他表述被误识别,通配符泛化建议在10个字以内。

常见错误

错误类型

错误配置

错误说明

正确配置

语法错误

我想听刘德华[的歌

只有“[”,没有对应的“]”

我想听刘德华[的歌]

我想听<歌手>的歌

引用参数应该使用${参数名}

我想听${歌手}的歌

引用的参数没有定义

我想听${歌手}的歌

在意图基础配置中,没有定义“歌手”参数

在意图基本信息配置中完成参数定义

模板中只有可选部分

[我想听][${歌手}][的歌]

模板内容全是可选部分,意味着用户不输入也能匹配到这个模板,不是符合模板的配置

我想听[${歌手}][的歌]

模板中包含“我想听”这种非可选部分

意图管理

对话工厂内定义的意图可以在意图管理中进行设置

意图-5

编辑:编辑意图的基本信息,包括意图名称、意图别名、创建全局槽位(注意:意图名称是定义意图的信息,意图使用后不建议修改意图名称)。

发布:将意图的配置发布到线上环境(发布对话机器人的时候,会同步发布意图;只有单独修改问法配置的时候可使用此发布功能)。

导出:支持单个意图导出,批量导出和全量导出。导入意图包括意图的基本信息,意图的问法配置。基本信息不推荐在导出文件中编辑修改,问法配置可以在导入文件中增加。

导入:支持导入意图。导入意图可以新增意图和新增意图问法。

下线:支持对已发布的意图做下线操作。

搜索:可以使用意图名称检索机器人内的意图。