高级技能问法配置

意图

意图指的是用户在和机器人的对话交互中,发出的主要请求或动作。每个意图对应着用户一个真实需求。一个高级技能是由多个意图构成的。

skill

用户问法则是用户对于意图的常见表达。高级技能配置中,开发者可以在「补充用户问法模块」,为意图添加用户问法。

skill

用户对于一个意图,可能存在多种不同表达。开发者在配置问答时,最好能够尽可能全面地填写用户问法,覆盖多种不同的句式。为了方便开发者快速编写用户问法,平台支持通过使用「正则符号」、「词典」与「语义槽」的方式添加用户问法。

例如:「我想查询北京的天气」/「我想查询上海的天气」,以上两句可以使用语义槽 {城市} ,合并为「我想查询{城市}的天气」。

但是,「我想查询{城市}的天气」和「{城市}天气怎么样」是两个不同句式的句子,需要分为两种用户问法来添加。

具体规则如下。

带正则符号的问法

平台支持开发者在用户问法中加入“()”、“|”、“&&”三种规则符号。其中:

开发者可以用“()”将用户问法分割为多个条件;用“&&”规定条件无序;用“|”规定条件可选等。

"()": 括号,代表必选条件,前后有序。必须成对出现,不允许嵌套;
“|” : 或,仅允许出现在括号内;
“&&”:连接符,前后条件无序;

注:以上正则符号均必须为英文符号;

例如:(打开|想看|)&&(视频)({节目名称})

  • 表示当前规则有三个条件:(打开|想看|)、(视频)、({节目名称})

  • 其中(打开|想看|)条件最后的“|”表示的是可选条件,“想看”和“打开”出现一个即可; (视频)({节目名称})是必选条件,即用户问法中“视频”和“{节目名称}”必须都出现才能命中。

  • &&表示前后两个条件是无序的,即“想看视频…”、“视频打开…”均可以命中;

  • (视频)({节目名称})表示这两个条件是有序的,必须连续出现才能命中,即“视频xxx”可命中,“xxx视频”不可命中。

带词典/语义槽的问法

概念

详见「名词解释-语义槽」「名词解释-词典」小节。

引用词典

开发者可在用户问法中插入词典,用一个词典来覆盖这句话中的某个关键词可能变化的内容。

例如:“商场8点开门吗”和“商场9点开门吗”,这两句用户问法中,时间点就是可以不断变化的关键词,我们就可以用一个系统词典 sys.具体时间点 来代替用户可能询问的所有时间点,即可写成:“商场sys.具体时间点开门吗”,这样用户询问任一时间点时都能匹配到。

引用语义槽

用户问法也支持引用语义槽,开发者可以将用户问法中的相似关键词用一个语义槽来代替。在引用语义槽时,开发者既可以使用系统已有的语义槽,也可根据对话需要添加自定义语义槽。

语义槽用{}符号包裹起来,开发者无需自己书写,在语义槽编辑器中填写语义槽名称即可添加。

例如,在查询星座幸运数字时,不同星座的用户可能会问:“处女座的幸运数字是多少”、也可能问“白羊座的幸运数字是多少”,这个时候我们就可以将星座类型这个关键词提取出来,用一个{星座}语义槽来代替,合并写成“{星座}的幸运数字是多少”,并在语义槽设置中将其与包含12个星座的词典关联起来,就能实现12种不同星座的用户问法需求。