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,构成复合项类型为变量项。