关于基于规则方法的反思【连载5】
(2012-09-19 12:48:05)
标签:
基于规则的方法规则伪歧义大规模语料真实语料杂谈 |
【问6】有一种意见说,基于规则方法会造成大量的“伪歧义”,导致计算机凭空增加很多处理负担,无法有效处理大规模真实语料。是这样吗?
【答】所谓“伪歧义”,就是实际上人不觉得有歧义、但按照特定规则体系的分析却有歧义的结构。如果出现这种情况,只能说明该规则体系含有缺陷,而并不说明基于规则方法必然造成这种缺陷。
【问7】基于规则方法是不是不适用于大数据量语言信息处理?
【答】基于规则方法的实现,离不开与规则一般形态相对应的计算复杂度限制。上下文无关规则体系的分析效率,最坏情况介于输入文字长度的平方和立方量级之间。上下文相关规则体系的分析效率,最坏情况是NP完全的,也就是说在目前水平下只能是输入文字长度的指数量级。这些都是明确的理论分析结果。基于统计模型的算法,比如隐马尔科夫模型方法,最后归结为一个有特定数据形式的动态规划问题,可以用Viterbi算法在线性的时间内求解。但具有特定限制的上下文无关规则体系,比如LR(k),复杂度也可以达到线性。退一步说,如果把规则体系重新理过,使得有90%以上的概率可以达到线性,9%的概率在平方量级,1%在立方量级,也是可以接受的。即使加入了次范畴信息和相应演算,如果是分析树制导的,在树的每个节点上的操作不超过常数个,数量级依然没有本质变化。所以,问题不在于最坏情形的时间复杂性,而在于时间复杂性在问题复杂性在问题空间上的期望值。更关键的,是规则体系对语料的广泛覆盖性和无伪歧义性。这些问题,比空对空地分析基于规则方法的时间复杂性要重要得多。
【问9】基于规则方法是不是不适用于真实语料?
【答】如果把真实语料和语言学教材中的语料相对照,可以发现最大的差别有两点:一个是真实语料的规范性较差,经常出现不规范、非预期的搭配和套用;另一个是真实语料的完整性较差,真实语料经常缺少一些看起来必备的成分。对于汉语而言,逗号的功能与西方语言差别甚大,各种缺少“必备成分”的小句、支句在逗号的分隔下一逗到底,给汉语跨逗号句法分析增加了难度。但是,大部分情况下,被逗号分隔的小句、支句其实都可以视作单句,只不过是缺少一些必备成分的单句。这些必备成分可以通过跨逗号的篇章分析方法予以还原。所以,只需要讨论不规范和不完整两种情况即可。