全部产品
阿里云办公

意图

更新时间:2018-06-29 16:18:47

1 意图

一个意图的定位过程,可以进行单轮或者多轮的对话其中一个完整的意图可包含下列几个部分:

  1. 用户表述 (必填)
  2. 参数(可选)

2 用户表述_划词配置

用户描述用于识别用户说出什么样子的话术会进入到该意图当中去,因为我们利用算法支持了语义的泛化能力,所以无需配置说法差不多相似的用户描述。当您编辑完一句用户表述时,按下回车键换行后,才算生效。

相似的表述方式,比如:

我要买火车票买火车票买一张火车票

不同表达的方式,例如:

我要买火车票我要坐火车出行坐火车到xx去玩

我们可以在用户表述里面进行配置:11

2.1 划词标注一些情况下,我们可能一句话完成意图识别和参数获取的所有过程,又或者我们只是想快捷的新增我们所需的参数,所以我们可以采用划词的方式完成上面的需求。

2.1.1 新增划词标注

我们上面的用户描述中,并没有含有下面的词槽的参数,现在我们试一下加入这些参数,然后利用划词的方式快速帮助我们完成任务。例如:

我要买明天从杭州到北京的火车票

22

这时我们可以看到,下面的词槽中,不同的参数列表中的“来源名称”列的值变成了我们刚刚划取的值。如果多个划词标注对应在同一个参数上,我们可以通过选中词槽的方式来进行合并。

小提示:划词可以帮您快速的完成词槽的生成,还可以准确的提取样句中的关键词。

例如:

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

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

并且如果标注了北京和杭州分别是出发地和目的地,那么您有相似的说法是

从天津出发到广州玩玩我们依旧可以识别到“天津”和“广州”是对应的参数

2.1.2 删除划词标注

删除已经标注好的某一个划词,可以直接点击对应标签上面的❌号直接进行删除。33

删除已经标注好的某一类划词,删除该参数,所有和该参数有关的划词也都会消失。

44

3 用户表述_高级配置

这里的填写规范用到了 LGF55

3.1 最佳实践

我们首先从最简单的LGF表达开始,逐步深入复杂的LGF表示,在这一部分我们先仅仅考虑LGF勾选“严格匹配“的情况,在最后我们再解释不勾选“严格匹配“会带来的变化和增强

3.2 最简单的LGF

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

  1. 今天的北京天气

3.3 可选部分

使用“[]“可以标明,文本中的某个部分是可有可无的,比如下面的“的“,在这样的LGF表达下,能匹配两个输入,“今天北京天气“和“今天北京的天气“

  1. 今天北京[的]天气

我们可以在不同的地方加入可选标记,能让句子的表达能力翻倍(x2),比如下面的表达就能匹配4个输入

  1. 今天北京[的]天气[预报]

3.4 逻辑或

使用“|“可以表达某个部分“逻辑或关系“,比如下面的时间部分,可以表达3个时间中的任意一个,使得总共可以匹配的输入数量扩展到了12(xn,n表示候选的个数)需要注意的是,使用“|“的时候为了避免表达歧义,建议使用“()“做隔离表达,如下所示

  1. (今天|明天|后天)北京[的]天气[预报]

除了可以使用“()“来隔离外,如果逻辑或部分同时也是可选部分,那么使用“[]“也能形成天然的隔离,如下所示

  1. (今天|明天|后天)北京[的]天气[预报|情况|状况]

3.5 参数表达

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

  1. ${date}${city}[的]天气[预报|情况|状况]

3.6 通配符泛化

LGF的“可选部分“/“逻辑或“等手段都是对表达能力的一种增强,但在一些应用中仍无法满足泛化能力的需求,比如下面的表达中,开发者想覆盖更多的多样的前后缀(注意:这里的前提是仍勾选“严格匹配“)

  1. [请问|查下|告诉我]${date}${city}[的]天气[预报|情况|状况][如何|怎么样|好不好]

为了对应这样的需求,LGF也支持通配符,表示方式是“.{下限,上限}“,例子如下:

  1. .{0,3}${date}${city}[的]天气[预报|情况|状况].{0,3}

比如“.{0,3}“表示能匹配0个(没有)到3个任意字符(UTF字符,中文字算一个),上述的表述方式能兼容一些前后缀的情况但是,切记这样的泛化是很不可控的,很可能兼容了一些问题确引入更多的问题,如果用到类似的需求,请优先不勾选“严格匹配“

3.7 相似度泛化

如果觉得通配符泛化过于“粗糙“,那么可以尝试使用相似度泛化,使用方法是不勾选“严格匹配“如果没有勾选“严格匹配“那么,LGF语法会使用“相似度“方法进行泛化,比如上述例子能够匹配“我要点份外卖“,“帮我点个外卖“,“外卖帮我点一份“等等

3.8 元素说明

元素
说明
例子
${}
代表槽位(意图所需参数)
表示方式${参数名}
${城市}
其中 城市 是用户定义的参数名
[]
代表可选符
[帮我|请帮我|麻烦帮我]打水
代表可以是“打水”、“帮我打水”、“请帮我打水”、“麻烦帮我打水”
[]中的内容可有可无
()
必选符
附近的(餐馆|饭店)
代表可以是“附近的餐馆”、“附近的饭店”,但不可以是“附近的”
|
小明的(电话|联系方式)
代表可以是“小明的电话”、“小明的联系方式”

3.9 校验规则和提示信息

在用户编辑保存LGF规则时,系统检查语法规则,给予提示,分为两类:

  1. 错误,指语法错误,引用实体不存在,或对于应用效果来说可能存在非常大的伤害(不能保存
  2. 警告,语法允许,但是没有遵循最佳实践(可以保存)错误提示如下:
描述 等级 举例 解法 页面提示
语法错误 错误 我想听刘德华[的歌 我想听刘德华[的歌] 语法错误:缺少”[“符号
语法错误 错误 我想听<歌手>的歌 我想听${歌手}的歌 语法错误:引用参数请使用${参数名}
引用的实体没有定义 错误 我想听${歌手}的歌 定义“歌手”这个参数 参数”XXX”未定义
整句规则全都由可选部分构成 错误 [我想听][${歌手}][的][歌] 不能全部是可选 整句规则不能全由可选部分构成
过多穷举 警告 “我要听(狮子 老虎 小猫