2.3.4 模式匹配

2.3.4 模式匹配

本节分析造成模式匹配冲突的原因和消解方法。首先解释相关概念。

定义(精确有序匹配):精确匹配是指文本T与槽模式中某模式所有的项均匹配。对于句子s,模式CP=〈t1>〈t2>…〈tm>,若句子s与该模式的所有项〈t1>〈t2>…〈tm>有序匹配,则称句子s与模式CP精确有序匹配。

定义(模糊匹配):模糊匹配是指文本T与槽模式中某模式部分项匹配。对于句子s,模式CP=〈t1>〈t2>…〈tm>,若句子s与该模式的部分项〈ti1>〈ti2>…〈tik>匹配,其中k〈m,则称句子s与模式CP模糊匹配。

文本与模式匹配冲突包括如下含义:第一,多模式精确匹配冲突:文本T与槽模式中的两个以上的模式精确有序匹配;第二,单模式精确匹配冲突:文本T与槽模式中的一个模式精确有序匹配得到多个匹配结果;第三,多模式模糊匹配冲突:文本T与槽模式中的两个以上的模式模糊匹配;第四,单模式模糊匹配冲突:文本T与槽模式中的一个模式模糊匹配得到多个匹配结果。

文本中句子与目标槽的槽模式进行匹配时,可能存在下列五种情形:

情形1:文本T与一个模式精确有序匹配;

情形2:文本T与多个模式精确有序匹配;

情形3:文本T与一个模式模糊有序匹配;

情形4:文本T与多个模式模糊有序匹配;

情形5:没有模式与文本T精确匹配和模糊匹配。

造成多模式匹配冲突的主要原因是:不同模式中项之间具有等同关系和蕴含关系。造成单模式匹配冲突的主要原因是:文本具有多种情形满足单模式。为了揭示模式匹配冲突的原因,下面分析模式的项之间的关系。

定义(项的匹配蕴含关系):对于模式中的项t1和t2,如果文本T匹配t1,那么T也匹配t2,则称t1匹配蕴含t2,记作t1→t2。例如,项“〈为>”匹配项“〈!关系动词>”。

为了分析模式的项之间的关系,对项作如下分类。项的类型包括单常量项、常量类项、变量项和谓词项。变量项包括非空字符串和谓词。谓词项包括关系动词条件、词性条件以及字符串条件。对应地,项的类别包括必选项和可选项。复合项由项及其蕴含、链接与关系所构成。

项之间的蕴含关系包括无条件蕴含关系和条件蕴含关系。无条件的项蕴含关系包括:

单常量项(t1)→变量项(t2);

常量类项(t1)→变量项(t2);

谓词项(t1)→变量项(t2);

复合项(t1)→变量项(t2)。

带条件的项蕴含关系包括:

若对于常量项t1,复合项t2,t2由t1与变量项链接而成,则常量项(t1)→复合项(t2)。

若对于常量类项t1,复合项t2,t2由t1与变量项链接而成,则常量类项(t1)→复合项(t2)。

若对于谓词项t1,复合项t2,t2由t1与变量项链接而成,则变量项(t1)→复合项(t2)。

若对于常量项t1,常量类项t2,t2中的元素包含t1,则常量项(t1)→常量类项(t2)。

由于不同模式的项之间存在蕴含关系,可能出现模式匹配冲突问题。

为了分析文本与模式匹配冲突的消解方法,为清晰起见,首先引入两个概念。

定义(模式的相同项的映射关系):构建置换f:T1→T2,f(t1)=t2,其中t1∈T1,t2∈T2,T1和T2分别为模式CP1和CP2中项的全序集合。

定义(保序映射):对于构建在两个全序集T1和T2上的映射:f:T1→T2,其中T1={t1,i1,t1,i2,…,t1,im},T2={t1,j1,t1,j2,…,t1,jm},“≼”为T1和T2的序关系。对于任意t1,ip,t1,iq∈T1,如果t1,ip≼t1,iq,则f(t1,ip)≼f(t1,iq),则将f称为保序映射。

文本与模式匹配冲突消解方法的步骤如下:

(1)判断文本T与模式CP1和CP2匹配,判断模式CP1和CP2的关系。

(2)执行具有等同关系、包含关系、蕴含关系的模式匹配冲突的消解方法;

情形1:CP1和CP2为等同关系,即CP2=CP1,选择任何一个进行匹配即可。

情形2:CP1和CP2为包含关系,即CP2⊃CP1,选择在当前语料中匹配频率高的模式。

情形3:CP1和CP2为蕴含关系,即CP1→CP2,选择CP1对应的语义动作。

(3)执行具有部分相似关系的模式匹配冲突的消解方法。

首先,根据模式的相同项的映射关系,模式之间的部分相似关系可以分为:

情形1:CP1和CP2的相同项的映射关系为保序一一映射;

情形2:CP1和CP2的相同项的映射关系为保序一对多映射;

情形3:CP1和CP2的相同项的映射关系为保序多对一映射;

情形4:CP1和CP2的相同项的映射关系为保序多对多映射;

情形5:CP1和CP2的相同项的映射关系为非保序映射。

然后,对于CP1和CP2的相同项的映射关系为保序一一映射的情形,若文本T与CP1和CP2的相同项均匹配,则分析CP1和CP2的任意一对连续相同项之间的不同项t和t′的关系,识别t和t′的类型。

若为两个项的复合,则根据两个链接复合关系的项的类型,判断其类型。

若为三个以上项的复合,则根据多个链接复合关系的项的类型,判断其类型。

最后,对CP1和CP2,根据项的选择表,计算各自的不同项的选择个数。若CP1被选中的项的个数多于CP2,则选择CP2相对应的语义动作。

另外,下面给出由链接复合关系构成的项的类型。

(1)两个链接复合关系的项的类型。

常量项与常量项进行链接复合,构成复合项类型为常量项。

常量项与常量类项进行链接复合,构成复合项类型为常量类项。

常量类项与常量类项进行链接复合,构成复合项类型为常量类项。

常量项与变量类项进行链接复合,构成复合项类型为变量项。

常量类项与变量类项进行链接复合,构成复合项类型为变量项。

变量项与变量项进行链接复合,构成复合项类型为变量项。

(2)多个链接复合关系的项的类型。

n(n≥2)个常量项进行链接复合,构成复合项类型为常量项。

n(n≥0)个常量项和m(n≥0)个常量类项进行链接复合,并且项的个数大于等于2,构成复合项类型为常量类项。

n(n≥0)个常量项、m(m≥0)常量类项和r(r≥0)变量项进行链接复合,并且项的个数大于等于2,构成复合项类型为变量项。