最佳优先算法可以提高句法分析器的效率而不影响其准确率。在此将探讨一个简单的规则概率计算方法,该方法使用更多的上下文相关词语信息。其思想利用的观察规律为,语法成分中的第一个词语通常都是中心语,并且对其补语规则的概率影响非常大。这就意味着可以采用与第一个词语相关的新方法来计算规则的概率,即PROB(RIC,w)。可以采用下式进行估计:
改进的效果是计算出的概率值与使用的特定词存在着直接的关系。例如,在语料库中,单数名词很少作为名词短语(起始规则为NP→N),而复数名词则很少作为名词修饰语(起始规则为NP→ NN)。给定词语“house”和“peaches”,从这两条规则概率上的差别可以看出这点,如图1所示。如果使用的是上下文无关概率,则规则NP→N的概率为0.14。因此,当输入包含一个复数名词时,这个值低估了该规则的概率;而当输入包含一个单数名词时,这个值又高估了规则的概率。
图1 基于首词的一些规则估计
更重要的是,上下文相关规则可以表达动词不同次范畴的优先级。例如,图1表明,动词为“put”时,规则VP→V NP PP的使用概率为93%;而动词为“like”时,概率值仅为10%。这种差别使得基于这些概率的分析器能取得比上下文无关概率分析器更好的效果。对同前面一样的84个句子进行测试时,上下文无关概率分析器能取得49%的准确率,而上下文相关概率句法分析器的准确率为66%,对其中的14个句子能正确地解决附着问题,而上下文无关分析器均处理失败。查找句子“The man put the bird in the house”的正确解释时,上下文相关概率句法分析器的效率也要比无关分析器好,只须生成36个成分。图2总结了这三种句法分析策略的最终结果。
图2 不同句法分析策略准确率和效率的总结
为什么上下文相关句法分析器能取得更好的效果呢?为了了解这个原因,我们来看看分析器如何在两棵句法分析树之间选择正确的附着关系,如图3所示。其中,处理的动词是“like”和“put”,它们所在的句子分别为“The man put the bird in the house”和“The man likes the bird in the house”。上下文无关概率句法分析器将两者分析为同一个结果,其中“put”例子的分析是正确的,而“ like”错误。图4和图5分别给出了相关的部分chart图。在图4中,规则VP→V NP PP的第一个词为“put”时,概率为0.93。由此,可以生成语法成分VP6840,其概率为0.54(0.93*0.99*0.76*0.76)。另一个成分VP6828的概率为0.0038,VP6840的概率比它要大得多。将动词改为“like”对这些概率影响很大,句法分析器会推翻原来解释为V-NP-PP的倾向,如图5所示。在这个例子中,规则VP→V NP PP的第一个词为“like”时,概率仅为0.1,而规则VP→VNP的概率为0.9。因此,这使得VP6883的概率为0.1,并战胜了其他的候选结果。