以下是视频内容文字版:
大家好,欢迎使用欧拉蜜人工智能开放平台。之前我们在《 Slot 的类型》这节课里为大家介绍什么是 slot,以及 slot 的命名规则和 slot 的5种类型。今天这节课我们将为大家介绍 slot 的引用。Slot 主要有以下四种引用方式:
-
一般引用方法
-
引用并直接赋值
-
引用并间接赋值
-
引用并追加赋值
一、 般引用方法
在任何语法中引用一个已定义的 slot,需要用<>包覆 slot 的名称。
<slot_name> |
例:
slot名称=device
slot类型:internal
某个 grammar 中引用名称为 “device” 的 slot:
调节<device> |
二、 引用并直接赋值
在任何语法描述中引用一个已定义的 slot 并在引用时直接赋值,需要用 <{ }> 包覆 slot 的名称,并以 = 给值。
<{slotname=value}> |
若要支持 有条件给值,即当某个 rule 被匹配时才替 slot 赋值,可以加上 rule 的名称。
<rule_name{slot_name=值}> |
或者
<rule_name><{slot_name=值}> |
例:
rule 名称:light
rule 内容:光线|灯光|光强
slot 名称:device
slot 类型:internal
在某个 grammar 中引用名称为 “device” 的 slot,并赋予 “灯” 这个值:
调节<{device=灯}> |
若要在某个 grammar 中引用名称为 “device” 的 slot,并在名称为 “light” 的 rule 匹配时才赋予 “灯” 这个值:
调节<light{device=灯}> |
或
调节<light><{device=灯}> |
三、 引用并间接赋值
间接赋值必须是有条件给值的逻辑,搭配 rule 使用。
在任何语法描述中引用一个已定义的 slot 并在引用时间接赋值,需要用 <{ }> 包覆 slot 的名称,并以 =$ 表示以实际输入的值来赋值。
<rule_name{slot_name=$}> |
间接赋值仅支持这一种描述方式。
例:
rule 名称:mountain_rule
rule 内容:黄山|泰山|嵩山|华山|衡山
slot 名称:mountain_slot
slot 类型:internal
若要在某个 grammar 中引用名称为 “mountain_slot” 的 slot,并在名称为 “mountain_rule” 的 rule 匹配时才将该 rule 匹配后的实际字符串传递给 slot:
<mountain_rule{mountain_slot=$}>有多高 |
在此示例中,若输入的语料是 “黄山有多高” 时,mountain_slot 的值是 黄山;若语料是 “泰山有多高”,则 mountain_slot 的值会是 泰山。
四、引用并追加赋值
Slot 追加赋值即将 slot 值和需要追加的内容叠加起来,然后重新赋值给 slot。
针对Slot直接赋值规则和间接赋值规则有两种叠加方式。
Slot 直接赋值的追加:
<{slotname+=value}> |
Slot 间接赋值的追加:
<rulename{slotname+=$}> |
1、 直接赋值的追加
格式:
<{slotname+=value}> |
示例:
Ext slot:yima
Rule: <姨>:姨|姨妈|姨娘 <称呼前缀>: 大<{ yima =大}>| (二|2)<{ yima =二}>| (三|3)<{ yima =三}>| (四|4)<{ yima =四}>| (五|5)<{ yima =五}>| (六|6)<{ yima =六}>| (七|7)<{ yima =七}>| (八|8)<{ yima =八}>| (九|9)<{ yima =九}>
Grammar: <打电话给姨妈>:打电话给<称呼前缀><姨><{yima+=姨}> |
当输入的句子是“打电话给大姨”,slot的值为“大姨”,当句子是“打电话给三姨娘”,slot的值为“三姨”。
2、间接赋值的追加
Slot 的赋值可以多次追加。
格式:
<rulename{slotname+=$}> |
示例:
Ext slot:callname
Rule: <称呼前缀>:大<{callname=大}>| (二|2) <{ callname=二}>| (三|3) <{ callname=三}>| (四|4)<{ callname=四}>| (五|5)<{ callname=五}>| (六|6) <{ callname=六}>| (七|7) <{ callname=七}>| (八|8) <{ callname=八}>| (九|9) <{ callname=九}> <称呼后缀>:哥|姐|伯 <称呼>:<称呼前缀><称呼后缀{callname+=$}>
Grammar: <查电话>:查一下<称呼>[的]电话 |
其中 rule “<称呼>”中使用了追加赋值,<查电话>这条语法可以匹配“查一下大哥电话”,这时 slot “callname”的赋值为“大哥”。
当 slot 需要匹配的值有大量重复内容时,追加赋值的方式可以将 rule 词汇通过“加法”组成,而不必将所有需要匹配的值都列出来。
以上就是本节课的全部内容,感谢您的观看!