以下为视频内容文字版:
大家好,欢迎观看欧拉蜜教学视频,今天这节课我们要讲解的 music 模块的上篇。以下是本节课要讲解的例句:
一、你能放歌吗
二、你会唱梁静茹的歌吗
三、你支持哪些音乐类型
四、你会唱英文歌曲吗
五、放几首儿歌
六、我要听经典老歌
七、其他支持例句
一、 你能放歌吗
Grammar:<t_能不能_会不会_短句(<唱歌>)><{@=can}>
名称:问播歌能力_1
类型:语义
它的 grammar 由一条 template 和一条 modifier 组成,我们来具体看下它们的内容:
Template:
<t_能不能_会不会_短句>:[=短句=][<你>](能|会|可以)[<帮我>]$(短句)(吗|吧|不)|[你](能(不能|否)|会不会)[<帮我>]$(短句)|$(短句)<你>(会不会|会吗)
在这条 template 里涉及到了两条 rule:
<你>:你|您
<帮我>: (帮|替|给)(我|俺)
然后当我们引用这条 template 的时候,它要传递的参数值是:<唱歌>,它是一条 rule:<唱歌>:唱歌|播<歌_音乐>|放<歌_音乐>|播放<歌曲_音乐>这条 rule 里也包含了其他的rule:
<歌_音乐>:歌|音乐
<歌曲_音乐>:歌曲|音乐
除此之外,我们的 grammar 还引用了一条 global modifier:<{@=can}>,表达能,可以的意图。那么,我们的这条 grammar 可以匹配的语料有:
你能放歌吗
你能不能帮我播音乐
你会不会放歌
……
二、 你会唱梁静茹的歌吗
Grammar:<t_能不能_会不会_短句(<唱singer的歌>)><{@=can}>
名称:问播歌能力_6
类型:语义
它也是由 template 和 modifier 组成的,我们来看下具体内容:
Template:
< t_能不能_会不会_短句>: [=短句=][<你>](能|会|可以)[<帮我>]$(短句)(吗|吧|不)|[你](能(不能|否)|会不会)[<帮我>]$(短句)|$(短句)<你>(会不会|会吗)
在这条 template 里涉及到了两条 rule:<你>、<帮我>,和第一个例子一样。
然后当我们引用这条 template 的时候,它要传递的参数值是:<唱singer的歌>,它是一条 rule。
Rule:
<唱singer的歌>:唱<singer的歌>
<singer的歌>: <singer>的<歌_歌曲>|<xx的歌{name=$}>
<歌_歌曲>:歌|歌曲
<xx的歌>:我们的歌|一首简单的歌|寂寞的人伤心的歌|张三的歌
Ext Slot:<singer>
<name>
<singer> 是一条 ext slot ,可以匹配任意的歌手。除此之外,在这里,我们还使用了 slot 的引用并间接赋值规则:<xx的歌> 是一条 rule,我们引用并且赋值 ext slot : name这个规则它规定,只有当 rule 它被匹配上的时候,才会赋值 slot 相同的内容,比如说,当“我们的歌”,被匹配上的时候,slot 的值也是:我们的歌。最后,我们还为 grammar 添加了一个 modifier:<{@= can}> ,来表示“能、可以”的意图。
那么,这条 grammar 可以匹配的语料有:
你会唱梁静茹的歌吗
你能不能唱王力宏的歌
唱我们的歌你会吗
……
三、 你支持哪些音乐类型
Grammar:你支持哪些<歌曲_音乐>(分类|类型)<{@=can_which_type}>
名称:问支持的歌曲类型_2
类型:语义
这条grammar比较简单,来看下它引用的内容:
Rule:
<歌曲_音乐>:歌曲|音乐
Modifier:
<{@= can_which_type}>
它能匹配的语料有:
你支持哪些音乐类型
你支持哪些歌曲分类
你支持哪些音乐分类
……
四、 你会唱英文歌曲吗
Grammar:<t_能不能_会不会_短句(<唱language歌>)><{@=can}>
名称:问播歌能力_9
类型: 语义
它的句子很简单,是由 template 和 modifier 组成的。我们来看下具体内容:
Template:
<t_能不能_会不会_短句>: [=短句=][<你>](能|会|可以)[<帮我>]$(短句)(吗|吧|不)|[你](能(不能|否)|会不会)[<帮我>]$(短句)|$(短句)<你>(会不会|会吗)
在这条 template 里涉及到了两条 rule:<你>、<帮我>,和前面的例子一样。
然后当我们引用这条 template 的时候,它要传递的参数值是:唱<language歌曲_音乐>,它里面还有一条rule:
<唱language歌>:唱<language歌曲_音乐>
<language歌曲_音乐>: (<language_赋值>|<language>)<歌_歌曲_音乐>|<place>的<歌_歌曲_音乐>
< language_赋值>:外文<{language=外语}>|英语<{language=英文}>|(华语|国语)<{language=中文}>|日语<{language=日文}>|韩语<{language=韩文}>
<language >:中文|韩文|英文|日文|法文|外语|粤语|俄语|港台|日韩|欧美
<歌_歌曲_音乐>:歌|歌曲|音乐
<place>:亚洲|台湾|(大陆|中国)<{language=中文}>|(国外|外国)<{language=英文}>|法国<{language=法文}>|美国<{language=英文}>|日本<{language=日文}>|(韩国|朝鲜|北韩|高丽)<{language=韩文}>
Internal Slot: language
在这里,可以看到,我们使用了 slot 的引用并直接赋值规则,比如,在< language_赋值>这条 rule 里,我们对“外文”这个词,赋值 slot:language 的值是:外语,那么,当匹配上“外文”这个词的时候,我们就能获取 slot 的值,后面的内容也是一样的作用。最后,我们还为 grammar 添加了一条 modifier:<{@= can}> 。
这条 grammar 可以匹配的语料有:
你会唱英文歌曲吗
你能不能唱粤语歌
唱外语歌曲你会吗
……
五、放几首儿歌(上)
Grammar:<t_帮我唱几首xx听_名词性短语(<type_歌曲_音乐>)><{@=play_song}>
名称:播放歌曲_type_2
类型:语义
我们来看下它引用的内容:
Template:
< t_帮我唱几首xx听_名词性短语>: [=名词性短语=](<请你帮我>|<请你给我>)<唱几首>$(名词性短语)[<来听>|听[听]][吧]|<唱几首>$(名词性短语)[<来给我听>|听[听]][吧]
在这条 template 里涉及到了五条 rule:
<请你帮我>: [<请>][<你>]<帮我>
<请你给我>: [<请>][<你>]<给我>
<唱几首>: (唱|放|播)[[<几>]首|点[儿]]|播放[<几首>]|来([<几>]首|点[儿])|(放|唱)[<几>]个
<来听>:来听[听|[一]下]
<来给我听>:来<给我听>|<来听>|<给我听>
当我们 grammar 里引用这条 template 的时候,它要传递的参数值是:< type_歌曲_音乐>Rule:
< type_歌曲_音乐>: <type_part{type=$}><歌曲_音乐>|<typesong>|<type_歌曲_赋值>
<type_part>:经典|影视|金属|怀旧|胎教|道教|佛教|DJ|摇滚|爱情|校园|革命|古典|流行|动漫
<歌曲_音乐>:歌曲|音乐
< typesong >:经典老歌<{type=经典}>|轻音乐<{type=轻音乐}>|儿歌<{type=儿歌}>|情歌<{type=爱情}>|校园名谣<{type=校园}>|古典音乐<{type=古典}>|爵士乐<{type=爵士乐}>|电子音乐<{type=电子}>|饶舌<{type=饶舌}>|摇篮曲<{type=摇篮曲}>|(流行的<歌曲_音乐>|流行歌)<{type=流行}>
<type_歌曲_赋值>: (放松的|轻快的)<{type=轻音乐}><歌_歌曲_音乐>|(儿童|幼儿)[的]<歌曲_音乐><{type=儿歌}>|(胎教<{type=胎教}>|道教<{type=道教}>|佛教<{type=佛教}>|基督教<{type=基督教}>|天主教<{type=天主教}>)方面的<歌曲_音乐>|(道教<{type=道教}>|佛教<{type=佛教}>|基督教<{type=基督教}>|天主教<{type=天主教}>)的<歌曲_音乐>
Internal Slot: type
在这条 grammar 里,使用了 slot 的引用并直接赋值和引用并间接赋值规则。<type_part{type=$}> 是引用并间接赋值规则,当 <type_part> 这条 rule 被匹配上的时候,slot 才能提取到相应的值。 < typesong >、<type_歌曲_赋值> 这两条 rule 里使用了 slot 的引用并直接赋值,用法和前面的例子一样。最后,我们也给这条 grammar 添加上modifier:<{@=play_song}>,表示“放歌”的意图。
这条 grammar 可以匹配的语料有:
放几首儿歌
请你帮我放一首经典老歌
唱首放松的歌来给我听一听
……
六、 我要听经典老歌
Grammar:<t_我要听_短句([<几首>]<type_歌曲_音乐>)><{@=play_song}>
名称: 播放歌曲_type_1
类型: 语义
这条 grammar 和前面的例子一样,也是由 template 和 modifier 组成,我们来看下引用的内容:
Template:
<t_我要听_短句>: [=短句=](我(想|要|想要)|想)听$(短句)
Rule:
<几首>: <几>首
<几>:一|两|几
<type_歌曲_音乐>:<type_part{type=$}><歌曲_音乐>|<typesong>|<type_歌曲_赋值>
<type_part>:经典|影视|金属|怀旧|胎教|道教|佛教|DJ|摇滚|爱情|校园|革命|古典|流行|动漫
<歌曲_音乐>:歌曲|音乐
<typesong>:经典老歌<{type=经典}>|轻音乐<{type=轻音乐}>|儿歌<{type=儿歌}>|情歌<{type=爱情}>|校园名谣<{type=校园}>|古典音乐<{type=古典}>|爵士乐<{type=爵士乐}>|电子音乐<{type=电子}>|饶舌<{type=饶舌}>|摇篮曲<{type=摇篮曲}>|(流行的<歌曲_音乐>|流行歌)<{type=流行}>
<type_歌曲_赋值>: (放松的|轻快的)<{type=轻音乐}><歌_歌曲_音乐>|(儿童|幼儿)[的]<歌曲_音乐><{type=儿歌}>|(胎教<{type=胎教}>|道教<{type=道教}>|佛教<{type=佛教}>|基督教<{type=基督教}>|天主教<{type=天主教}>)方面的<歌曲_音乐>|(道教<{type=道教}>|佛教<{type=佛教}>|基督教<{type=基督教}>|天主教<{type=天主教}>)的<歌曲_音乐>
Internal Slot: type
Modifier:<{@= play_song}> 和前面的例子一样,在这条 grammar 里,使用了 slot 的引用并直接赋值和引用并间接赋值规则。具体可以参看前面的例子。可以匹配的语料有:
我要听经典老歌
我想听影视歌曲
我想要听儿童歌曲
……
七、其他支持例句(类似第六句)
Grammar:<t_我要听_短句((<language_赋值>|<language>)<歌_歌曲><name>)><{@=play_song}>
名称:播放歌曲_name_language_1语料:我要听粤语歌曲红豆
Grammar:<t_我要听_短句(<singer的歌_singer唱的歌>)>[<你唱给我听>]<{@=play_song}>
名称:播放歌曲_singer_1
语料:我要听王菲的唱片
Grammar:[歌曲]<name>是<singer>[的]哪(个|张)专辑([当]中|里[面])的<歌_歌曲><{@=query_album}>
名称:查专辑_name_singer_1
语料:青花瓷是周杰伦哪个专辑里的歌
前面两个句子虽然内容和第六个例句有点不一样,但句型是相似的,都是由 template 和 modifier 组成,而且都和第六个例句的一样,内容也是查询某首歌。
最后这一个稍微有些不同:<t_我要听_短句(<singer的歌_singer唱的歌>)>[<你唱给我听>]<{@=play_song}> ,它是表示查询专辑的意图;<name>、<singer>都是ext slot ,<name>可以匹配在字数范围限制之内的任意歌曲名,<singer>可以匹配在字数范围限制之内的任意歌手名,modifier:<{@=query_album}> 表示查询专辑的意图。
以上这些就是这节课的全部内容,感谢大家观看,我们下节课再见。