中心的优先考虑顺序与句内成分的可能解释是如何相互影响的呢?要确定什么方法是最合适的,还要取决于对各种可能算法的进一步研究和评价。目前,一些算法总是倾向于句子内的指代对象,而另外一些算法则相反。一个有趣的组合是倾向于任何将代词当做中心的解释,如果失败,则倾向于句子内的解读而不是句子间的解读。无论策略是什么,很重要的一点是,更一般的上下文因素最终决定了最好的解释。任何只取决于结构属性的算法都是不完善的。
这说明,如果一个基于结构的代词消歧算法为每一个代词都按优先考虑的顺序产生一个有序的可能指代对象序列,然后让通用推理系统来做最后的决策,那么这种算法将是非常有用的。
寻找可能的先行词
下面的例子说明了一个算法。该算法基于局部篇章上下文、共指约束和刚才讨论的中心约束的一个子集,对每个代词产生可能指代对象的一个有序列表。遗憾的是,由于共指约束,不存在一种方法可以独立地处理每一个代词。例如,在句子17b中,如果两个代词独立解释,每一个首选的指代对象将是局部上下文的中心,即“Jack”。但是,因为自反性约束的缘故,我们知道两个代词都不是指Jack。除了对每一个代词的指代对象都列出所有组合情况外,在这个阶段,还没有什么办法可以避免这个问题。在下面的算法中,将跳过这一问题。两个代词最可能指代对象“Jack”,我们将求助于推理系统中的共指约束和解释过程。这样,推理系统在最后决策时,可能需要考虑中心约束3。这个算法的3个步骤如下:
1. 对每一个代词产生可能先行词的有序列表。
2. 用一般的推理来选择合适的先行词。
3. 用步骤2的结果来定义句子的Cb,并将其用做下一个句子的局部上下文的一部分。
图3给出了步骤1的算法。考察篇章17中的算法,句子17a所生成的局部上下文如图2所示。句子17b“He invited him to the party”的逻辑表达式如下:
(PAST(INVITEl il [AGENT (PRO h1 (&(HE1 h1) (# h1 h2)))]
[THEME(PRO h2(&(HE1 h2)(#h1 h2)))]
[PURPOSE
考虑代词(PRO h1(&(HE1 h1)(≠h1 h2))),候选的初始列表包括Cb(Jack1),Cp(Jack1 again),句子内的先行词(为空)和其他篇章实体(Sam1,Park3),最后的列表为(Jack1 Sam1 Park3)。只有前两个满足h1上的约束,所以逻辑表达式更新为:
(PRO h1 HE1 (≠ h1 h2) (REF-LIST h1 (Jack1 Sam1)))
第二个代词的处理过程类似,逻辑表达式更新为:
(PRO h2 HE1(≠ h1 h2)(REF-LIST h2(Jack1 Sam1)))
这一信息将传递给第2步中的通用推理系统。如果它与直觉相一致,则第2步认定h1的先行词为“Jack1”,h2的先行词为“Sam1”。基于这样的结果,我们可以确定当前句子的中心,并且用做下一个句子的局部上下文。该算法的第3步如图4所示,这一步实现了前面提到的中心约束理论。在前面的例子中,这一算法的执行结果是“Jackl”被确定为新的Cb。
图3为非反身代词确定可能先行词的算法
图4识别新的Cb的算法
责任编辑:admin