- 签证留学 |
- 笔译 |
- 口译
- 求职 |
- 日/韩语 |
- 德语
为了对付算法的破坏性的归并,我们增加了代表输入特征结构的DAG的复杂性。在使用DAG来表示特征结构时,增加一个边或域(field)。具体地说,每个特征结构包括两个域:一个称为内容域(CONTENT field),一个称为指针域(POINTER field)。内容域可以为空,或者可以包含一个普通的特征结构。类似地,指针域可以为空,或者包含一个指向其他特征结构的指针。如果DAG的指针域为空,那么DAG的内容域就包含实际被处理的特征结构。另一方面,如果指针域不为空,则指针的方向就代表了实际被处理的特征结构。合一运算的合并可以通过在处理过程中改变DAG的指针域来实现。
为了具体说明我们的方法,下面讨论特征结构的扩充DAG表示方法。
这个矩阵图的扩充DAG表示要把CONTENT域和POINTER域作为普通的特征来处理,这种扩充DAG可以表示为如下矩阵:
图11.4 是这样的扩充DAG表示图。注意,这个扩充DAG表示在特征的最上层既包括内容域,也包括与内容域相连接的指针域。对于每个嵌入的特征结构,也采用同样的表示方法,一直表示到原子值。
在研究合一算法的细节之前,将采用这样的扩充DAG来表示如下的例子。这个合一项目的原来的扩充表示如图11.5所示。
在最高一层,我们只是说,合一的结果造出了一个新的结构,这个结构包含来自原来的两个项目的信息的并。从扩充DAG表示可以看出,怎样对原来的项目进行相加,怎样把某些指针从一个结构改变到另一个结构中,使得它们最后都包含相同的内容。在这个例子中,首先给第一个项目加上一个PERSON特征,然后把它的指针指向第二个项目中的适当位置并填充第一个项目的PERSON特征的指针域,从而给它指派一个值。
但是,处理过程还没有完成。从图11.6可以清楚地看出,第一个项目现在已经包含了所有的正确信息,但第二个项目还没有包含所有的正确信息,这个项目还缺少NUMBER特征。当然,这时我们大概可以把指针指向第一个项目中的适当位置,给第二个项目增加NUMBER特征。这样改变的结果将引起两个项目具有从合一得到的全部正确信息。可惜这样的解决办法是不恰当的,因为这种办法并不能满足把两个项目真正合一的要求。由于这两个项目在最顶一层没有完全地合一,其中一个项目的进一步的合一将不会在另一个项目中表现出来。对于这个问题的解决办法是,简单地把第二个项目的指针域指向第一个项目的顶端。这样做的结果使得两个项目中进一步的任何改变都可以马上在它们两者中同时得到反映。这种改变的结果如图11.7所示。
责任编辑:admin