教学篇:
操作篇:
成果篇:
以下是视频内容文字版:
大家好,欢迎观看欧拉蜜教程视频。今天这节课我们要为流行语“没想到你是这样的”来编辑几种不同的语法表达。
一、基础语法
语料:没想到你是这样的
Grammar:没想到你是这样的
这种写法比较简单,grammar 的内容完全和语料一样,grammar 能匹配而且也只能匹配这一条语料。不过,我们在说话的时候,同一个意思的句子,也会出现多种表达,比如说“没想到你这是这样的”,我们还可以说:
没有想到你是这样的 俺没有想到你是这样的人 我真的没想到你是这样子的 实在是没想你是这样的 没想到你居然是这样的 没想到你竟然是这样子的 没想到你竟是那样的人 …… |
它们看上去不同,但是要表达的意思是一致的,我们就可以来撰写一条 grammar,让它可以匹配上这里所有的语料。通过观察我们可以发现,“俺”和“我”是同一个意思;“真的”、“实在是”都可以表示程度,“居然”、“竟”、“竟然”的意思相近;“这样”、“那样”都是指代词。
我们就可以把这些意思相近或者是同一类型的词都集合在一起并列起来,添加到我们的 grammar 里。
Grammar:[俺|我][真的|实在是]没[有]想到你[居然|竟[然]]是(这样|那样)[子]的[人] |
对于句意没有影响而且不一定会出现的词,我们就用“[]”来包覆,让它成为可选;一定要出现的词,就用小括号来包覆,表示必选。
这种写法比较容易,但是如果语料增多,grammar 里要并列的内容也会增加,这时候 grammar 就会变得很长,我们可以通过另一种方法,也就是添加 rule ,来让它变得简洁起来。
二、添加 rule
我们把并列的那些内容编辑成rule,可以这么写:
<me>:我|俺 <程度词>:真的|实在是 <juran>:居然|竟[然] <指代词>:这样|那样 |
把这些 rule 添加进 grammar 里,grammar 就可以这么写:
Grammar:[<me>][<程度词>]没[有]想到你是<指代词>[子]的[人] |
这样子的话,我们的 grammar 就会显得比刚才要简洁得多,而且后期我们也可以在不改变 grammar 整体结构的情况下,继续为 rule 添加内容,来让 grammar 匹配上更多的语料。
当然,以上这两种语法都是围绕语料“没想到你是这样的”来编辑的,当我们对语料的内容进行进一步的扩充之后,比如增加了一些看不出变化规律的内容,或者给语料带上语境,那么刚才编辑的 grammar 就可能不太适用了,这时候我们也需要对 grammar 再做一些改变。
三、扩充语料:添加 any 规则
来看语料:
我们可能会说, 张三,没想到你是那样的人 李四,我没想到你居然是这样的 也可能会说: 没想到你是这样的支付宝 没想到你竟然是这样的滴滴 没想到你是这样的苹果 …… |
可以发现,这些语料和之前的“没想到你是这样的”有很大的差别,但仔细观察,我们也可以发现,他们还是有共同点的,中心句仍然是:没想到你是这样的,我们可以把前后的内容看作是对这个短句的扩充。但是因为扩充的内容并没有特别明显的规律存在,所以我们可以使用 any 规则。
可以这么写:
<any:1|10> <any:1|15> |
1和10表示可以匹配的字符的长度范围在1到10个字符之间,1和15就是1到15个字符。
我们把 any 规则加入 grammar 里,那么,我们的 grammar 就可以匹配上这里所有的语料了。
Grammar:[<any:1|10>][<me>][<程度词>]没[有]想到你是<指代词>[子]的[<any:1|15>] |
那么,流行语“我觉得不行”几种不同的语法表达到这里就都编辑好了,我们来总结一下:
这三种语法都能匹配我们的语料“没想到你是这样的”,第一种语法写法简单,使用很方便,缺点就是 grammar 会显得很累赘;第二种语法呢,是我们在第一种语法的基础上,把其中的一些内容编辑成了 rule ,再引入 grammar ,这样子 grammar 就要简洁得多了,而且对于我们后期维护也很有用;第三种语法呢,是对前面这两种语法的扩充,当我们的语料涉及的范围更广,它的内容也不太适合编辑成 rule 的时候,就可以采用 any 规则来指代它们。
四、添加答案
在编辑好了之后,我们也别忘了给 grammar 添加几条答案:
1、别这么急着下结论啊,说不定还有隐情呢。
2、惊不惊喜,意不意外。
3、没办法,谁让你这么天真呢。
那么这节课的内容就到这里,感谢大家观看,我们下节课再见。