7.3 描述流提取方法

7.3 描述流提取方法

定义(描述子关联词汇场,Associated Vocabulary Field):将刻画或者反映描述子的词汇的集合,称为描述子的关联词汇场。将描述子d的关联词汇场记作AVF(d)。根据描述子的类型,给出了描述子的关联词汇场的构成。

若描述子d为类,AVF(d)={类词汇,类的名称词汇,类的语境词汇,类的子类词汇,类的部分类词汇,类的又称词汇,类槽值词汇}。

若描述子d为槽,AVF(d)={槽词汇,槽的名称词汇,槽的语境词汇,槽的同义词词汇,槽的近义词词汇,槽值域词汇,槽值的同义词词汇,槽值的近义词词汇}。

例如,描述子“石制品”的关联词汇场的元素有“原料、石器、石片、石片石器、石核、石核石器、锤击法、碰砧法、砸击法、砧击法、砍斫器、刮削器、尖状器”等。

定义(描述子密度,Descriptor Density):设d为语段TS的描述子,d的密度DD(d)有两种定义:

(a)TS中映射为d的所有特征项FT1,FT2,...,FTn的出现次数之和,即

(b)TS中映射为d的不同特征项FT1,FT2,...,FTk的个数,即

DD(d)=k,其中f(FTi)=d,i=1,2,...,n。

在描述流提取中,首先进行特征项提取,并以概念作为特征项。这是因为概念比词语更能忠实地表达文章的内容。然后,采用逐层构建的方法生成篇章的描述流。共分三个层级。第一层构建特征项映射的描述子。基于特征项的描述子,第二层提取句子映射的描述流。基于句子的描述流,第三层构建篇章的描述流。

在生成特征项映射的描述子时,本节采用三种方法。其一,根据特征项所关联的类的属性或关系名称。其二,根据特征项在描述子关联词汇场中所对应的描述子。在这里,描述子关联词汇场是一个关于特征项词汇及其对应描述子的二维矩阵,并根据训练文本进行创建。其三,基于特征项之间的互信息。

由特征项映射的描述子构成了句子的描述流。本节进一步引入基于描述子的密度对其进行排序。对一个篇章,会存在许多种不同的候选描述流。问题是如何选择最优描述流。基于训练文本构建的训练描述流,本节采用动态规划从候选描述流中提取一种与训练描述流相似度最大的描述流,并将该描述流作为篇章的描述流[134]

描述流提取系统包括如下模块,如图7.2所示。

模块1:提取文本的特征项模块,采用方法:基于领域知识获取本体和领域词典的特征项提取方法;

模块2:构建训练描述流模块,采用方法:知识获取本体引导的训练描述流构建方法;

模块3:构建关联词汇场模块,采用方法:贡献度驱动的描述子的种子关联词汇场构建方法;

模块4:生成特征项的描述子模块,采用方法:基于关联词汇和互信息的特征项描述子提取生成方法;

图7.2 描述流提取系统体系结构

模块5:提取句子级语段的描述流模块,采用方法:排序和剔除机制混合驱动的句子语段描述流提取方法;

模块6:生成篇章级语段的描述流模块,采用方法:基于动态规划和有序聚类的篇章语段描述流生成方法;

模块7:验证描述流模块。

(1)提取特征项。

对于输入的文本字符流,首先识别文本的物理结构,然后基于领域知识获取本体和领域词典提取句子的特征项。采用最大前向匹配法,从句子中提取领域本体和领域词典中的词汇特征项。

构建了领域词典和领域知识获取本体词汇库的两级索引结构。第一级为词目首字索引,第二级为词目索引。特征项的词汇类型标记包括:词典词汇类型和领域知识获取本体词汇类型。这种标记信息结构具有两个特点:第一,可有效地解决交叉匹配的问题;第二,标注信息不是显式地标注在文本中,而是隐式地存储在标记信息结点中,因此能够快速方便地读取标记信息。

对以下情形同时出现:①若句子的特征项集合中含有FT1和FT2,②FT1包含FT2,③FT1的标记类型含有从领域知识中获取的本体词汇类型,④FT2的标记类型为词典词汇类型,则从特征项集合中去掉FT2

(2)构建训练描述流。

随机选择训练文本,自动提取训练文本的特征项,然后由知识工程师构建各个训练文本的描述流。目前,随机选择了m个文本作为训练文本,人工构建m个训练文本中每个句子的描述流,构成训练文本的篇章描述流。设训练文本Ti的描述流为DSi=〈Di,⊆,≼>,i=1,2,…,n,构建描述子集合D1,D2,...,Dn的顺序矩阵。

顺序矩阵满足如下条件:第一,对于一个描述类,同一个描述子仅出现一次,除非该描述子在同一文本中出现多次;第二,一篇文本的顺序矩阵元素对应的描述子的顺序,尽量按照描述子在文本中的出现顺序排列。

基于顺序矩阵,构建训练描述流TDS=〈TD,⊆,≼>,TDS满足如下条件:

∀di∈Di,di∈TDi,TD是训练描述子集合。

∀di1,di2∈Di,若di1≼di2,则∃dm1,dm2∈TD,di1=dm1,di2=dm2,dm1≼dm2

∀dp,dq∈Di,若di⊆dj,则∃dn1,dn2∈TD,dp=dn1,dq=dn2,dn1⊆dn2

(3)构建描述子的关联词汇场。

采用贡献度驱动的描述子种子关联词汇场构建方法,其目的是为构建特征项的描述子做准备。首先,读取训练文本的描述流;然后,提取训练文本的特征项;接着,构建特征项词汇对描述子的贡献度矩阵。设训练文本含有特征项FT1,FT2,…,FTn,含有描述子d1,d2,…,dm,构建FTi对dj的贡献度Contributing_Degree(FTi,dj)。设贡献度的初始值为0。若存在句子含有特征项FTi,其映射的描述流中含有dj,则Contributing_Degree(FTi,dj)加1。将那些对描述子dj的贡献度大于零的特征项称为dj的关联词汇,这些特征项构成的集合称为dj的关联词汇场。

(4)生成特征项的描述子。

生成特征项的描述子模块包含识别描述类和构建特征项映射的描述子两个步骤。识别文本中句子的描述类,即识别句子描述的个体所属的类,进而可确定句子的描述子所属的类。例如,若句子s的描述类为古文化,则描述子d“遗址.时期”不是S的描述子。因为d所属的类为遗址,而不是古文化。

识别句子描述类的方法如下:首先判断句子s是否含有类,设s中出现类C1,C2,…,Cn

情形1:n=1,则设句子的描述类为C1

情形2:n>1,采用如下方法分别计算n个类的权值Weight(Ci),(i=1,2,…,n),选择权重最大的类作为句子的描述类;

若Ci位于句子的开始位置,则Weight(Ci)+α;

对于s的特征项集合,若存在特征项为类Ci的名称词汇或实例,则Weight(Ci)+β;

情形3:若s中不存在类,则利用篇章的邻近原则选择句子的描述类,即提取与s相隔句子个数最少的句子的描述类作为s的描述类。

由文本的特征项,可以构建特征项映射的描述子,这是构建篇章描述流的基础。

定义(描述流映射函数):描述流映射函数定义为:dmf:V→DS,其中V为语段或特征项,DS=〈D,⊆,≼>为V的描述流。

采用基于关联词汇和互信息的方法来构建特征项映射的描述子。对于特征项FTi

情形1:判断FTi的词汇类型标记信息是否含有本体词汇类型;

若含有FTi,根据FTi的词汇类型标记所属的词汇场类型,将其映射到对应的类和槽上。此时,存在如下可能的情形:

如果特征项FTi为类C中槽S的类槽值词汇,则dmf(FTi)=C.S;

如果特征项FTi为类C中除类槽值词汇以外的类词汇场词汇,则dmf(FTi)=C;

如果特征项FTi为类C中槽S的槽词汇场词汇,则dmf(FTi)=C.S;

如果特征项FTi为类C中聚类槽CS的槽词汇场词汇,则dmf(FTi)=C.CS;

如果特征项为类C中槽S的槽值词汇场词汇,则dmf(FTi)=C.S;

情形2:否则,判断FTi是否出现在描述子的关联词汇贡献度矩阵中;

若FTi对描述子dj的贡献度大于阈值α,则dj构成FTi映射的候选描述子,即,f(FTi)=dj

情形3:否则,采用互信息的方法构建FTi映射的候选描述子。统计与FTi在句子中所有共现的特征项的频数。设FTj为与FTi共现频率最高的特征项。若FTj映射的候选描述子为{d1,d2,…,dk},则形成假设dmf(FTi)={d1,d2,…,dk},否则dmf(FTi)=∅。

(5)提取句子级语段的描述流。

基于句子的特征项映射的描述子,进一步构建句子映射的描述流。在特征项构建的描述子集合中,可能存在错误的描述子。本节采用句子的描述类来排除错误的描述子。下面给出提取句子层级的描述流的算法步骤。

算法:提取句子层级的描述流

输入:含有特征项映射的候选描述子的文本;

输出:构建句子语段的描述流;

方法:排序和剔除机制混合驱动的句子语段描述流提取方法。

①若句子语段STS含有一个特征项FT,则形成假设dmf(STS)=dmf(FT);

②若STS含有多个特征项FT1,FT2,…,FTn,设这些特征项映射的描述子集合D构成STS的候选描述子,判断D中描述子的类型;

情形1:D中所有描述子的类型均为类;

情形2:D中存在一个描述子的类型为类槽,则从D中去掉满足下述条件的描述子dk:(a)STS的描述类为:C1,C2,…,Cm;(b)dk为FT1,FT2,…,FTn映射的描述子;(c)dk的类型为类槽;(d)dk=C.S;(e)C∉{C1,C2,…,Cm};

③对D中的描述子基于描述子的密度或权值排序。

对于D中的描述子d,设描述子映射为d的特征项为FTi1,FTi2,…,FTip,d的权值定义为这些特征项的权值之和。即:

其中,Weight(d)为d的权值,Weight(FTk)为FTk的权值,freq(FTk)为FTk在句子语段STS中出现的频率。freqsfc(FTk)表示FTk在句子中作为第一个概念出现的频率,如果出现则为1,否则为0。freqslc(FTk)表示FTk在句子中作为最后一个概念出现的频率,如果出现则为1,否则为0。α1和α2为系数(不妨设α1=1,α2=0)。

④若D为空,也就是,STS不存在候选描述子,提取该句所在的句群和段落语段的描述子。其中,特征项权值Value(dj)的计算公式如下:

其中,freq(tj)为tj在语段中出现的频率,freqsfs(tj)表示tj在语段中的第一个句子中出现的频率,如果出现则为1,否则为0。freqsfs(tj)表示tj在语段中的最后一个句子中出现的频率,如果出现则为1,否则为0。β1和β2为系数。

(6)生成篇章级语段的描述流。

基于已构建的句子描述流,可以提取篇章的描述流。假定同一条知识在一篇文本中只出现一次。本节利用动态规划方法从候选描述流集合中选取一种与训练描述流相似度最大者作为篇章的描述流。

算法:提取篇章层级语段的描述流

输入:含有句子语段映射的候选描述子的文本;

输出:构建篇章的描述流;

方法:基于动态规划和有序聚类的篇章语段描述流生成方法;

①读取训练描述流;

②根据描述子的类型提取训练描述流中描述子的一级类。例如,若描述子d的类型为类槽“C.S”,则d的一级类为C。若描述子d的类型为类实例“C.I”,则d的一级类为C。若描述子d的类型为类槽侧面“C.S→F”,则d的一级类为C。若描述子d的类型为类间关系“C1⇒C2”,则d的一级类为“C1⇒C2”。若描述子d的类型为类间关系“C1⇔C2”,则d的一级类为“C1⇔C2”。

③构建描述子的二级类;

情形1:描述子不含有“子类”或者“部分类”关键字,取描述子的最后一个类。比如:遗址⇒人类化石,取“人类化石”;

情形2:描述子中的“子类”或者“部分类”关键字出现在尾部,取描述子中这些关键字前面的部分。比如:人类化石⇒部分类,取“人类化石”;

情形3:描述子中的“子类”或者“部分类”关键字出现在中间,取全部描述子。比如:牙齿化石⇒子类⇒齿冠,取“牙齿化石⇒子类⇒齿冠”。

④读取一篇文本中同一个描述类DC的连续句子语段及其描述流,将其称为候选描述流CDS;

⑤提取训练描述流TDS中类为DC的描述子及其偏序关系;

⑥求解CDS和TDS的最大连续相同的描述子序列集合;

⑦从CDS中,构建与训练描述流TDS的描述子相同的不同序列;

⑧采用动态规划方法在这些序列集合中选择与训练描述流相似度最大的候选描述流。

(7)验证描述流。

对于构建的篇章描述流,需要分析其正确性。为此,采用基于主题句的方法来验证篇章的描述流的正确性。算法如下:

算法:验证文本的描述流

输入:文本的描述流;

输出:验证后的描述流;

方法:基于主题句的描述流的验证方法

①输入一个语段,可以为一个段落、几个段落,或者一个段落内的句群;

②删除句子中的干扰字,包括(a)出现次数为1的字;(b)使用频率高且没有实际意义的字(的、了、们);(c)一些高频的代词和连词;

③计算句子的信息量;也就是,假设句子s=C0 C1C2…Cn-1 Cn,Ck为字符,n为整数,那么句子的信息量E(S)为:

其中,fii和fjj为Ci和Cj在语段的不同句子中出现的频率,fij为Ci和Cj在不同句子内共现的频率。

④计算句子的权重Weight(S):

其中,E为句子的信息量,L为句子的长度。

⑤按照句子的权重和主题句的位置进行排序输出主题句;

⑥设语段的主题句S的特征项集合为FTS,S的对应的描述子集合为{d1,d2,…,dk};

⑦如果存在FT∈FTS,使得存在i,FT∈AVF(di),则验证结束;否则,由知识工程师验证。