《立委随笔: 语言学家是怎样炼成的》
精选
已有 7078 次阅读
2012-2-29 23:29
| 个人分类:立委科普 | 系统分类:科普集锦 |
汉语, 语言学, 自动分析, 词典规则, 好不
《立委科普: 语言学家是怎样炼成的》
我们知道,钢铁战士保尔柯察金是在残酷的革命斗争中炼成的。我要说:语言学家是在 瞎琢磨中炼成的。下面这个故事就是证明。 《立委说文解字:好,好不?》 语言现象中,有逻辑的成分,也有不逻辑的成分:约定俗成是语言的天则,只要语言共同体认可,逻辑不逻辑不是问题。前不久跟朋友聊天就聊到了这样一个现象。 朋友说:你是做NLP(自然语言处理)的,汉语是不是特别难做? 我说:亦难亦不难,要看谁做了。要是我全心去做,那就不难,=)连欧洲语言我都弄服帖了,到了母语我还不能驾轻就熟?(哈,一不留神,吹起牛来了:正做得上瘾呢,想不吹都难。) 朋友于是问:那比如汉语中不逻辑的现象。否定式当作肯定用,譬如 “好不高兴”实际上等价于“好高兴”,你怎么处理? 我笑道:这是个小 case 啦,记住,对于NLP,凡是可枚举的语言现象,统统不是问题(【 成语从来不是问题 】
),因为电脑擅长的就是记忆,可枚举的现象全部扔进海量词典即可。具体到你说的这个现象也是如此。我们知道,程度副词(很/太/极/真/顶/忒/极为/非常 等)可以修饰形容词,它的否定式之一加上一个否定词“不”即可,这条规则是逻辑的,compositional 的语义叠加:
肯定式:程度副词 + 形容词
否定式:程度副词 + 不 + 形容词
如: 很高兴 / 很不高兴 非常漂亮 / 非常不漂亮 现在我们遇到了一个反例,就是作为程度副词的 “好” (顺便一提:“好”通常是形容词,但是在口语中也可以做程度副词用),其否定式 “好不” 不遵循上述规则,否定肯定说的都是一个意思(语言真地不讲道理,这肯定否定怎么能一样呢?没办法,语言这个monster本身就是不讲理的事儿,你最好服从,没法反抗)。怎么办呢?简单,就把它放到词典里面去,把“好不”作为“好”的同义词即可,用法是位于形容词前: 肯定式:好 + 形容词 = 好不 + 形容词
(这是所谓词典个性规则,因为这条规则是由两个具体的词“好”/“好不”驱动的) 好开心 = 好不开心 好漂亮 = 好不漂亮 好恶心 = 好不恶心 自以为得意,心想这样的问题太容易了,扔进词典标注清楚就完事:整个的文法规则系统一点儿也不要变动。汉语处理中确实有一批真正的难题(等以后找机会再另文专谈汉语分析的挑战性),但这种封闭类的现象不是。 本来此事就算了结了,我也顺手把“好不”加进了系统,问题似乎解决了。可是我这个人没什么其他爱好,没事就爱瞎琢磨语言。回答完朋友的问题后,一路还在顺着这个问题想。真所谓,天下本无事,就怕瞎琢磨。这一琢磨,问题来了。 上面这个对例外“好不”的解决方案原来还有例外,真是应验了那句老话:对于自然语言,可以说是无一条规则没有例外,无一条例外不是规则。这个例外发生在形容词“容易”前:虽然 好容易 = 好不容易,但是它们却不是肯定的语义:“好不容易见到你”,说的是不容易见到;“好容易见到你”,说的也是不容易。 怎么办呢?easy,记住:凡是个性的、可枚举的现象,对于电脑就不是问题。既然其他形容词与“好不”搭配都没有问题,只有“容易”才有问题,就把这种搭配放进词典不就完了吗: 否定式:好不容易 = 好容易 (语义结论:“容易”的否定式+强调语气) 兵来将挡,水来土囤。我几乎得意了自己的天才。 我于是把“好容易”/“好不容易”请进了词典,这事就这么过去了-- 直到昨天。昨天不知道是什么trigger的,我又鬼使神差地琢磨起来。天下本无事,就怕瞎琢磨。这一琢磨,问题又来了。原来, “好(不)容易” 并不那么容易,也不总是表示否定,如下面这个对比的句例: 否定式:好不容易(才)见到你 = 好容易(才)见到你 肯定式:这个问题好容易啊 ≠ 这个问题好不容易啊。 这是怎么回事呢?原来,“好容易” 有时候强调的是“不容易”,有时候却强调 “容易”。在表示“不容易”的时候,它等价于“好容易”:好容易见到你=好不容易见到你。但是,在表示“容易”的时候,其否定式“好不容易”却不再等价于其肯定式 “好容易”,而是遵从否定式的共同规则:“这个问题好容易啊” 说的是“容易”,而 “这个问题好不容易啊”,说的却是“不容易”(困难)。 怎么办?easy,可枚举现象只要人能分析清楚其用法的条件,扔进词典即可。具体说,这词典的相关个性规则就是: 1. 否定句型:好容易+VP(动词短语)= 好不容易+VP 2. 肯定句型:NP(名词短语)+ 好容易 3. 否定句型:NP + 好不容易 Wow,这么个破词折腾了这么大一圈儿。好在罗嗦是罗嗦,终于搞定了,也实现在正研发中的中文系统里。Everything works perfectly -- until now, at the time of writing this post: 瞎琢磨的毛病又犯了,这次想到的是与“好”有关的另一个个案现象,就是“好坏”,表述如下: “好” 的一个插曲是,当 “好” 遇到 “坏” 的时候(when a girl meets a boy),在通常的正反形容词并列结构的逻辑或意义之外,e.g【无论】好坏=好或坏;大小(=大还是小)【不是问题】,也一样有程度副词的语义,imagine 你要吃豆腐时你女友的娇嗔:你好坏! 电脑实现起来就是放进专家词典,其词典规则就是: 【“好坏”规则:(1)承继【“好”规则】,好坏=很坏:通常用作谓语;(2)形容词并列结构,常与连词【无论】等搭配,做主句的让步状语】 生命不息,瞎琢磨不止,如果你是语言学家。如果你读到这儿嫌烦了,你就做不了语言学家。这比真假马列主义的试金石还灵。如果你读此文津津有味,而你并不是语言学家,只能对你表达遗憾,本来是语言学家的材料,一定是年轻时不小心入错行了,错过了语言世界的大好风光。 突然想到:汉语怎么这么磨人啊,规则有例外,大例外里面还套着小例外?我们是 native speakers,可能不觉得,要是洋鬼子来学,他们会不会诅咒这个据说是博大精深的东方语言怪物啊?幸好,我们现在有电脑,电脑不懂得抱怨,只要你教它,它就永远记住,讨厌的例外反而是它的拿手好戏。
【后记】为避免“瞎琢磨”引起的误导,特说明如下。本文 所谓瞎琢磨,只是强调作为语言学家的语言敏感性。事实上瞎琢磨不仅不是工业开发的“正道”,而且可能引入歧途。笔者见过被语言学家 “过度开发” 的系统,其结果是低效率,系统没必要的庞杂,维护费用高,甚至不堪使用。系统开发的正道应该是数据制导(data-driven,怎样实施数据制导,里面很有讲究):由数据而不是拍脑袋来引导系统开发。绝不能由着语言学家瞎琢磨的性子来 。正确的理解是,本文的 “瞎琢磨” 自嘲大于自夸,调侃在我们这些“迂腐”的语言学家身上常见到的执着和痴迷。实用系统的规则编制,一定要遵循投入产出的原则,不能事无巨细,面面俱到地穷举。做到这一点的一个办法就是利用机器学习把统计上最有价值的现象粗略筛选提供给语言学家,避免他们走入死胡同,做无用功或低效功。
[附:围脖的有关留言讨论]
鲁鹏一 :这不能依靠着人工穷举,而是需要有能够处理句法结构上的机器学习算法,如果有了这一个,才能在机器识别遇到困难时,再编辑规则。这样可以在大语料的基础上,保证规则的完整性和可行性//@算文解字 : 规则-专家词典,看上去是个简单有效的办法。但人工穷举,会不会出现低覆盖率的瓶颈?如果有,如何克服 (3月1日 18:25)
米拉宝鉴 :从规则系统角度看,低覆盖率的问题可以由共性规则去解决。专家词典是解决低准确率的问题。语言系统因此成为一个hierarchy。理论上,低覆盖率的问题可以由机器学习去做,这样一个规则与学习的混合系统,可以发挥规则的高精度的长处,也可以发挥学习高覆盖率的长处。实际做起来,这话就长了 (3月1日 21:21) 删除 | 回复
鲁鹏一 :回复@米拉宝鉴 :求数据制导的方法或思路,这实际上是现在汉语语言处理的难点,如果能够机器识别句子的结构,确实就可以进行制导了。 (3月1日 21:07 )
【置顶:立委科学网博客NLP博文一览(定期更新版)】
回复
转载本文请联系原作者获取授权,同时请注明本文来自李维科学网博客。 链接地址: https://blog.sciencenet.cn/blog-362400-542678.html
上一篇:
李神童(神汉?)说 de 理儿 下一篇:
有感于海云的【在美国的生存线上挣扎的中国文艺人】