UNIT2.0模板标注详细说明
松子易 发布于2018-11 浏览:11179 回复:6
10
收藏
最后编辑于2020-09

对话模板标注说明
【功能定位】
通过对模版的标注实现对用户输入文本内容进行解析的能力,可以根据用户标注实现一定的泛化能力。

将模版看作是一组模版片段的组合。模版片段是符合一定规则的语义片段的抽象表达,可由词槽、特征词和特定文本单独或组合而成。模版片段间可以无序,也可以指定相互之间的顺序;还可以指定在该模版中,某一模版片段是否必须存在。用户通过模版的不同用法,可以实现对不同形态的 query 的解析。

【名词解释】
模板:用于表述某一个或某一类特定需求的、抽象的语言表述规则,由一个或多个模版片段组成。

模版片段:符合一定规则的语义片段的抽象表达,如"到","到[目的地]"等。

意图:模板所表述的用户中心需求。如"[D:user_loc][D:user_time]天气"的中心需求是查天气,可表示为"WEATHERINFO"。

词槽:一类词的抽象,用于对意图进行限定和约束的条件;用户可以新建自定义词槽,复用系统词典或者自己上传自定义词典,自定义词槽必须以 user_开头。

特征词:由口语化词、辅助表述词、标点符号等对用户输入的文本内容真实理解无影响的词组成,支持多个,用户可自定义且解析结果中不展示。特征词词表需要用户自己上传或添加。

通配符:可以匹配指定长度的任意字符串;可表示为"[W:0-10]"标识,表示可匹配总字节数在 0 到10之间的任意字符串。注意:一个汉字占两个字节,通配符不要过长,尽量不要在模板片段中只写一个通配符,否则有可能会影响模板的识别效果。

口语化词:unit 自带的识别能力,能识别 query 中对真实理解无影响的词语,用户可以通过自定义特征词的方式对 unit 自带的口语化词识别能力进行补充,其中用户特征词优先级高于口语化词。(暂未开放,将在后续版本中开放)。

模板顺序:模板之间是有序的,越靠前的模板,优先级越高。

模板片段顺序:query 所需满足的一组模版片段之间的相对顺序,在匹配 query 时,位置小的模版片段在位置大的模版片段的左侧,其中位置为 0 表示可匹配 query 中的任意位置。

模板片段是否必需匹配:query 在匹配当前模板时,是否必须存在当前模板片段所描述的局部语义片段。

阈值:query 中可识别部分占总 query 长度的比例为多少时,该 query 可被识别为所标注意图。其中可识别成分包括词槽、特征词;不可识别部分包括模板中通配符覆盖部分、query 中未匹配模板部分中的口语化词、停用词。

解析返回所有词槽:默认选"是",解析返回用户 query 中可以识别的所有词槽。如果选"否",则只解析返回用户 query 中当前模板里插入的词槽。

user_wild_:若需为通配符标注词槽,则必须使用此片段作为词槽的开头。

【使用示例】
精确匹配
特点:准确率高,可匹配 query 范围小

效果:仅可解析完全匹配该模版的 query

a :普通文本
 

我想看电影


阈值:0.7

解析返回所有词槽:是

标注含义解读:上述标注仅可将"我想看电影"这一 query 解析为 MOVIE 意图,无词槽

说明:该标注可定义某个特定 query 的解析结果,它的优先级不受模版间优先级限制,其优先级高于所有其他模版

b: 词槽 + 普通文本
标注意图:WEATHER_INFO

标注模版:

模板片段 位置 必须匹配 [D:user_loc][D:user_time]天气如何 0(默认) 是(默认)

阈值:0.7(默认)

解析返回所有词槽:是

标注含义解读:上述标注表示可以将所有满足"[地点]+[时间]+天气如何"这一规则的 query解析为.WEATHERINFO意图。如"北京今天天气如何","天津明天天气如何"等。其中"[D:user_loc]"词槽需要复用地点的系统词槽,表示所有地点组成的集合,"[D:user_time]"词槽需要复用时间的系统词槽,表示所有时间描述组成的集合。

说明:该标注仅能对满足该模板的所有用户输入文本内容生效

注意:当一条模版片段开头和结尾部分分别有#@start@#和#@end@#限定时,所有其他配置项 ( 位置、必须匹配、阈值,口语化词 )失效,模版仅匹配符合该模版片段所表述模式的query

d : 特征词 + 词槽 + 普通文本
标注意图:WEATHERINFO

标注模版:

模板片段 位置  位置必须匹配 [D:kw_wantkey][D:user_loc][D:user_time]天气如何  0(默认) 是(默认)

阈值:0.7(默认)

解析返回所有词槽:是

标注含义解读:该模版新增了特征词,且该特征词不会展示在解析结果中。若[D:kw_wantkey]特征词中包含词汇"我想查",则上述模板可匹配"我想查北京今天天气如何"、"我想查天津明天天气如何"等。

说明:[D:kw_wantkey]属于用户自定义的特征词,特征词名和特征词词典都需要用户自定义,与词槽唯一区别就是解析结果中不会展示。

e :通配符 + 特征词 + 词槽 + 普通文本
标注意图:WEATHERINFO

标注模版:

模板片段 位置  位置 位置必须匹配 [W:0-10][D:user_loc][D:user_time]天气如何 0(默认) 是(默认)

阈值:0.7(默认)
解析返回所有词槽:是

标注含义解读:该模版新增了通配符,上述标注表示可以将所有满足"***+[城市]+[时间]+天气如何"这一规则的文本内容解析为 WEATHERINFO 意图,但是可通配的字符串总字节数为0-10之间(一个汉字是两个字节)。如"帮我查下北京今天天气如何","查查北京今天天气如何吧"等。

说明:通配符、特征词、词槽、普通文本用户可根据需要任意组合,不限定组合顺序。

泛化匹配
特点:可匹配 query 范围大(可减少模板的配置工作量),准确率由用户配置决定。

功能:可匹配所有符合该模版描述规则的 query。

a :唯一模版片段
标注意图为:LOC

标注模版为:


阈值:0.7

解析返回所有词槽:是

标注含义解读:该模版可匹配满足以下条件的 query:

query 必须包含[地点]
不可识别成分比例小于 0.3(1 - 阈值)
说明:用户可根据实际应用场景设置阈值

b :多个模版片段
标注意图:WEATHERINFO

标注模板:

阈值为:0.7

解析返回所有词槽:是

标注含义解读:该模版可匹配满足以下条件的 query:

query 必须包含"[地点]"、"[时间]"和"天气
"[地点]"、"[时间]"和"天气"三者之间顺序不做限制
不可识别比例小于 0.3(1 – 阈值)
说明:该标注可覆盖以下精确匹配模板

#@start@#[W:0-*][D:user_loc][W:0-*][D:user_time][W:0-*]天气[W:0-*]#@end@#
#@start@#[W:0-*][D:user_time][W:0-*][D:user_loc][W:0-*]天气#@end@#
#@start@#[W:0-*][D:user_loc][W:0-*]天气[W:0-*][D:user_time][W:0-*]#@end@#
#@start@#[W:0-*][D:user_time][W:0-*]天气[W:0-*][D:user_loc][W:0-*]#@end@#
#@start@#[W:0-*]天气[W:0-*][D:user_loc][W:0-*][D:user_time][W:0-*]#@end@#
#@start@#[W:0-*]天气[W:0-*][D:user_time][W:0-*][D:user_loc][W:0-*]#@end@#
的所有功能,且 query中除[城市]、[时间]和"天气"及停用词、口语化词外,不可识别成分比例不得大于 0.3(1 - 阈值)

c :可设置模版片段间顺序及必须匹配
标注意图:ROUTE

标注模板:


阈值为:0.7

解析返回所有词槽:是

标注含义解读:该模版可匹配满足以下条件的 query:

query 中必须包含"[到达词]"、"[目的地]",且在 query 中到达词必须在目的地前面
query 中可以没有"出发地"
若 query 中有"[出发地]",则"[出发地]"、"[到达词]"、"[目的地]"之间相对位置必须为"[出发地] -> [到达词] -> [目的地]"
不可识别成分比例不得大于 0.3(1 - 阈值)
说明:该标注可覆盖以下精确匹配模版

[W:0-*][D:kw_to][W:0-*][D:user_end][W:0-*]
[W:0-*][D:user_start][W:0-*][D:kw_to][W:0-*][D:user_end][W:0-*]
的所有功能,且 query中除"[出发地]"、"[到达词]"、"[目的地]"及停用词、口语化词外,不可识别成分比例不得大于 0.3(1 - 阈值)

d :模版片段支持通配符
标注意图:ROUTE

标注模板:


阈值为:0.7

解析返回所有词槽:是

标注含义解读:该模版可匹配所有满足以下条件的 query:

query 中必须存在满足"[D:kw_to][W:0-4][D:user_end]"模式的片段
"[D:kw_to]"与"[D:user_end]"之间,仅允许存在 0-4 个其他字符
query 中可以没有"出发地"
若 query 中有"[出发地]",则"[出发地]"、"[到达词]"、"[目的地]"之间相对位置必须为" [出发地] -> [到达词][W:0-4][目的地]"
不可识别成分比例不得大于 0.3(1 - 阈值)
说明:该标注可覆盖以下精确匹配模板

#@start@#[W:0-*][D:kw_to][W:0-4][D:user_end][W:0-*]#@end@#
#@start@#[W:0-*][D:user_start][W:0-*][D:kw_to][W:0-4][D:user_end][W:0-*]#@end@#
的所有功能,且 query中除"[出发地]"、"[到达词]"、"[目的地]"及停用词、口语化词外,总的不可识别成分比例不得大于 0.3(1 - 阈值)

e :模版片段中位置可设置为0(任意位置)
标注意图:NEARBY

标注模板:

阈值:0.7
解析返回所有词槽:是

标注含义解读:该模版可匹配满足以下条件的 query:

query 中必须存在[附近词]和[查询目标],且 query 中必须存在[附近词]在[查询目标]之前的
片段

query 中可以没有[推荐词],若有,[推荐词]的顺序可以在 query 中任意位置
不可识别成分比例不得大于 0.3(1-阈值)
说明:该标注可覆盖以下精确匹配模板

#@start@# [W:0-*][D:kw_recomm][W:0-*][D:kw_nearby][W:0-*] [D:user_target][W:0-*]#@end@#
#@start@#[W:0-*][D:kw_nearby][W:0-*][D:kw_recomm][W:0-*][D:user_target] [W:0-*]#@end@#
#@start@#[W:0-*][D:kw_nearby][W:0-*][D:user_target][W:0-*][D:kw_recomm][W:0-*]#@end@#
的所有功能,且 query 中除[推荐词]、[附近词]和[查询目标] 及停用词、口语化词外,总的不可识别成分比例不得大于 0.3(1-阈值)

f :#@start@# 和 #@end@# 可出现在不同的模版片段中
标注意图:URL

标注模板:


阈值:0.6

解析返回所有词槽:是

标注含义解读:该模版可匹配以 http 开头,以 com 结尾且 http 和 com 之间存在 movie 字符串的query,其中不可识别比例不得大于 0.4(1 – 阈值)

说明: #@start@#仅可在模板开头出现,#@end@#仅可在模板结尾出现,在模板中 #@start@# 和 #@end@#分别最多只能出现一次,且允许出现在同一模板中

g : #@start@# 和 #@end@# 可单独出现在模版中
标注意图:EMAIL

标注模板:


阈值:0.6

解析返回所有词槽:是

标注含义解读:该模版可匹配以 com 结尾,可能包含字母和数字的 query,其中字母和数字之间顺序不作限制,但字母和数字必须在 com 前面,其中不可识别比例不得大于 0.4(1 – 阈值)

说明:位置相同的模版片段之间无序,位置小的模版片段在匹配时必须在位置大的模版片段前面。

h :模版中可以对通配符设置词槽
若模板中需要对通配符[W:*-*]标注词槽,则可通过如下方式实现:

新建词槽"user_wild_***"(词槽名称必须以此开头),上传词表,其中仅包含一条词条"W:*-*"(此处*可替换为任意数字,但第二个数字必须大于第一个数字)

此后,在标注模板时,即可使用该词槽,使用方式同普通 user_***词槽。

标注意图:MESSAGE

标注模板:

其中[D:user_per]为自定义词槽,复用了人物的系统词典。


阈值:0.7

解析返回所有词槽:是

标注含义解读:该模版可匹配 query:"给刘德华发短信说你的歌唱得很好听","给张学友发短信说你上次开的演唱会很棒"等 query

说明:此种标注方式支持对模板中的通配符标注词槽,词槽值内容不限,仅对长度有限制,长度即上传的 user_wild_***词表中词条 W:*-*表示的长度

【模版片段标注说明】

1. 模版片段由以下几类元素构成:
a. 普通文本

即不包含"[D:"、"[W:"、"]"、":"的文本,例如"我想看";
b. 词槽或特征词

格式为[D:词槽名]或[D:特征词名],例如"[D:user_movie]"或"[D:kw_wantkey]";
c. 通配符

格式为[W:自然数-自然数],第一个自然数≤第二个自然数,例如"[W:0-10]";
d. 词槽加词槽值

格式为[D:词槽名:普通文本],例如"[D:user_movie:星际穿越]";
2. 模版片段整体格式要求如下:
模版片段可以由元素 a、b、c 自由组合,可以由元素 d 组合,也可以由元素 a、d 自由组合,
除此之外,其他组合形式都是非法的;

元素 b 和 d 中的词槽名/特征词名必须是用户在该场景下已配置的词槽或特征词;
模版片段中,"[D:"及后面连着的片断必须符合元素 b 或 d 的格式,"[W:"及后面连着的片断必须符合元素 c 的格式。
3. 合法模版片段的示例:
我想看星际穿越

[D:user_movie]

[W:2-10][D:user_movie:星际穿越]

我想看[D:user_movie]

我想看[D:user_movie][D:user_version]

我想看[W:0-10]

我想看[W:1-10]的[W:2-8]

我想看[D:user_movie]的[W:2-8]

我想看[D:user_movie:星际穿越]

我想看[D:user_movie:星际穿越][D:user_version:二]

4. 非法模版片段的示例:
我想看[D:user_movie:星际穿越][W:0-10]

我想看[D:user_movie:星际穿越][D:user_movie]

我想看[D:abcdefg]

我想看[W:0~10]

【对话模板导入模板说明】
【离线文件导入格式】

ROUTE 0.8 [D:user_start]#@##1#@##0#@@##[D:kw_to]#@##2#@##1#@@##[D:user_end]#@##3#@##1 1
WEATHERINFO 0.8 [D:user_loc]#@##0#@##1#@@##[D:user_time]#@##0#@##1#@@##天气#@##0#@##1 0
【示例第一行格式解读】

其中上例中 ROUTE 表示当前模板意图,0.8 表示阈值,使用#@@##分割模板中的多个模板片段,#@##分割每个模板及其属性,最后的 1/0 表示是/否在解析结果中返回所有可以识别的词槽

则上例中,第一行模板有三个模板片段:

[D:user_start]为第一个模板片段,1 表示顺序,0 表示非必填[D:kw_to]为第二个模板片段,2 表示顺序,1 表示必填[D:user_end]为第三个模板片段,3 表示顺序,1 表示必填

【格式说明】

每行编辑一个对话模板,上传模板时需上传模板对应意图及阈值约束,置于行首,模板中模板片段间用#@@##分割,每个模板片段有顺序、是否必填属性,这两种属性与模板片段间用#@##分割
tab 键用于分割意图、阈值和模板片段组,切勿使用空格分割
模板间排列顺序会影响优先级,首行模板优先级最高,编写时请注意模板排序。
是否返回所有可以识别的词槽,如果不写,导入时会默认填写 1。
【注意】
导入模板是覆盖导入(因为模板之间的优先级是通过模板顺序决定的),所以如果要线下调整模板,请先下载模板,修改后在全量覆盖导入;
导入模板时要确保模板文件中每个模板的意图、词槽、特征词在当前 BOT 里已有定义,否则会导入失败;
模板中若存在多个模板片段,则暂不支持"[D:user_loc:北京]"这样写死词槽值的标注形式;
若模板片段中不包含"#@start@#"或"[#@end@#]",则 query 中有符合模板的片段就可匹配;若有"#@start@#"和"#@end@#",则 query 必须整体完全符合模板片段才能匹配。

收藏
点赞
10
个赞
共6条回复 最后由Ceaser007A回复于2020-09
#8Ceaser007A回复于2020-09

能否讲解下,配置模板后的匹配逻辑是怎样的,是字符串匹配、NER结合还是怎样?

1
#7松子易回复于2019-02
#5 autofish2012回复
通配符讲得不明不白,“给刘德华发短信说你的歌唱得很好听”样例跑不通

非常抱歉给您造成的不便,文档已经更新过了,建议您再看一看,如果还有疑问,可以加入UNIT的客服QQ群805312106,有专门的客服同学给您答疑。

0
#5autofish2012回复于2019-02

通配符讲得不明不白,“给刘德华发短信说你的歌唱得很好听”样例跑不通

0
#4autofish2012回复于2019-02

讲得不明不白

1
#3用户已被禁言回复于2018-11

通配符设置还是不太清楚。。。

0
#2伊茨米可回复于2018-11

后续UNIT各种功能的使用教程都将以论坛帖形式提供,欢迎大家讨论

0
TOP
切换版块