开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

训练数据

  添加训练数据后,模型才能正确的识别意图和词槽。

  对话模板:按照模板规则匹配语句,符合规则即可识别。

  对话样本:真实对话数据,标注样本的意图、词槽之后,可以识别样本原句和原句的相似语句。

  词槽词典值:为技能提供识别语句中的关键参数的能力。比如手机推荐中的手机品牌,就需要通过添加词槽词典值来识别。

对话模板

  在没有真实对话数据,但需要快速启动项目的情况下,首选配置对话模板,可以快速让模型有一定的识别效果。精确识别语句,输入的语句符合模板就能识别到意图、词槽等信息。

  我们先简单了解几个概念:

  模板片段:由词槽、特征词、固定文本组成。一般情况下,一个词槽或特征词或固定文本即是一个模板片段。

  特征词:当一个词具有多个同义表述时,我们将这些词加到一个词组里,就是特征词。例如:问题"支持退换货嘛?"中,"支持"的同义表述有:有、能、可以、享受等。

  必须匹配:必须匹配选择【是】的模板片段,必须在用户问题中出现,才能命中当前模板。

  阈值:
   1. 当用户语句中可识别部分内容字数除以模板内容总字数 > 阈值时,语句可匹配该模板。
   2. 可识别部分包括:词槽,特征词,固定汉字,口语化词。计算字数时,汉字是1,数字、字母、标点符号是0.5。

  解析返回所有词槽:选择是,表示匹配到该模板时,只要语句包含该词槽,即使未在模板配置,也会返回该词槽的解析结果。

  词表黑名单:可以配置词槽、特征词,只要语句包含词表黑名单的内容,模板将不会识别该语句。

  模板优先级:靠前的模板优先级高。如果语句可以匹配两个模板,会根据优先级高的模板给出识别结果。

  接下来我们来看如何为导航场景下的问题"肯德基在哪?"创建一个问题模板。

  首先,这句话里有两个关键词,分别是:肯德基、在哪。其中,"肯德基"是规划导航路径的关键参数,需要设置为词槽才能传给业务系统进行路径规划;"在哪"是有多个同义表述的,我们将其设为特征词。

  点击【新建问题模板】即可开始配置模版,选择【新建特征词】并在对话框中输入特征词信息,如下示例:

  【名称】:kw_where

  【描述】:把"在哪"定义为特征词。

  【词典值】:在哪,在什么地方,哪里,哪有

新建特征词

  接下来,将词槽和特征词分别加入到两个模板片段中。

  这时,我们发现,"肯德基在哪?"这句话中,"肯德基"和"在哪"必须都有,我们才能完整理解句子意思的词。所以,我们分别在"肯德基"和"在哪"的片段前,【必须匹配】选项选【是】。

  我们还会发现一个问题,就是用户还可能会说:"哪里有肯德基",这句话特征词的出现顺序发生了明显的变化,为了解决这个问题,UNIT为模板片段提供了顺序的概念:

  当顺序为0时,意味着这个模板片段可以出现在用户问题中的任意位置;当顺序大于1时,模板按照从小到大的顺序,需要依次在用户问题中从左至右出现。我们来看两个例子:

模板1

  此配置下,当用户说:"肯德基在什么地方?"、"肯德基在哪?"才能命中模板

模板2

  此配置下,无论用户说:"哪有肯德基?"、"肯德基在哪里?"、"在什么地方啊,肯德基"都可以命中模板。

注意:
 单模板片段不是完全不能使用,如果词槽或者特征词之间必须紧挨,不期望中间有其他内容,就需要使用;或者意图下有两个相同词典的不同词槽,为了区分识别这两个词槽,就需要用特征词对其中一个进行限定。比如订火车票意图,有起点和终点,真实语句中,包含终点的词一般都是"去北京""到北京""回北京",此时就需要将包含"去""到""回"的特征词与终点词槽配置在一个模板片段中。
 返回数据json中有模板ID(template_id),可在对话模板界面通过搜索定位具体匹配的模板。

对话样本集

  对话样本是真实的对话数据,模型可以从标注后的样本学习到样本对应的意图,以及样本中包含的词槽都是什么。

1. 对话样本集

  UNIT为开发者提供了三种样本集:

    a. 待优化样本集

    b. 系统推荐样本集

    c. 自建样本集

2. 新建对话样本

  UNIT为开发者提供了两种新建对话样本的方式:

    a. 逐条添加

样本1

    b. 批量导入

样本2

3. 单条标注对话样本

  完整的对话样本标注需要经历三个步骤:标注意图->标注词槽->确认标注。

样本样本

注意:
 平台默认会对样本进行分词,看起来的效果就是有些字之间的间距较大,如果分词结果与需要标注的词槽不同,可以进行重新分词或者合并操作。
 为了更好的识别效果,样本标注的词槽词典值如果在词典里不存在,建议补充到词典中。

4.分词与合并

分词与合并

5. 批量预标注

  如果对话技能已有正在运行中的模型,即可使用批量预标注功能自动标注样本的意图与词槽。

批量预标注

词槽管理

1. 新建词槽

UNIT为开发者提供了两种词槽:

  1. 普通词槽

  2. 通配词槽

注意:
 在词槽管理下新建的词槽,默认不会关联自定义意图,只关联了系统内置的CMD_UPDATE_词槽名意图。想要使用,需要在对话意图中【新建词槽】,复用该词槽。

2. 词典值配置

UNIT为开发者提供了多种词典值配置方式:

  a. 系统词典

  内置的直接可用的词典,选择之后即可使用该系统词典识别相应的数据。系统词典说明文档包含词槽词典值举例和归一化值说明,点击查看

  系统词典无法查看具体的词典值数据,但是可通过搜索功能查询某些词是否被系统词典收录。

搜索系统词典

  b. 自定义词典

  如果词槽需要识别的内容没有可用的系统词典,就需要配置自定义词典。

  以手机品牌词槽为例,可以添加品牌名及其同义词。

自定义词典

  如果词典值是无法穷举的内容,可以考虑使用正则词典值或者通配词槽。

    1. 正则文档:点击查看

    2. 通配文档:点击查看

  c. 词典值黑名单

  词典值黑名单一般用于过滤掉不期望系统词典识别的词典值。加入黑名单的值,该词槽就不会识别到。

  d. 动态词典

  比如某厂家想让自家的智能音箱可以更改名字,不同买家取的名字无法预知且需要实时生效,就可以使用动态词典,使用接口直接传入相关动态词典信息,对话接口调用时传入动态词典即可。文档:点击查看

  e. 高级设置

  分词干预

  词槽因分词错误导致无法识别时,可以在这里输入需要干预的词语,系统将把对应词语按单个字的粒度进行分析,解决词槽无法识别问题。

  下面就以更换数据意图进行具体的功能讲解。比如,输入"更换一批",因为user_change词槽的词典值包含"换一批",语句也符合模板阈值,所以理论上这句话应该被识别,但是因为分词结果是"更换""一批",无法识别出"换一批",所以语句识别失败,此时需要将"更换"进行分词干预,才能识别到"换一批"。

分词干预

上一篇
意图管理
下一篇
技能设置