|||
Countless lessons learned over the years in the NLP system development show that a robust real life system should not be too sophisticated just as man should not be too smart. As a rule of thumb, anything involving more than 3 levels of dependency is too delicate. You can "make" it work today, but it will break some day. One recent lesson was my effort to handle Chinese long distance negation and satire in question forms: it seemed to work, but in the end, it created more problems than it solved. Stay simple, stay foolish.
这是本人积30年系统研发教训及经验的一个总结。尤其对于自然语言这样复杂的现象,尤其在容易见木不见林的规则系统的编制中。
人常常自以为聪明,语言学家为甚。在缺少大数据及其工具和平台支持下,再聪明的语言学家也难逃井底之蛙的局限,可我们偏偏以为自己洞察了语言之海。面前就是一例:为了对付远距离否定(否定词“不”、“没有”等不是紧挨着被否定的动词或形容词短语)以及反问句形式的否定等复杂语言现象,笔者精心编制了一批规则。结果如上个帖子所示,在挖掘薛蛮子嫖娼的热点话题时候,挖掘出不少否定嫖娼的情报来,其中约一半是弄巧成拙,还不如不要那套规则(参见:【嫖还是没嫖,这不是语言学的问题】)。
作为一个经验法则,面对 open-ended 的复杂现象,任何依仗因果条件的推导,其依赖条件的嵌套层次不要超过3层。其实就语言本体而论,句法层次的所谓无限递归(recursion)的人类语言能力,由于人脑短期记忆的制约,也大体遵循同样的经验法则:中心递归基本不超过3层,这是可以由统计来证明的。超过了,就应该亮起红灯。一定要克服语言学家那种拍着脑袋(据说语言可以从脑袋产生,与其做语言大数据调查,不如通过内省)去“阿丽斯追兔子”似的一条路走到黑的职业恶习。
以否定式为例,初始的规则是不考虑否定式的,大约有七成现象不涉及否定式(如:iPhone 5 有问题)。把否定带入是第一层(如:iPhone 5 没有问题),这时候应该涵盖约九成有关现象了。如果进一步考虑 double negation 的处理(如:iPhone 5 并非没有问题),算是第二层,那该到九成以上了。再进一步去对付远距离否定(如:我不认为 iPhone 5 没有问题;iPhone 5 没有问题,是不可能的),这就到第三层了。第三层人力还勉强可为,虽然已经很危险了。如果你还不知足藏拙适可而止,还要把系统进一步复杂化去对付远距离否定与反问句交互等复杂现象(如:谁不认为 iPhone 5 没有问题?),你开始越过红线,忘乎所以了。弄巧成拙,聪明反被聪明误,就是为你预备的警句。
Stay simple,stay foolish,此乃金玉良言。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-21 21:59
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社