跳到内容 跳到主导航 跳到页脚

撰写文法规则

配置语音指令:详细流程说明

3. 如何撰写文法规则?

不同情况下的操作步骤

根据不同文法需求,二次开发者配置内容也有区别,主要分为以下三种情况:

新增APP,给APP的各项功能配置指令:需要新建domain、intent、文法 (其中domain, intent 不能使用大写字母

已有APP,新增功能,给新增功能配置指令:无需新建domain,需要新建intent、文法

已有APP,已有功能,已有功能扩充语音指令:无需新建domain、intent,需要新建文法

文法创建步骤

  1. 创建领域domain:NLP配置—场景对话—文法配置—新建领域

2.创建意图intent:NLP配置—场景对话—文法配置—选择需要新增意图intent的领域,点击“进入领域”

进入领域后,点击右上角“新建意图”

3.创建文法:NLP配置—场景对话—文法配置—选择需要配置的领域,点击“进入领域”—选择需要配置的意图,点击“进入意图”

进入意图后,出现以下界面

文法撰写基础知识:了解词条、词典、节点

  • 概述:
  • 词条组成词典,词典关联节点,节点组成文法,文法支撑意图intent,意图intent组成领域domain
  • 颗粒度:词条<词典<节点<文法<意图<领域
  • 节点:
  • 节点是文法规则的组成单位,多个节点构成一条文法规则
  • 一条文法规则设置多个节点,目的是通过节点间的排列组合,支持多样化的语音指令
  • 节点查看及配置入口:NLP配置—场景对话—文法配置—进入领域—进入意图
  • 节点与词典、词槽slot关联,一个节点通常关联一个词典
  • 编辑节点,设置节点重复次数、是否必须出现、是否关联词槽slot,设置不同规则
  • 词典:
  • 词典通过关联节点生效,词典是多个词条的集合
  • 词典配置及查看入口:NLP配置—场景对话—词典配置
  • 词条:
  • 词条即词语,也可以是单个的字,如“稍稍”“稍微”等,词条是词典的组成单位,一个词典由多个词条组成
  • 词条查看及配置入口:NLP配置—场景对话—词典配置—进入词典
  • 词条类型分为value值和text值,端上解析时,使用的是value值

文法撰写基础知识:了解召回、误召、漏召

  • 召回:query被文法规则兜住,进入了domain、intent、slot,被称为“召回”
    • query能进入任何domain、intent、slot,称为query被召回
  • 误召:query被文法规则兜住,进入了错误的domain、intent、slot,被称为“误召”
    • 例如,“我想听陈粒的歌”,是一句音乐领域的query,但是被视频领域的规则兜住了,进入了domain:video,则称为“误召”
  • 漏召:query应该进入domain、intent、slot,但实际上进入了other,被称为“漏召”
    • 例如,“我想听陈粒的歌”,理论上应该进入音乐领域,但由于文法规则未覆盖这样的query,这句query进入了other,则称为“漏召”
  • 召回率:被召回的query数/总query数

开始撰写文法:“我想听陈粒的歌”

  • 配置方法分为两种,一种用于配置测试demo指令(5条以下),一种用于配置正式开发的指令
  • 用于配置测试demo指令的方法简单方便,但不利于后期扩充。用于配置正式开发指令的方法较为复杂,但后期易于扩充和维护

配置测试demo指令:

  • 如果只需配置数量较少的指令用于测试(5条以下),步骤分为:输入明文——保存
  • 在文法编辑框直接打字输入(这样的方式被称为明文),Enter回车后点击右上角“保存”

保存后,指令“我想听陈粒的歌”进入文法列表

配置正式开发的指令:

配置用于正式开发的指令,步骤分为:拆分指令—创建词典—新增词条—新增节点—添加文法

  1. 拆分指令:对“我想听陈粒的歌”这句话进行拆分,可以分为“我想”“听”“陈粒”“的”“歌”
  2. 创建词典:根据这几个拆分的部分,新建词典“【音乐】我想”、“【音乐】听”、“【音乐】歌手名”、“【音乐】的”、“【音乐】歌”
  • 词典名称:词典的中文或英文名称,后续可以修改
    • 为了便于理解,一般命名为“【领域名】+词典内容”,如“【音乐】我想”
  • 词典标识:词典的英文名称,后续不可以修改
    • 为了便于理解,一般命名为“领域名+词典内容+词典词性”,如“music_want_verb”
  • 类别:用于分类词典,一般为领域名domain
    • 为了便于管理,不同领域之间不共用词典,如需使用,新建词典

3.新增词条:新增词典后,点击“进入词典”

进入词典后,可以选择三种导入方式,新建词条、批量导入、批量添加

新建词条:新建单个词条

批量添加:新建多个词条,词条间用回车隔开

批量导入:通过文件形式导入词条,仅支持csv格式

示例:global_willing_please词典的导入文件

4.新增节点:配置完词典后,进入NLP配置—场景对话—文法配置—进入领域—进入意图,点击“+节点”,添加节点

每个词典都需要添加节点,添加完节点的图示如下

设置关联词槽部分,按需新建词槽slot

词槽名为需要获取的关键词类型,例如需要获取的是歌手名,则词槽可以命名为singer

5. 添加文法规则:点击需要的节点,设置节点出现的次数,是否需要关联词槽,创建文法

例如,歌手名是需要取值的词槽,则设置slot

保存文法规则

  • 带*号的:非必现节点,例如,“want”和“listen”是非必现节点,query“陈粒的歌”也可以命中
  • 不带*号的:必现节点,例如,“singer”“的”“song”是必现节点,query必须包含“陈粒的歌”才能命中
  • 绿色的:带词槽的节点

这篇文章是否有帮助?

0