针对歧义问题,最极端的方法是放弃句子的完整分析,只寻找那些肯定可靠的分析片段。删除通用语法中能导致歧义问题的规则,这个简单的方法差不多就可以实现这种浅层的句法分析器了。例如,如果从语法中删掉下面的规则:
VP → VP PP
NP → NP PP
PP附着问题就从根本上消失了。当然,你也不可能对大多数句子做出完整的分析。采用这种简化的语法,自底向上的chart句法分析器可以生成句子的语法片段序列,从而有助于后续的处理。采用PP修饰规则删除之后的语法,我们可以给出动词短语“saw the man in the park with a telescope”最终的chart图,如图1所示。尽管失去了大量的全局结构,但是所有识别出的局部结构均无歧义,而且chart图包含了大量有用的语法信息。
图1“saw the man in the house with a telescope”浅层分析的chart图
当然,这种方法本身并没有解决歧义问题,只不过是将问题留待语义解释阶段处理。在语义层面上,歧义问题也许更容易解决,因为那时会有更多可用的信息资源。在受限领域的系统中,情况好像就是这样。关于这点,我们需要等到介绍语义解释的时候才能进行深入的讨论。目前,我们先考虑究竟有多少结构能可靠地识别出来。
依据开发这类系统的经验,我们知道某些结构能可靠地识别出来,其中包括:
名词词组——由名词短语组成,从初始的限定词到中间前置修饰语,直到中心名词,但不包括后置的修饰语,如介词短语。
动词词组——组成单元为助动词序列、一些副词,直至中心动词。