视频教程 > NLI模块例句解析

Music 例句语法解析(上)

olami     2017-12-14 09:43


以下为视频内容文字版:

大家好,欢迎观看欧拉蜜教学视频,今天这节课我们要讲解的 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}>   表示查询专辑的意图。


以上这些就是这节课的全部内容,感谢大家观看,我们下节课再见。

Copyright © 2017 威盛电子股份有限公司. All rights reserved   |   意见反馈