用户说法

一、概述

用户说法就是用户在对话交互过程中提出的问题,请求或命令。作为语音对话定制平台,我们需要开发者录入可能的用户说法,并确保说法足够丰富。

二、添加说法

1、说法标注

由于用户说法多种多样不可能穷举,所以需要开发者对用户说法中包含的关键信息进行标注。比如「我要去苏州」,将「苏州」两个字标注为一个叫「城市」的语义槽,通过替换绑定词库中的其他城市名,这个说法就可以匹配「我要去上海」、「我要去北京」等说法。这个动作就叫标注。
开发者添加用户说法时,可以在添加例句后进行手动标注,也可以使用规则编写,在用户说法中直接引用语义槽。

关于语义槽和词库的更多介绍,可以在语义槽词库章节中了解。

2、添加例句

开发者在添加用户说法时,可以直接添加用户说法例句并进行手动标注。
选中用户说法中需要标注的文字,会自动出现一个词库列表,可以拖动滚动条选择需要的词库,也可以通过输入关键字搜索找到所需词库。选中词库后,即可绑定相应词库。绑定词库后会自动创建同名的语义槽,开发者可自定义语义槽名称。
在说法标注时,如果已创建的词库不能满足用户标注需求时,弹窗的下方有新建词库的入口,输入词库的名称,点击「+」,即可完成新词库的创建,同时也完成了说法的标注。但此页面仅是创建了只有一个词条的新词库,如果需要充实该词库,可从侧边栏进入「词库」编辑页面,找到创建的词库,编辑词条。

Minion

3、添加规则

开发者在添加用户说法时,可以通过#语义槽名称#的方式在说法中直接引用,同时在语义槽栏中将该语义槽与词库相绑定。如输入用户说法「我要去#目的地#」,并将#目的地#绑定词库「目的地」。在实际使用时,##内的语义槽名称可以被它绑定的词库内的任何词替换。使用##引用语义槽名称编写的说法不支持再次进行手动标注。

Minion

4、正则符号

为了方便开发者快速编写句式相似的用户说法,DUI支持在用户说法中加入正则符号“[]”“()”“|”及停止符、通配符、重复符号的使用:

符号 说明 举例
() 必选符号,表示小括号内的内容必须有 #日期#天气(怎样|怎么样)
[] 可选符号,表示中括号内的内容可有可无 [请问|问一下]#日期#的天气
| 表示多个取其一(仅限于出现在括号内) #日期#的天气(如何|好吗|怎样)
^ 前停止符,表示说法不能向前扩展 ^播放歌曲
$ 后停止符,表示说法不能向后扩展 提高音量$
. 通配符,表示一个任意字符 导航.#目的地#
.* 通配符,表示0~无穷多字符 导航.*#目的地#
.+ 通配符,表示1~无穷多字符 导航.+#目的地#
{n} 重复符号,表示前面的元素重复n遍 导航.{2}#目的地#
Minion 重复符号,表示前面的元素重复n~m遍 我要{1,2}导航#目的地#

注意
1.正则符号都必需为英文符号;
2.说法里只允许出现表格中提到的符号;
3.括号不能嵌套,即括号内不能再有括号,比如 [()];
4. | 一定要在括号里面,且 | 左or右不能为空;
5.用户说法一般支持前后自动扩展,如您不需支持此功能,可在说法前后使用停止符标注,之后说法不再支持自动向前扩展任意文本,包括语气词。

5、整句标注

对于上文中列举的可以从句中直接获取关键信息的用户说法,我们可以通过标注语义槽的方式与词库关联。同时也存在部分语义槽的取值,开发者无法从用户说法中直接获取,而是需要从句子中的含义抽象出来。如「今天适合穿什么」,用户意图中表达出的查询对象是「穿衣指数」,这样无法对原句进行标注的用户说法,开发者可以通过整句标注功能,获取用户提供的关键信息。

整句标注步骤如下:

1)点击整句标注

Minion

2)在出现的弹窗中选择需要绑定的词库

Minion

3)输入取值

Minion