汉语基本块描述规则的自动学习和扩展进化处理方法

文档序号:6573351阅读:277来源:国知局
专利名称:汉语基本块描述规则的自动学习和扩展进化处理方法
技术领域
本发明属于自然语言处理技术领域背景技术近年来,基于统计的处理方法已成为自然语言处理研究领域的主流技术。其基本处理过程是针对某个处理问题,首先构造一个标注语料库,然后使用机器学习方法从中训练出一个合适的语言模型,通过不同参量组合形成对这个问题的完整信息描述,最后,针对类似的新问题,就可以使用这个自动习得的语言模型给出比较可靠的自动分析结果。这种方法的处理优势是可以方便地集成各种语言资源,快速训练出一个比较合适的语言知识计算模型,因此在目前自然语言处理的句法分析、专名识别、语义角色标注等研究领域都得到了广泛应用,并取得了很好的处理效果。但其获取知识的可读性差,缺乏比较直接的模型描述能力评价方法,在许多情况下只能通过对具体问题的分析评测来间接完成对语言模型描述能力的评价。另外,其“黑匣子”的描述特点,也限制对这些语言模型知识进行进一步深入研究的可能性。
而另一方面,传统的基于规则的处理方法则具有知识描述简单易懂的优势,并且可以根据研究问题的需要不断调整规则描述内容。但目前许多大规模的规则库开发还需要人工完成,不仅费时费力,而且很难保证其中复杂规则描述的一致性,多个规则的信息冲突也是很难解决的问题。知识获取已成为制约规则处理方法在大规模真实文本的分析实践中得到广泛应用的主要瓶颈问题。如何探索有效的机器学习方法自动获取分层次、多粒度的规则描述知识,已成为自然语言处理领域的新的研究热点和难点问题。
Cardie初步分析了可靠性剪枝和词汇信息扩展对提高基本名词块规则识别性能的影响;Dejean提出了一种自顶向下进行规则信息进化的ALLiS方法;Choi利用判定树模型从大规模的标注语料库中自动习得不同层次的部分分析描述规则。这些研究工作从不同侧面证明了词汇和语境知识对提升规则描述能力的重要作用,但他们所用的词汇知识还局限于训练语料中特定位置上的词汇信息,没有涉及词汇之间的不同关系组合,更没有进一步引入外部词汇知识库,从而在一定程度上限制了相应规则描述能力的提升空间。
我们从汉语多词语基本块入手,对相关问题进行了研究探索。基本处理目标是自动习得一组描述规则,对汉语句子中哪些词语在什么位置上可以组合成什么关系的块序列等知识进行准确的描述。这个问题,与目前国际上理论语言学家和计算语言学家非常关注的多词表达(Multiword Expression,MWE)问题有着很深的内在联系。只是它的研究范围比MWE更广泛。MWE最初是从研究英语中介于词和短语之间的多词组合的特殊意义解释问题中提出的,但其基本思想目前已经扩展到不同语言中普遍存在的词库与句法的接口问题。Baldwin(2003)提出了一种对MWE的可分解性进行判别的经验统计模型。Sag等(2002)则对目前MWE的分析难点和可用技术进行了全面的综述,提出了对不同的MWE需要使用不同资源和方法进行分析的基本设想。

发明内容
汉语基本块描述规则的自动学习和扩展进化处理方法,属于自然语言处理应用领域,其特征在于,所述方法依次含有以下步骤(1)计算机初始化,(1.1)形成语言知识库,包括基本块标注语料库和词汇知识库,其中I.基本块标注语料库,对汉语真实文本句子标注了词语、词类和基本块描述信息,其中句子总数用T表示;所标注的句子S=W+BC,W={<wi,ti>},wi为句子中的第i个词语,ti为第i个词语的词类标记,i∈[1,n],n为一个句子中的词语总数;BC={bcj},bcj为句子中的第j个基本块,j∈[1,bcs],bcs为该句子中的基本块总数;所述基本块分为,由一个词语组成的单词语基本块和由两个以上词语组成的多词语基本块;II.词汇知识库,保存各种词汇描述信息,包括以下内容词汇关联知识库,含有汉语常用实词之间形成的句法关系描述对,基本数据格式为{<词语1><词语2><词类1><词类2><句法关系标记>};特征动词表,含有从语法信息词典中提取出的能带不同类型宾语的动词词表信息,基本数据格式为{<动词词条>},按照不同的宾语类型组织成不同的动词表;名词语义信息表,含有汉语常用名词的11个语义类信息组织、人、人工物、自然物、信息、精神、事件、属性、数量、时间和空间,基本数据格式为{<名词词条><语义类标记>};(1.2)定义规则描述状态空间和基本块描述规则,其中规则描述状态空间定义如下针对某个特定的词语组合,如“名词+名词”形成的词类组合“n+n”,可以从语料库标注句子中自动提取出以下描述实例<wi-1,ti-1>|<wi,ti>...<wj,tj>|<wj+1,tj+1>→[1|0]其中<wi,ti>表示句子中的第i个词语wi,和它的词类标记ti,[i,j]形成了满足特定条件的词语组合区间,wi-1表示其左相邻词语,wj+1表示其右相邻词语;“→1”表示该词语组合在此语境下可以形成一个基本块,即形成一个正例,此时可以进一步给出相应的基本块标记句法标记+关系标记;“→0”则表示该词语组合在此语境下不能形成一个基本块,即形成一个反例;所有这些描述实例将形成针对这个特定词语组合的规则描述状态空间;该状态空间中的所有正例形成正例集合,其中的正例总数为正例频度;所有反例形成反例集合,其中的反例总数为反例频度;针对上面的一个状态空间,可以定义一个基本块描述规则,其基本形式为<结构组合>→<归约标记><置信度>,其中结构组合描述各个基本块的内部组合结构,按照规则描述能力的不同分为两个层次a)基本规则,其结构组合描述是词类标记串,b)扩展规则,通过增加词汇约束和语境限制,形成描述能力更强的结构组合描述,归约标记包括句法标记和关系标记两部分,描述该基本块的基本句法信息;置信度给出了使用该规则的可靠性预期值,计算公式为θ=fp/(fp+fn),其中fp为规则状态空间覆盖的正例频度,fn为规则状态空间覆盖的反例频度;(1.3)设定以下数据结构成分序列栈ChkStack[]、基本规则表BasRules[]、扩展规则表ExpRules[]、状态空间描述表ZTList[]、正反例标注句子表ExamSents[]和扩展处理队列EPList[],其中I.成分序列栈ChkStack[],保存从基本块标注语料库句子中提取出的所有标注信息,包括词语、单词语基本块、多词语基本块等成分,形成针对一个句子的线性成分标注序列,每个栈记录包含以下信息<成分标志><成分左边界><成分右边界><句法标记><关系标记>,形成以下基本记录格式[cflag,cl,cr,cctag,crtag],其中成分标志cflag使用了以下字符表示不同的成分类别W-词语;B-单词语基本块;P-多词语基本块;
成分左边界cl表示该成分在句子中的左边界位置,cl∈
;成分右边界cr表示该成分在句子中的右边界位置,cr∈[1,n];句法标记cctag表示该成分的外部句法功能,对词语成分,保存它的词类标记,具体内容包括n-名词,s-处所词,t-时间词,f-方位词,r-代词,vM-助动词,v-动词,a-形容词,d-副词,m-数词,q-量词,p-介词,u-助词,c-连词,y-语气词,e-感叹词,w-标点符号;对基本块成分,保存它的句法标记,具体内容包括np-名词块,vp-动词块,sp-空间块,tp-时间块,mp-数量块,ap-形容词块,dp-副词块;关系标记crtag表示相应成分的内部语法关系,对词语成分,保存它的词语信息;对基本块成分,保存它的关系标记,具体内容包括ZX-右角中心结构,LN-链式关联结构,LH-并列关系,PO-述宾关系,SB-述补关系,AD-附加关系,AM-歧义区间,SG-单词语块,其中右角中心结构,表示基本块中的所有词语直接依存到右角中心词,形成一个右向中心依存结构,基本模式为A1...AnH,依存关系为A1→H,...,An→H,H为整个基本块的句法语义中心词,A1,...,An为修饰词;链式关联结构,表示基本块中的各个词语依次依存到其直接右相邻的词语,形成一个自左向右排列的多中心依存关系链,基本模式为H0H1...Hn,依存关系为H0→H1,...,Hn-1→Hn,Hi,i∈[1,n-1]成为不同层次的语义聚合中心,Hn为整个基本块的句法语义中心词;并列关系,表示基本块中的各个词语形成并列结构,如老师同学;述宾关系,表示基本块中的两个词语形成述宾结构,如吃饭;述补关系,表示基本块中的两个词语形成述补结构,如走下;附加关系,表示基本块中的两个词语形成附加结构,如作出了;II.基本规则表BasRules[]保存所有基于词类标记串描述的基本规则,其基本记录格式为[r_stru,r_tag,fp,fn],其中r_stru为规则结构组合,r_tag为归约标记,fp为正例频度,fn为反例频度;III.扩展规则表ExpRules[]保存所有增加词汇约束和语境限制条件描述的扩展规则,其基本记录格式为[r_stru,r_tag,fp,fn,pelist,nelist],其中r_stru,r_tag,fp,fn定义同BasRules[],pelist为规则状态空间覆盖的所有正例的索引信息表,nelist为规则状态空间覆盖的所有反例的索引信息表;
IV.状态空间描述表ZTList[]保存每个规则描述状态空间的相关数据,基本格式为[SentID,LWP,RWP,EF,r_tag],其中句子序列号SentID对规则描述实例出现的每个标注句子,给出一个唯一的序列号ID;左边界位置LWP,保存相关描述实例在一个标注句子中出现的左边界词语位置;右边界位置RWP,保存相关描述实例在一个标注句子中出现的右边界词语位置;实例标志EF,表示相应描述实例的类别1-正例,0-反例;归约标记r_tag,保存基本块描述实例的句法标记和关系标记信息,对标注反例,为NULL;V.正反例标注句子表ExamSents[]保存每个状态空间覆盖的描述实例出现的所有标注句子,基本格式为<句子序列号SentID,标注句子内容串S>;VI.扩展处理队列EPList[]保存各个待扩展规则的结构组合和相应的状态空间信息,基本格式为<待扩展规则的结构组合串r_stru,状态空间索引ZTIndexs>,其中每个索引值指向状态空间描述表ZTList[]的一个记录;(1.4)加载以下基本处理模块(1.4.1)规则可靠性判定模块,通过选择不同的置信度和正例频度阈值,将所有自动习得的规则按其可靠性程度分成高可靠、中度可靠、低度可靠和不可靠4个等级,其步骤如下第一步输入规则的正例和反例频度fp和fn,计算规则置信度θ=fp/(fp+fn);第二步按照正例频度fp和置信度θ,进行以下可靠性分级处理,并返回不同评价值如果符合下列条件之一,则为高可靠规则,返回1(fp>=10)&&(θ>=0.85)或(fp>=5)&&(fp<10))&&(θ>=0.9)或((fp>=2)&&(fp<5))&&(θ>=0.95)如果符合下列条件之一,则为中度可靠规则,返回2(fp>=10)&&(θ>=0.5)或((fp>=5)&&(fp<10))&&(θ>=0.55)或((fp>=2)&&(fp<5))&&(θ>=0.6)或(fp>0)&&(θ>=0.6)如果符合下列条件之一,低度可靠规则,返回3(fp>=10)&&(θ>=0.1)或((fp>=5)&&(fp<10))&&(θ>=0.2)或((fp>=2)&&(fp<5))&&(θ>=0.3)或(fp>0)&&(θ>=0.3)其他情况,为不可靠规则,返回4;
利用这个可靠性分析函数对基本规则表和扩展规则表进行分类汇总,可以得到下列中间数据文件基本规则数据文件针对所有经过正反例训练的基本规则,通过四个数据文件保存具有不同可靠度的基本规则信息,数据格式同基本规则表BasRules[];待扩展规则数据文件从所有经过正反例训练的基本规则集合中,选择所有可扩展的基本规则保存入待扩展规则数据文件中,数据格式同基本规则表BasRules[],并进一步形成每条待扩展规则对应的状态空间数据文件和标注句子数据文件集合,作为规则进化学习的初始数据集;扩展规则数据文件集合针对每个待扩展规则,通过4个数据文件保存扩展进化过程中得到的具有不同可靠度的扩展规则信息,数据格式同扩展规则表ExpRules[];(1.4.2)规则结构组合扩展模块,依次执行以下步骤首先通过以下条件判断某个规则是否能扩展如果是高可靠规则,则不必扩展;如果规则覆盖的正例频度<Th,而Th=6,则不能扩展;如果规则中使用了所有内部词汇约束和外部语境限制信息,则不能扩展;其次,针对每个规则描述实例,按照规则现有结构组合描述r_stru,进行词语区间<L,R>的信息扩展,得到NRS条新扩展规则的结构组合描述串,具体步骤如下第一步检查规则现有结构组合描述r_stru,如果是基本规则,则需顺序进行“词汇约束+语境限制”扩展;如果已包含了词汇约束信息,则只需进行语境限制扩展;第二步利用词汇知识库,顺序检查词语区间<L,R>内部的词汇约束情况如果存在词汇关联对信息,则生成包含词汇关联对约束的结构组合描述串;如果存在特征动词表信息,则生成包含特征动词约束的结构组合描述串;如果存在名词语义类信息,则生成包含名词语义类约束的结构组合描述串;如果区间中出现副词、介词和方位词等特殊功能词词类标记,则生成包含相应词语约束信息的结构组合描述串;第三步针对每条基本词类串描述规则或经过词汇约束扩展的规则,考虑以下三种组合模式左相邻词类标记、右相邻词类标记和左右相邻词类标记,形成三条增加语境限制的规则描述;(1.4.3)状态空间动态划分模块,通过扩展规则表、扩展处理队列、状态空间描述表和正反例标注句子表的交互作用来实现,其中状态空间描述表和正反例标注句子表形成了对待扩展规则的完整状态空间描述,它们通过扩展处理队列中保存的状态空间索引与各个扩展规则建立起不同状态空间的动态内在联系,通过各个扩展规则内部保存的正反例索引表实现了对待扩展规则覆盖的完整状态空间的动态划分;具体实现步骤如下第一步从扩展处理队列中获取一个待扩展记录[r_stru,ZTIndexs];第二步获取该规则的状态空间索引表ZTIndexs中的索引项总数EISum;第三步顺序处理状态空间描述表中的每个记录,根据其状态空间索引获取每个规则描述实例的相关信息[SentID,LWP,RWP,EF,r_tag],并按照SentID从正反例标注句子表ExamSents[]检索得到相应标注句子串,定位该描述实例在句子中的准确左右边界位置,形成待扩展词语区间<LWP,RWP>;第四步利用词汇知识库,按照现有规则描述r_tag,调用步骤(1.4.2)给出的规则结构组合扩展模块进行区间<LWP,RWP>的信息扩展,得到NRS条新扩展规则结构组合描述串;第五步顺序将每个新扩展规则描述串加入扩展规则表ExpRules[]中,返回相应的扩展规则表的下标位置ERLid,按照当前实例的正反例标记EF,将当前的状态空间索引ZTIndexs[k]添加入ExpRules[ERLid]的相应正反例索引表中;另外,还定义以下参量和基本函数扩展学习启动阈值Th只有当规则的正例频度大于或等于该值时,才启动扩展进化学习,目前设置Th=6;min求最小值函数,min(x,y)表示选择x和y中的最小值;(2)提取基本规则正例描述信息,步骤如下(2.1)初始化i=0;(2.2)初始化成分序列栈ChkStack[];(2.3)从标注语料库中读取第i个标注句子,获取其相关信息存入ChkStack[];(2.4)初始化j=0;(2.5)顺序获取ChkStack[]中的第j个基本块的标注信息[cflag,cl,cr,cctag,crtag];(2.6)若该基本块不是多词语基本块,即cflag≠’P’,则转(2.9);(2.7)从中获取基本规则信息结构组合串r_stru=tcltcl+1...tcr,归约标记r_tag=cctag+crtag;
(2.8)将相应基本规则记录[r_stru,r_tag,1,0]加入基本规则表中,并进行相同结构组合串的正例频度统计;(2.9)若j<bcsi,则令j=j+1,重复步骤(2.5)-(2.8);(2.10)若i<T,则令i=i+1,重复步骤(2.2)-(2.9);(2.11)输出获取的基本规则表{<结构组合描述>+<归约标记>+<正例频度>},终止;(3)进行基本规则正反例训练,步骤如下(3.1)读入步骤(2)生成的基本规则表BasRules[],初始化i=0;(3.2)从基本块标注语料库中读取第i个标注句子,获取其词语总数ni;(3.3)从左到右扫描整个句子,从句子中的每个词语出发,组合形成所有可能的长度在2到6之间的词语区间<j,k>,并获取该区间的词类标记串tjtj+1...tk,如果该词类标记串在基本规则表中出现,则相应规则的正反例总频度加1;(3.4)若i<T,则令i=i+1,重复步骤(3.2)-(3.3);(3.5)利用可靠性分析函数对所有经过正反例训练的基本规则进行分类汇总,分别保存入4个基本规则数据文件中;(3.6)提取所有可扩展的基本规则保存入待扩展规则数据文件中,终止;(4)生成待扩展规则的状态空间描述数据,步骤如下(4.1)从步骤(3)生成的待扩展规则数据文件中读入待扩展规则表,初始化i=0;(4.2)从基本块标注语料库中读取第i个标注句子S,获取其词语总数ni;(4.3)初始化句子中发现的待扩展规则描述实例的计数器IsSent=0;(4.4)从左到右扫描整个句子,从句子中的每个词语出发,组合形成所有可能的长度在2到6之间的词语区间<j,k>,并获取该区间的词类标记串tjtj+1...tk;(4.5)如果该词类标记串在待扩展规则表中出现,则生成该标注句子序列号SentID,并根据该区间在句子中的标注状态确定相应的实例标志EF和归约标记r_tag,生成一个状态空间描述记录[SentID,j,k,EF,r_tag],保存入相应的状态空间数据文件中,并令IsSent=IsSent+1;(4.6)若句子中没有发现相应的待扩展规则描述实例,即IsSent=0,则转(4.8);(4.7)生成正反例标注句子记录[SentID,S],保存入相应的标注句子数据文件中;(4.8)若i<T,则令i=i+1,重复步骤(4.2)-(4.7),否则终止;(5)进行基本规则的扩展进化学习,步骤如下
(5.1)从步骤(3)生成的待扩展规则数据文件中读入待扩展规则表,获取待扩展规则总数WERSum,初始化r=0;(5.2)获取第r条待扩展规则的结构组合r_strur,选择确定相应的正反例标注句子和状态空间数据文件;(5.3)从状态空间数据文件中读入状态空间描述表ZTList[],从正反例标注句子数据文件中读入正反例标注句子表ExamSents[],建立状态空间索引ZTIndexs;(5.4)生成一个新记录[r_strur,ZTIndexs],加入扩展处理队列中;(5.5)初始化扩展规则表;(5.6)调用步骤(1.4.3)给出的状态空间动态划分模块,进行规则扩展进化学习;(5.7)对新获取的扩展规则进行可靠性分析和数据保存,步骤如下(5.7.1)获取新获取的扩展规则总数ExpRSum;(5.7.2)初始化扩展规则表下标控制变量k=0;(5.7.3)获取第k条扩展规则[r_stru,r_tag,fp,fn,pelist,nelist];(5.7.4)根据其正反例频度fp,fn进行可靠性分析,得到其可靠性分类标记;(5.7.5)按照其不同可靠度,分别保存到4个扩展规则数据文件中;(5.7.6)若该规则还能进一步扩展,则生成一个新记录[r_stru,pelist+nelist],加入扩展处理队列中;(5.7.7)若k<ExpRSum,则令k=k+1,重复步骤(5.7.3)-(5.7.6);否则终止;(5.8)若扩展处理队列不为空,则转(5.5);(5.9)若r<WERSum,则令r=r+1,重复步骤(5.2)-(5.8);否则终止。
为了准确测试目前的规则进化学习的处理性能,我们从目前的TCT标注语料中选择了所有的新闻类文本,总规模约20万词。将它分成两部分80%作为训练语料,主要用于规则学习和进化处理;20%作为测试语料,主要用于以后的基本块分析器的性能评价。其中训练集的基本统计数据为句子总数6676、词语总数170829、汉字总数268151。
在规则扩展进化过程中,我们还使用了以下词汇知识库1)词汇关联知识库目前主要使用了动宾关系库,其中包含了汉语常用动词与后面的名词和动词等形成的动宾关系描述对。基本规模是动词词条5346个,词汇关联对52390个,平均每个动词词条包含约10个动宾关系描述对。
2)特征动词表包含从北大语法信息词典中提取出的能带不同类型的宾语的动词词表信息,基本规模为带名词宾语动词4888个,带处所宾语动词781个,带时间宾语动词48个,双宾动词278个,兼语动词403个,带动词宾语动词732个,带形容词宾语动词122个,带小句宾语动词698;3)名词语义信息表包含汉语常用名词的11个语义大类信息,包括组织、人、人工物、自然物、信息、精神、事件、属性、数量、时间和空间,基本规模是名词词条26905个。
通过规则学习和进化处理,我们得到了以下分层次、多粒度的基本块规则库在基本规则层面,包含61条高可靠的词类标记描述规则和150条待扩展规则,它们虽然只占所有提取规则总数735的28.7%,却覆盖了96.85%的标注正例,即基本保留了绝大部分有效的标注信息,为进一步扩展学习打下了很好的基础。
在扩展规则层面,从30881条自动扩展规则中,按照规则可靠度选择了2503+2469=4972条规则,它们占所有扩展规则集合的16%左右,但覆盖了约93%的有效正例,表明目前的自动学习算法的处理效果是非常有效的。


图1.汉语基本块规则的自动学习和扩展进化系统总体结构。
图2.规则结构组合描述扩展模块的处理流程。
图3.状态空间动态划分中内部数据结构的动态联系图。
图4.规则描述状态空间动态划分的处理流程。
图5.基本规则提取模块的处理流程。
图6.基本规则正反例训练模块的处理流程。
图7.规则状态空间生成模块的处理流程。
图8.扩展规则进化学习的完整处理流程。
图9.扩展规则表汇总分析模块的处理流程。
具体实施例方式
为了便于理解,我们把基本块规则的自动获取问题进一步定义如下假设我们已有两个大规模的语言知识库1)基本块标注语料库对汉语真实文本句子标注了词语、词类和基本块描述信息。下面是一个具体的基本块句子标注实例[tp-ZX长期/t以来/f],/w[np-SG他/rN]为/p[vp-SG维护/v][np-ZX世界/n和平/n]的/u[np-ZX崇高/a事业/n][vp-PO倾注/v心血/n],/w[vp-ZX四处/d奔走/v],/w[vp-AD作出/v了/u][ap-SG卓越/a]的/u[np-SG贡献/v]。/w12)词汇知识库包括词汇关联对、特征动词表、名词语义类等多种词汇描述信息;下面给出一个述宾关系的词汇关联对描述实例◆倾注V122200000精力/N汗水/N感情/N爱/V向往/V忠诚/A身心/N成分/N真情/N心力/N血汗/N力量/N心血/N热情/A军人/N精神/N$$它表示在目前的知识库中,动词“倾注”可以与16个词语形成述宾关系,其中包括12个名词(N)、2个动词(V)和2个形容词(A)。
这样,针对某个特定的词语组合,如“名词+名词”形成的词类组合“n+n”,可以从语料库标注句子中自动提取出以下描述实例<wi-k,ti-k>...<wi-1,ti-1>|<wi,ti>...<wj,tj>|<wj+1,tj+1>...<wj+n,tj+n>→[1|0]其中<wi,ti>表示句子中的第i个词语wi,和它的词类标记ti,“wi...wj”形成了满足特定条件的词语组合序列,“wi-k...wi-1”表示它的左相邻的k个词语,“wi+1...wj+n”表示右相邻的n个词语。目前在学习过程中主要使用了左右相邻的各一个词语的信息。“→1”表示该词语组合在此语境下可以形成一个基本块(即标注正例),此时可以进一步给出相应的基本块标记句法标记+关系标记;“→0”则表示该词语组合在此语境下不能形成一个基本块(即标注反例)。所有这些描述实例将形成一个完整的规则组合状态描述空间。
我们的处理目标就是从这些状态空间中自动获取一组基本块描述规则,它们应该能尽可能多地覆盖状态空间中的标注正例,而尽可能少地覆盖其中的标注反例,从而达到较高的描述可靠性,据此可以方便地确定句子中哪些词语组合在什么条件下可以归约成一个基本块。为此,我们确定了以下的规则基本形式<结构组合>→<归约标记><置信度>。这里最基本的结构组合描述是词类标记串,通过增加内部词汇约束和外部语境限制,可以不断扩展进化出限制能力更强的结构组合描述。归约标记主要包括句法标记和关系标记,描述该基本块的基本句法信息。置信度给出了使用该规则的可靠性预期值,它通过计算该规则在其覆盖的状态空间中的正例覆盖率得到。下面给出几个具体的基本块规则描述实例●基本规则v+uA→vp-AD,0.95,表示句子中的动词(v)与时态助词(uA)(如了、着、过)组合成附加结构(AD)动词基本块(vp)的置信度为0.95。
●扩展规则v(词语=WC-L)+n(词语=WC-R)wP→vp-PO,0.97,表示句子中形成动
1我们使用中括号对来标注每个基本块,每个基本块给出了两个标记<句法标记>和<关系标记>,其基本格式为[<句法标记>-<关系标记>...]。相关的词类标记、基本块句法标记和关系标记的具体含义简要说明如下t-时间词,f-方位词,rN-人称代词,p-介词,v-动词,n-名词,u-助词,a-形容词,d-副词,w-标点符号;tp-时间块,np-名词短语,vp-动词块,ap-形容词块;ZX-右角中心结构,SG-单词语块,PO-述宾关系,AD-附加关系。
名关联对(WC)的词语组合在右语境限制逗号(wP)的条件下组成述宾结构(PO)动词基本块的置信度为0.97。
为了保证规则学习和进化过程的顺利进行,我们设计了以下内部数据结构1)成分序列栈ChkStack[]保存从语料库句子中提取出的所有标注信息,包括功能词、单词语基本块、多词语基本块等,形成针对一个句子的线性块标注序列,每个栈记录包含以下信息<成分标志><成分左边界><成分右边界><句法标记><关系标记>。
●成分标志表示不同的成分类别,目前主要使用了以下字符W-词语;B-单词语基本块;P-多词语基本块;●成分左边界表示该成分在句子中的左边界位置cl,cl∈
,n为句子中的词语总数;●成分右边界表示该成分在句子中的右边界位置cr,cr∈[1,n];●句法标记表示该成分的外部句法功能,对功能词,保存它的词类标记,对基本块,保存它的句法标记,如np(名词块)、vp(动词块)、ap(形容词块)等;●关系标记表示相应成分的内部语法关系,对功能词,保存它的词语信息,对基本块,保存它的关系标记,如ZX(中心依存关系)、PO(述宾关系)等。
2)基本规则表BasRules[]保存各类基于词类标记串描述的基本规则,每个记录格式为<词类标记串>,<归约标记>,<正例频度>,<出现总频度>。
3)扩展规则表ExpRules[]保存所有经过扩展进化学习得到的扩展规则,每个记录格式为<扩展知识描述串r_stru>,<归约标记r_tag>,<正例频度pf>,<反例频度nf>,<覆盖正例索引表pelist>,<覆盖反例索引表nelist>。其中覆盖正反例索引表形成了针对这个扩展规则的完整状态空间描述,将在规则进化学习的状态空间动态划分过程中发挥重要作用。
4)状态空间描述表(ZTList)保存每个待扩展规则相对应的状态空间的相关数据记录,基本格式为<句子序列号>,<左边界位置><右边界位置>,<实例标志>,<归约标记>。
●句子序列号SentID对正反例出现的每个标注句子,给出一个唯一的序列号;●左边界位置LWP相关描述实例在一个标注句子中的左边界词语位置●右边界位置RWP相关描述实例在一个标注句子中的右边界词语位置;●实例标志EF表示相应描述实例的类别1-正例;0-反例;●归约标记r_tag保存基本块描述实例的句法标记和关系标记信息,对标注反例,内容为NULL
5)正反例标注句子表ExamSents[]保存每个待扩展规则覆盖的正反例描述实例出现的所有标注句子,基本格式为<句子序列号SentID>,<标注句子内容串S>。
6)扩展处理队列EPList[]保存各个待扩展规则的结构组合和相应的状态空间信息,基本格式为<待扩展规则的结构组合串r_stru>,<状态空间索引ZTIndexs>,其中每个索引值指向状态空间描述表ZTList[]的一个记录。
这里的扩展规则表、扩展处理队列、状态空间描述表和正反例标注句子表形成了进行规则扩展处理和状态空间动态划分的主要控制结构。
规则学习和进化的关键技术包括1)如何判定不同层次描述规则的处理可靠性?2)如何有效地引入不同语言资源进行规则扩展?3)如何建立起不同层次的扩展规则与相关描述实例之间的内在联系,实现状态空间的动态划分?对此,我们提出了以下解决方案在规则可靠性判定方面,我们的基本假设是如果一条规则的置信度很高,而且可以覆盖较多的正例,则它的可靠性就比较高。从这个直观认识出发,我们设计了一个可靠性分析函数,通过选择不同的置信度和正例频度阈值,将所有自动习得的规则按其可靠性程度分成4个等级1)高可靠;2)中度可靠;3)低度可靠;4)不可靠,从而为不同层次的规则学习和扩展进化建立了一套统一的评价标准。下面给出这个函数的主要内容●输入规则的正例和反例频度fp+fn●输出规则的可靠性评价值[1-4]●处理流程1.计算规则置信度θ=fp/(fp+fn);2.按照正例频度fp和置信度,进行可靠性分级处理I)高可靠规则,返回1包括以下情况◆(fp>=10)&&(θ>=0.85)◆((fp>=5)&&(fp<10))&&(θ>=0.9)◆((fp>=2)&&(fp<5))&&(θ>=0.95)II)中度可靠规则,返回2包括以下情况◆(fp>=10)&&(θ>=0.5)◆((fp>=5)&&(fp<10))&&(θ>=0.55)◆((fP>=2)&&(fp<5))&&(θ>=0.6)◆(fp>0)&&(θ>=0.6)III)低度可靠规则,返回3包括以下情况
◆(fp>=10)&&(θ>=0.1)◆((fp>=5)&&(fp<10))&&(θ>=0.2)◆((fp>=2)&&(fp<5))&&(θ>=0.3)◆(fp>0)&&(θ>=0.3)IV)其他情况为不可靠规则,返回4;利用这个可靠性分析函数对基本规则表和扩展规则表进行分类汇总,可以得到以下重要的中间数据文件1)基本规则数据文件针对所有经过正反例训练的基本规则,通过4个数据文件保存具有不同可靠度的基本规则信息,数据格式同基本规则表。
2)待扩展规则数据文件从所有经过正反例训练的基本规则集合中,选择所有可扩展的基本规则保存入待扩展规则数据文件中,数据格式同基本规则表。据此可以进一步提取出针对每条待扩展规则的状态空间数据文件和标注句子数据文件集合,它们组合形成了规则进化学习的初始数据集。
3)扩展规则数据文件集合针对每个待扩展规则,通过4个数据文件保存扩展进化过程中得到的具有不同可靠度的扩展规则信息,数据格式同扩展规则表。
在规则信息扩展方面,我们首先通过以下条件判断某个规则是否能扩展1)如果是高可靠规则,则不必扩展;2)如果规则覆盖的正例频度<Th(目前设置Th=6),则不能扩展;3)如果规则中使用了所有内部词汇约束和外部语境限制信息,则不能扩展。
然后,针对每个规则描述实例,按照规则现有结构组合描述r_stru,进行词语区间<LWP,RWP>的信息扩展,得到NRS条新扩展规则的结构组合描述串,具体步骤如下1)检查规则现有结构组合描述r_stru,如果是基本规则,则需顺序进行“词汇约束+语境限制”扩展;如果已包含了词汇约束信息,则只需进行语境限制扩展;2)在词汇约束扩展方面,利用词汇知识库,顺序检查词语区间<LWP,RWP>内部的词汇约束情况●如果存在词汇关联对信息,则生成包含词汇关联对约束的结构组合描述串;●如果存在特征动词表信息,则生成包含特征动词约束的结构组合描述串;●如果存在名词语义类信息,则生成包含名词语义类约束的结构组合描述串;●如果区间中出现副词、介词和方位词等特殊功能词词类标记,则生成包含相应词语约束信息的结构组合描述串;
3)在语境限制方面,主要考虑以下三种组合模式左相邻词类标记、右相邻词类标记和左右相邻词类标记。这些模式可以作用在基本词类串描述规则或经过词汇约束扩展的规则上,即针对一条规则,形成三条增加语境限制的规则描述。
图2显示了进行规则结构组合描述信息扩展的完整处理流程。
而状态空间的动态划分,则是通过扩展规则表、扩展处理队列、状态空间描述表和正反例标注句子表的交互作用实现的。图3显示了它们之间的内在联系。其中状态空间描述表和正反例标注句子表形成了对待扩展规则的完整状态空间描述,它们通过扩展处理队列中保存的状态空间索引与各个扩展规则建立起不同状态空间的动态内在联系,通过各个扩展规则内部保存的正反例索引表实现了对待扩展规则覆盖的完整状态空间的动态划分。具体实现方法如下1)从扩展处理队列中获取一个待扩展记录[r_stru,ZTIndexs];2)获取该规则的状态空间索引表ZTIndexs中的索引项总数EISum;3)顺序处理状态空间描述表中的每个记录,根据其状态空间索引获取每个规则描述实例的相关信息[SentID,LWP,RWP,EF,r_tag],并按照SentID从正反例标注句子表ExamSents[]检索得到相应标注句子串,定位该描述实例在句子中的准确左右边界位置,形成待扩展词语区间<LWP,RWP>;4)利用词汇知识库,按照现有规则描述r_tag,进行区间<LWP,RWP>的信息扩展,得到NRS条新扩展规则结构组合描述串(按照上面的扩展方法);5)顺序将每个新扩展规则描述串加入扩展规则表ExpRules[]中,返回相应的扩展规则表的下标位置ERLid;6)按照当前实例的正反例标记EF,将当前的状态空间索引值添加入扩展规则ExpRules[ERLid]的相应覆盖正反例索引表中,据此实现对原始状态空间的动态划分;图4显示了进行规则描述状态空间动态划分的完整处理流程。
图1显示了汉语基本块规则的自动学习和扩展进化系统的总体结构,具体的处理过程分为以下两个阶段第一阶段基本规则学习。处理目标是,从标注语料库中自动提取所有基于词类标记描述的基本规则,分析提取所有这些词类标记描述串的标注正反例形成基本规则描述状态空间,通过可靠性分析函数分类汇总得到4个基本规则数据文件,选择所有可扩展的基本规则保存入待扩展规则数据文件中,并进一步提取针对每个待扩展规则的状态空间数据文件和标注句子数据文件集合作为后续进化学习的初始数据。具体处理通过以下3个模块的协同配合来完成。
1)基本规则结构组合提取模块,具体步骤如下顺序从基本块标注语料库中读取一个标注句子,然后依次处理该标注句子中的每个基本块,获取其结构组合词类标记串和相应的归约标记,形成一个基本规则记录加入基本规则表中,并进行相同规则结构组合的正例频度统计汇总。以上过程不断重复进行,直至处理完该句子中的所有基本块和语料库中的所有标注句子,最终得到一个基本规则描述库,其中每条记录包含以下信息<词类标记描述串>+<归约标记>+<正例频度>。其基本流程见图5。
2)基本规则正反例训练模块,具体步骤如下顺序从基本块标注语料库中读取一个标注句子,从左到右扫描整个句子,从句子中的每个词语出发,组合形成所有可能的词语组合区间(长度在2到6之间),并获取该区间的词类标记串,如果该词类标记串在上面模块获取的基本规则表中出现,则相应规则的正反例总频度加1。以上过程不断重复进行,直至处理完该句子中的所有词语和语料库中的所有标注句子。最终可以得到一个完整的基本规则状态空间描述表,其中每条记录包含以下信息<词类标记描述串>+<归约标记>+<正例频度>+<反例频度>,其中<反例频度>通过上面计算得到的<正反例总频度>减去相应的<正例频度>得到。利用可靠性分析函数对所有这些基本规则状态空间数据进行分类汇总,保存形成4个不同可靠度类别的基本规则数据文件,并从中提取出所有可扩展的基本规则保存入待扩展规则数据文件中。基本流程见图6。
3)待扩展规则的状态空间数据生成模块,具体步骤如下顺序从基本块标注语料库中读取一个标注句子,从左到右扫描整个句子,从句子中的每个词语出发,组合形成所有可能的词语组合区间(长度在2到6之间),并获取该区间的词类标记串。如果该词类标记串在上面模块获取的待扩展规则表中出现,则生成该标注句子序列号,并根据该区间在句子中的标注状态确定相应的实例标志和归约标记,生成一个状态空间描述记录保存入状态空间数据文件中。以上过程不断重复进行,直至处理完整个句子。如果在该句子中发现了所需的待扩展规则描述实例,则生成一个正反例标注句子记录,并保存入相应的标注句子数据文件中。以上过程不断重复进行,直至处理完语料库中的所有标注句子。最终,可以得到以下处理结果针对每个待扩展规则,提取形成以该规则的词类标记串为基本文件名的两个数据文件a)状态空间数据文件,包含该规则覆盖的所有描述实例;b)标注句子数据文件,包含了该规则覆盖的所有正反例标注句子。基本流程见图7。
第二阶段扩展规则进化。处理目标是通过引入规则内部词汇约束和外部语境限制,对各个待扩展规则覆盖的状态空间进行动态划分,争取获取更多描述能力更强的、更为可靠的扩展规则。
图8给出了扩展规则进化学习的完整处理流程,它的输入信息包括A.待扩展规则表若干可扩展的基本规则,由上面的基本规则正反例训练模块提供;B.状态空间描述文件包含了每个待扩展规则对应的状态空间数据文件和标注句子数据文件,由上面的待扩展规则的状态空间数据生成模块产生;C.词汇知识库规则扩展进化时的重要外部语言资源;具体处理过程为首先读入待扩展规则表,顺序获取一条待扩展的基本规则,读入该规则覆盖的所有正反例标注句子和状态空间描述实例,建立状态空间描述索引。然后,将该规则描述与相应的状态空间索引生成一个新记录,加入扩展处理队列中;并初始化扩展规则表。
核心进化过程是从扩展处理队列顺序获取一个记录,并进行以下处理针对状态空间中的每个描述实例,利用内部词汇约束和外部语境限制进行分层次的规则信息扩展(基本流程见图2),同时将其状态空间中的各个实例按照其描述特点分别聚合在这些新生成的扩展规则下,形成一组新的“扩展规则+状态空间”组合(基本流程见图4);通过可靠性分析函数对这些新扩展规则的状态空间分布进行评估,按照按照其不同可靠度,分别保存到4个扩展规则数据文件中(基本流程见图9),在此过程中,不断提取其中的可扩展规则及其状态描述空间加入扩展处理队列。以上过程不断重复进行,直到扩展处理队列为空为止。这样就完成了对一个待扩展规则的扩展进化处理。
接着,获取下一条待扩展规则,不断重复以上过程,直至处理完所有的待扩展基本规则。
最终,我们可以得到一个完整的有效规则库,其中集成了以上两个处理阶段得到的所有基本块规则。它们按照“词类标记描述”→“词类标记描述+内部词汇约束”→“词类标记描述+外部语境限制”→“词类标记描述+内部词汇约束+外部语境限制”的进化顺序形成分层次、多粒度的规则结构信息描述体系,在每个层次又通过规则状态空间的分布评价得到一组高可靠和中度可靠规则,从而在规则描述正例覆盖率和规则可靠性之间找到了一个很好的平衡点。以此作为重要知识源应用于面向真实文本的汉语基本块分析器,可望获得较好的分析效果。
下面给出以上算法的一个具体实施例基本块规则“v+n”的自动学习和进化过程。具体实验条件见下节说明。
首先,经过第一阶段的基本规则提取和正反例训练过程,我们得到了以下基本规则v+n→{vp-PO,3140;np-DZ,48},3671它表示在目前的标注语料库中,有3140个相邻的“v+n”组合可以归约为“vp-PO”块,48个可归约为“np-DZ”块,有3671个不能成块(即标注反例)。因此,该规则的置信度为0.46,属于我们定义的低可靠规则,需要进行扩展进化处理。
然后,运行规则正反例提取工具,我们得到了目前语料库中包含“v+n”组合的所有标注句子。例如,在下面的基本块标注句子中,就包含了一个正例“倾注/v心血/n”和一个反例“维护/v世界/n”[tp-ZX长期/t以来/f],/w[np-SG他/rN]为/p[vp-SG维护/v][np-ZX世界/n和平/n]的/u[np-ZX崇高/a事业/n][vp-PO倾注/v心血/n],/w[vp-ZX四处/d奔走/v],/w[vp-AD作出/v了/u][ap-SG卓越/a]的/u[np-SG贡献/v]。/w在此基础上,可以启动第二阶段的扩展规则进化过程。这里主要利用了上面的标注句子实例来模拟规则信息的扩展进化流程(图4)。假设该标注句子对应的状态空间内部索引值为516,在第一轮针对规则描述“v+n”的扩展处理过程中,对标注反例“维护/v世界/n”,可以得到以下扩展规则1.v(winlVNPLIST)+n//考虑动词的句法特征能否带名词性宾语2.p_v+n//考虑左相邻词类限制3.v+n_n//考虑右相邻词类限制4.p_v+n_n//考虑左右相邻词类限制在把这些规则加入扩展规则表的同时,可以利用已知的反例标记和标注句子的内部索引动态调整扩展规则覆盖的正反例记录表信息。例如,假设上面的第1条规则应插入扩展规则表的第256个记录中,此时就可以在其中的反例信息表中增加一个状态空间索引516。而对标注正例“倾注/v心血/n”,则可以得到以下扩展规则1.v(词语=WC-L)+n(词语=WC-R)//考虑词汇关联对信息2.v(winlVNPLIST)+n//考虑动词的句法特征能否带名词性宾语
3.n_v+n//考虑左相邻词类限制4.v+n_wP//考虑右相邻词类限制5.n_v+n_wP//考虑左右相邻词类限制这样,经过第1轮的规则进化和汇总分析,我们得到了一组新的扩展规则和17个新的待扩展规则。从规则描述“v(词语=WC-L)+n(词语=WC-R)”启动第2轮进化学习过程,对标注正例“倾注/v心血/n”,可以得到以下扩展规则1.n_v(词语=WC-L)+n(词语=WC-R)//进一步考虑左相邻词类限制2.v(词语=WC-L)+n(词语=WC-R)_wP//进一步考虑右相邻词类限制3.n_v(词语=WC-L)+n(词语=WC-R)_wP//进一步考虑左右相邻词类限制这样,经过第2轮的规则进化和汇总分析,我们得到了65条高可靠规则和56条中度可靠规则,它们覆盖了99.5%以上的标注正例,显示了词汇约束和语境限制知识相配合在规则扩展进化中的重要作用。
以上过程不断重复进行,直至扩展处理队列为空。此时,可以得到315条高可靠规则和384条中度可靠规则,它们虽然只占了所有扩展规则总数的18%左右,但却覆盖了92%以上的标注正例,显示了很好的进化学习效果。通过以下公式可以计算出将这些规则应用于所有训练语料的预期分析精度EP=0.79EP=Σi(pfi*θi)/Σipfi]]>,比最初的“v+n”规则置信度0.46有了很大的提高。下面列出了一些自动习得的高可靠规则●v+n_wP→{vp-PO,31;np-ZX,3},4//θ=0.89●v(词语=WC-L)+n(词语=WC-R)_V→{vp-PO,308},23//θ=0.93●n_v(词语=WC-L)+n(词语=WC-R)_wP→{vp-PO,121},0//θ=1●d_v(winl:VNPLIST)+n_wP→{vp-PO,53},6//θ=-0.90这个基本块分析器可以在任何PC兼容机上,用标准C/C++程序设计语言实现。
权利要求
1.汉语基本块描述规则的自动学习和扩展进化处理方法,其特征在于,所述方法依次含有以下步骤(1)计算机初始化,(1.1)形成语言知识库,包括基本块标注语料库和词汇知识库,其中I.基本块标注语料库,对汉语真实文本句子标注了词语、词类和基本块描述信息,其中句子总数用T表示;所标注的句子S=W+BC,W={<wi,ti>},wi为句子中的第i个词语,ti为第i个词语的词类标记,i∈[1,n],n为一个句子中的词语总数;BC={bcj},bcj为句子中的第j个基本块,j∈[1,bcs],bcs为该句子中的基本块总数;所述基本块分为,由一个词语组成的单词语基本块和由两个以上词语组成的多词语基本块;II.词汇知识库,保存各种词汇描述信息,包括以下内容词汇关联知识库,含有汉语常用实词之间形成的句法关系描述对,基本数据格式为{<词语1><词语2><词类1><词类2><句法关系标记>};特征动词表,含有从语法信息词典中提取出的能带不同类型宾语的动词词表信息,基本数据格式为{<动词词条>},按照不同的宾语类型组织成不同的动词表;名词语义信息表,含有汉语常用名词的11个语义类信息组织、人、人工物、自然物、信息、精神、事件、属性、数量、时间和空间,基本数据格式为{<名词词条><语义类标记>};(1.2)定义规则描述状态空间和基本块描述规则,其中规则描述状态空间定义如下针对某个特定的词语组合,从语料库标注句子中自动提取出以下描述实例<wi-1,ti-1>|<wi,ti>...<wj,tj>|<wj+1,tj+1>→[1|0]其中<wi,ti>表示句子中的第i个词语wi,和它的词类标记ti,[i,j]形成了满足特定条件的词语组合区间,wi-1表示其左相邻词语,wj+1表示其右相邻词语;“→1”表示该词语组合在此语境下形成一个基本块,即形成一个正例,此时进一步给出相应的基本块标记句法标记+关系标记;“→0”则表示该词语组合在此语境下不能形成一个基本块,即形成一个反例;所有这些描述实例将形成针对这个特定词语组合的规则描述状态空间;该状态空间中的所有正例形成正例集合,其中的正例总数为正例频度;所有反例形成反例集合,其中的反例总数为反例频度;针对上面的一个状态空间,定义一个基本块描述规则,其基本形式为<结构组合>→<归约标记><置信度>,其中结构组合描述各个基本块的内部组合结构,按照规则描述能力的不同分为两个层次a)基本规则,其结构组合描述是词类标记串,b)扩展规则,通过增加词汇约束和语境限制,形成描述能力更强的结构组合描述,归约标记包括句法标记和关系标记两部分,描述该基本块的基本句法信息;置信度给出了使用该规则的可靠性预期值,计算公式为θ=fp/(fp+fn),其中fp为规则状态空间覆盖的正例频度,fn为规则状态空间覆盖的反例频度;(1.3)设定以下数据结构成分序列栈ChkStack[]、基本规则表BasRules[]、扩展规则表ExpRules[]、状态空间描述表ZTList[]、正反例标注句子表ExamSents[]和扩展处理队列EPList[],其中I.成分序列栈ChkStack[],保存从基本块标注语料库句子中提取出的所有标注信息,包括词语、单词语基本块、多词语基本块等成分,形成针对一个句子的线性成分标注序列,每个栈记录包含以下信息<成分标志><成分左边界><成分右边界><句法标记><关系标记>,形成以下基本记录格式[cflag,cl,cr,cctag,crtag],其中成分标志cflag使用了以下字符表示不同的成分类别W-词语;B-单词语基本块;P-多词语基本块;成分左边界cl表示该成分在句子中的左边界位置,cl∈
;成分右边界cr表示该成分在句子中的右边界位置,cr∈[1,n];句法标记cctag表示该成分的外部句法功能,对词语成分,保存它的词类标记,具体内容包括n-名词,s-处所词,t-时间词,f-方位词,r-代词,vM-助动词,v-动词,a-形容词,d-副词,m-数词,q-量词,p-介词,u-助词,c-连词,y-语气词,e-感叹词,w-标点符号;对基本块成分,保存它的句法标记,具体内容包括np-名词块,vp-动词块,sp-空间块,tp-时间块,mp-数量块,ap-形容词块,dp-副词块;关系标记crtag表示相应成分的内部语法关系,对词语成分,保存它的词语信息;对基本块成分,保存它的关系标记,具体内容包括ZX-右角中心结构,LN-链式关联结构,LH-并列关系,PO-述宾关系,SB-述补关系,AD-附加关系,AM-歧义区间,SG-单词语块,其中右角中心结构,表示基本块中的所有词语直接依存到右角中心词,形成一个右向中心依存结构,基本模式为A1...AnH,依存关系为A1→h,...,An→H,H为整个基本块的句法语义中心词,A1,...,An为修饰词;链式关联结构,表示基本块中的各个词语依次依存到其直接右相邻的词语,形成一个自左向右排列的多中心依存关系链,基本模式为H0H1...Hn,依存关系为H0→H1,...,Hn-1→Hn,Hi,i∈[1,n-1]成为不同层次的语义聚合中心,Hn为整个基本块的句法语义中心词;并列关系,表示基本块中的各个词语形成并列结构;述宾关系,表示基本块中的两个词语形成述宾结构;述补关系,表示基本块中的两个词语形成述补结构;附加关系,表示基本块中的两个词语形成附加结构;II.基本规则表BasRules[]保存所有基于词类标记串描述的基本规则,其基本记录格式为[r_stru,r_tag,fp,fn],其中r_stru为规则结构组合,r_tag为归约标记,fp为正例频度,fn为反例频度;III.扩展规则表ExpRules[]保存所有增加词汇约束和语境限制条件描述的扩展规则,其基本记录格式为[r_stru,r_tag,fp,fn,pelist,nelist],其中r_stru,r_tag,fp,fn定义同BasRules[],pelist为规则状态空间覆盖的所有正例的索引信息表,nelist为规则状态空间覆盖的所有反例的索引信息表;IV.状态空间描述表ZTList[]保存每个规则描述状态空间的相关数据,基本格式为[SentID,LWP,RWP,EF,r_tag],其中句子序列号SentID对规则描述实例出现的每个标注句子,给出一个唯一的序列号ID;左边界位置LWP,保存相关描述实例在一个标注句子中出现的左边界词语位置;右边界位置RWP,保存相关描述实例在一个标注句子中出现的右边界词语位置;实例标志EF,表示相应描述实例的类别1-正例,0-反例;归约标记r_tag,保存基本块描述实例的句法标记和关系标记信息,对标注反例,为NULL;V.正反例标注句子表ExamSents[]保存每个状态空间覆盖的描述实例出现的所有标注句子,基本格式为<句子序列号SentID,标注句子内容串S>;VI.扩展处理队列EPList[]保存各个待扩展规则的结构组合和相应的状态空间信息,基本格式为<待扩展规则的结构组合串r_stru,状态空间索引ZTIndexs>,其中每个索引值指向状态空间描述表ZTList[]的一个记录;(1.4)加载以下基本处理模块(1.4.1)规则可靠性判定模块,通过选择不同的置信度和正例频度阈值,将所有自动习得的规则按其可靠性程度分成高可靠、中度可靠、低度可靠和不可靠4个等级,其步骤如下第一步输入规则的正例和反例频度fp和fn,计算规则置信度θ=fp/(fp+fn);第二步按照正例频度fp和置信度θ,进行以下可靠性分级处理,并返回不同评价值如果符合下列条件之一,则为高可靠规则,返回1(fp>=10)&&(θ>=0.85)或((fp>=5)&&(fp<10))&&(θ>=0.9)或((fp>=2)&&(fp<5))&&(θ>=0.95)如果符合下列条件之一,则为中度可靠规则,返回2(fp>=10)&&(θ>=0.5)或((fp>=5)&&(fp<10))&&(θ>=0.55)或((fp>=2)&&(fp<5))&&(θ>=0.6)或(fp>0)&&(θ>=0.6)如果符合下列条件之一,低度可靠规则,返回3(fp>=10)&&(θ>=0.1)或((fp>=5)&&(fp<10))&&(θ>=0.2)或((fp>=2)&&(fp<5))&&(θ>=0.3)或(fp>0)&&(θ>=0.3)其他情况,为不可靠规则,返回4;利用这个可靠性分析函数对基本规则表和扩展规则表进行分类汇总,得到下列中间数据文件基本规则数据文件针对所有经过正反例训练的基本规则,通过四个数据文件保存具有不同可靠度的基本规则信息,数据格式同基本规则表BasRules[];待扩展规则数据文件从所有经过正反例训练的基本规则集合中,选择所有可扩展的基本规则保存入待扩展规则数据文件中,数据格式同基本规则表BasRules[],并进一步形成每条待扩展规则对应的状态空间数据文件和标注句子数据文件集合,作为规则进化学习的初始数据集;扩展规则数据文件集合针对每个待扩展规则,通过4个数据文件保存扩展进化过程中得到的具有不同可靠度的扩展规则信息,数据格式同扩展规则表ExpRules[];(1.4.2)规则结构组合扩展模块,依次执行以下步骤首先通过以下条件判断某个规则是否能扩展如果是高可靠规则,则不必扩展;如果规则覆盖的正例频度<Th,而Th=6,则不能扩展;如果规则中使用了所有内部词汇约束和外部语境限制信息,则不能扩展;其次,针对每个规则描述实例,按照规则现有结构组合描述r_stru,进行词语区间<L,R>的信息扩展,得到NRS条新扩展规则的结构组合描述串,具体步骤如下第一步检查规则现有结构组合描述r_stru,如果是基本规则,则需顺序进行“词汇约束+语境限制”扩展;如果已包含了词汇约束信息,则只需进行语境限制扩展;第二步利用词汇知识库,顺序检查词语区间<L,R>内部的词汇约束情况如果存在词汇关联对信息,则生成包含词汇关联对约束的结构组合描述串;如果存在特征动词表信息,则生成包含特征动词约束的结构组合描述串;如果存在名词语义类信息,则生成包含名词语义类约束的结构组合描述串;如果区间中出现副词、介词和方位词等特殊功能词词类标记,则生成包含相应词语约束信息的结构组合描述串;第三步针对每条基本词类串描述规则或经过词汇约束扩展的规则,考虑以下三种组合模式左相邻词类标记、右相邻词类标记和左右相邻词类标记,形成三条增加语境限制的规则描述;(1.4.3)状态空间动态划分模块,通过扩展规则表、扩展处理队列、状态空间描述表和正反例标注句子表的交互作用来实现,其中状态空间描述表和正反例标注句子表形成了对待扩展规则的完整状态空间描述,通过扩展处理队列中保存的状态空间索引与各个扩展规则建立起不同状态空间的动态内在联系,通过各个扩展规则内部保存的正反例索引表实现了对待扩展规则覆盖的完整状态空间的动态划分;具体实现步骤如下第一步从扩展处理队列中获取一个待扩展记录[r_stru,ZTIndexs];第二步获取该规则的状态空间索引表ZTIndexs中的索引项总数EISum;第三步顺序处理状态空间描述表中的每个记录,根据其状态空间索引获取每个规则描述实例的相关信息[SentID,LWP,RWP,EF,r_tag],并按照SentID从正反例标注句子表ExamSents[]检索得到相应标注句子串,定位该描述实例在句子中的准确左右边界位置,形成待扩展词语区间<LWP,RWP>;第四步利用词汇知识库,按照现有规则描述r_tag,调用步骤(1.4.2)给出的规则结构组合扩展模块进行区间<LWP,RWP>的信息扩展,得到NRS条新扩展规则结构组合描述串;第五步顺序将每个新扩展规则描述串加入扩展规则表ExpRules[]中,返回相应的扩展规则表的下标位置ERLid,按照当前实例的正反例标记EF,将当前的状态空间索引ZTIndexs[k]添加入ExpRules[ERLid]的相应正反例索引表中;另外,还定义以下参量和基本函数扩展学习启动阈值Th只有当规则的正例频度大于或等于该值时,才启动扩展进化学习,目前设置Th=6;min求最小值函数,min(x,y)表示选择x和y中的最小值;(2)提取基本规则正例描述信息,步骤如下(2.1)初始化i=0;(2.2)初始化成分序列栈ChkStack[];(2.3)从标注语料库中读取第i个标注句子,获取其相关信息存入ChkStack[];(2.4)初始化j=0;(2.5)顺序获取ChkStack[]中的第j个基本块的标注信息[cflag,cl,cr,cctag,crtag];(2.6)若该基本块不是多词语基本块,即cflag≠’P’,则转(2.9);(2.7)从中获取基本规则信息结构组合串r_stru=tcltcl+1...tcr,归约标记r_tag=cctag+crtag;(2.8)将相应基本规则记录[r_stru,r_tag,1,0]加入基本规则表中,并进行相同结构组合串的正例频度统计;(2.9)若j<bcsi,则令j=j+1,重复步骤(2.5)-(2.8);(2.10)若i<T,则令i=i+1,重复步骤(2.2)-(2.9);(2.11)输出获取的基本规则表{<结构组合描述>+<归约标记>+<正例频度>},终止;(3)进行基本规则正反例训练,步骤如下(3.1)读入步骤(2)生成的基本规则表BasRules[],初始化i=0;(3.2)从基本块标注语料库中读取第i个标注句子,获取其词语总数ni;(3.3)从左到右扫描整个句子,从句子中的每个词语出发,组合形成所有可能的长度在2到6之间的词语区间<j,k>,并获取该区间的词类标记串tjtj+1...tk,如果该词类标记串在基本规则表中出现,则相应规则的正反例总频度加1;(3.4)若i<T,则令i=i+1,重复步骤(3.2)-(3.3);(3.5)利用步骤(1.4.1)中的可靠性分析函数对所有经过正反例训练的基本规则进行分类汇总,分别保存入4个基本规则数据文件中;(3.6)提取所有可扩展的基本规则保存入待扩展规则数据文件中,终止;(4)生成待扩展规则的状态空间描述数据,步骤如下(4.1)从步骤(3)生成的待扩展规则数据文件中读入待扩展规则表,初始化i=0;(4.2)从基本块标注语料库中读取第i个标注句子S,获取其词语总数ni;(4.3)初始化句子中发现的待扩展规则描述实例的计数器IsSent=0;(4.4)从左到右扫描整个句子,从句子中的每个词语出发,组合形成所有可能的长度在2到6之间的词语区间<j,k>,并获取该区间的词类标记串tjtj+1...tk;(4.5)如果该词类标记串在待扩展规则表中出现,则生成该标注句子序列号SentID,并根据该区间在句子中的标注状态确定相应的实例标志EF和归约标记r_tag,生成一个状态空间描述记录[SentID,j,k,EF,r_tag],保存入相应的状态空间数据文件中,并令IsSent=IsSent+1;(4.6)若句子中没有发现相应的待扩展规则描述实例,即IsSent=0,则转(4.8);(4.7)生成正反例标注句子记录[SentID,S],保存入相应的标注句子数据文件中;(4.8)若i<T,则令i=i+1,重复步骤(4.2)-(4.7),否则终止;(5)进行基本规则的扩展进化学习,步骤如下(5.1)从步骤(3)生成的待扩展规则数据文件中读入待扩展规则表,获取待扩展规则总数WERSum,初始化r=0;(5.2)获取第r条待扩展规则的结构组合r_strur,选择确定相应的正反例标注句子和状态空间数据文件;(5.3)从状态空间数据文件中读入状态空间描述表ZTList[],从正反例标注句子数据文件中读入正反例标注句子表ExamSents[],建立状态空间索引ZTIndexs;(5.4)生成一个新记录[r_strur,ZTIndexs],加入扩展处理队列中;(5.5)初始化扩展规则表;(5.6)调用步骤(1.4.3)给出的状态空间动态划分模块,进行规则扩展进化学习;(5.7)对新获取的扩展规则进行可靠性分析和数据保存,步骤如下(5.7.1)获取新获取的扩展规则总数ExpRSum;(5.7.2)初始化扩展规则表下标控制变量k=0;(5.7.3)获取第k条扩展规则[r_stru,r_tag,fp,fn,pelist,nelist];(5.7.4)根据其正反例频度fp,fn进行可靠性分析,得到其可靠性分类标记;(5.7.5)按照其不同可靠度,分别保存到4个扩展规则数据文件中;(5.7.6)若该规则还能进一步扩展,则生成一个新记录[r_stru,pelist+nelist],加入扩展处理队列中;(5.7.7)若k<ExpRSum,则令k=k+1,重复步骤(5.7.3)-(5.7.6);否则终止;(5.8)若扩展处理队列不为空,则转(5.5);(5.9)若r<WERSum,则令r=r+1,重复步骤(5.2)-(5.8);否则终止。
全文摘要
汉语基本块描述规则的自动学习和扩展进化处理方法,属于自然语言处理应用领域,其特征在于通过引入置信度评价机制,快速排除在不同学习阶段得到的大量不可靠的规则描述,大大提高了规则自动获取的处理效率;利用词汇知识库将大量来自不同语言资源的丰富外部知识引入规则的学习进化过程中,形成一个开放的学习环境,打破了因训练语料数量不足对自动学习能力提高的限制;从最初的词类标记串描述规则出发,不断引入更多的内部词汇关联和外部语境限制约束知识,对其覆盖的正反例状态空间进行动态划分,使之逐步进化为描述能力更强的结构化规则,形成分层次、多粒度的基本块规则描述体系。
文档编号G06F17/27GK101021842SQ20071006429
公开日2007年8月22日 申请日期2007年3月9日 优先权日2007年3月9日
发明者周强 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1