基于动态规划的文本概念关系自动提取方法

文档序号:6517235阅读:534来源:国知局
专利名称:基于动态规划的文本概念关系自动提取方法
技术领域
本发明属于计算机语言信息处理和机器学习领域,特别涉及到生物文献领域的概念实体关系的自动挖掘和发现。
背景技术
随着计算技术、信息技术和互联网络的发展,人们对文本信息处理有了更高的要求,从自然语言描述的文本中自动挖掘和发现概念实体(比如机构,组织,人物,时间,地点等),以及概念之间的关系(比如“人物”在“机构”中任职),就是其中的重要内容之一。信息提取(Information Extraction,简称IE),研究从文本中获取用户感兴趣的相关信息,已经受到越来越多研究者的关注。许多基于自然语言处理或机器学习的算法和系统被相继研制开发。
自动生物文献信息提取作为IE研究内容的一个重要分支,近年来受到越来越多的关注。她不仅具有很强的研究价值(比如BioNLP即生物学自然语言处理,已经成为最热门的研究课题之一),也极具经济价值。因为从文献中自动提取蛋白,基因,病毒和药物之间的关系,不仅能加速生物制药的周期,攻克人类的疑难杂症,也有助于生物学家探索人类生命奥秘等重大的科学问题。当前国际上,对生物文献挖掘和知识发现取得了很多研究成果,建立了很多相关的知识库,比如描述蛋白之间作用关系的BIND(Biomolecular Interaction NetworkDatabase)。同时,国际上也出现了一些自动提取概念间关系的研究系统。这些系统通常结合了自然语言处理、数据挖掘和信息抽取等技术,并把它们应用到生物文献的处理中去,取得了一定的成果,但也存在很大的不足。一般来说,存在三类方法第一类方法是基于自然语言处理技术的,通常都采用了句法或语法分析,在分析策略上则采用浅层分析(shallow parsing)和深层分析(full parsing)的策略。这类系统大都比较复杂,而且适应性较差,准确率较低。应用到特定领域时,由于不能很好地处理领域文本的特殊现象,导致系统性能急剧降低。比如在生物文献领域,由于分析器不能很好地处理领域内的专业知识和与此相关的特殊语法和句法现象,因此导致性能的急剧降低。
第二类方法是基于统计学习的。常用的模型和方法如隐马尔科夫模型(HMM),支持向量机结合核方法(Kernel Method),条件随机域(Conditional Random Fields)。这类系统模型结构复杂,需要估计较多的模型参数,因此需要较多的语料资源,而且训练时收敛慢。在性能比较上,基于统计学习的系统通常都比较差,目前还很难达到实用的标准。
第三类方法是基于模板匹配的。这类关系提取系统结构简单,鲁棒性强,是目前关系提取系统的一个较好的选择,也被大多数实用系统所采纳。但是其中模板的获取大多采用人工的方式,由用户或者专家制定。这样的系统很死板,扩充性差。而且由于特定的专家知识的有限性,往往不能真实反映数据的情况,从而导致遗漏和错误的发生。同时,人工模板的表示和获取不能随着数据环境的改变而作相应的调整。这些变化不能随时反映到模板的变化中。因此非常需要由数据驱动的模板生成算法。近几年来,虽然也有一些自动模板生成的算法,比如基于正规表达式(Regular Expression)和框架表示(Frame)的学习算法,但是这些方法需要事先标注好关系的语料资源,或者需要事先提供学习的种子。

发明内容
本发明的目的是针对已有系统的不足,提出了基于动态规划的关系自动提取算法。使用该方法,用户可以从训练语料中自动提取出可能的模板候选组成模板库,在这个模板的基础上,利用模板匹配算法从文本中提取描述概念实体之间的作用关系。本方法不仅模型结构简单,而且性能也达到了实用的标准。该方法的思路是1.将文本中的句子看成一个关于句法标记的序列,相似的描述方式在序列中一定重复出现;2.能从训练语料中自动得到对齐模型的参数及相应的模板库,完全由数据驱动,能真实地反映数据体现的描述形式;3.将句子的序列两两作对齐,对齐的部分可以作为模板的候选,通过过滤规则对这些候选进行筛选,最后得到实用的模板库;4.对于每个模板,能自动得到描述模板中各个成分的词集合;5.通过模板匹配算法,从模板中直接得到概念间关系的描述;6.模型参数简单,基于动态规划的计算,算法的复杂度低。
本发明的特征它是在计算机上完成的,依次还有如下步骤步骤1.针对待提取概念关系的文本进行数据预处理步骤1.1利用权利说明书中表2中的常用词性标注对所述文本中的句子进行句法分析,得到句子的句法标记序列;
步骤1.2识别文本中的概念实体类别;步骤1.3根据权利说明书中表2的句法标记和概念实体编号,对句法标记序列进行编码转换,得到关于编码的字符串;步骤2.对齐模型的参数估计,依次含有以下步骤步骤2.1向计算机程序中输入编码序列X=(x1,x2,…,xn)和Y=(y1,y2,…,ym),每个X和Y都是一个编码的字符串,这两个编码序列的长度分别是n和m;步骤2.2利用下述公式1a和1b,建立得分值的矩阵F,并找到矩阵F中的最大得分值F(i,j);公式(1a)F(i,0)=0,F(0,j)=0,xi,yj∈∑公式(1b)F(i,j)=max0F(i-1,j-1)+s(xi,yj)F(i-1,j)+s(xi,-′′)F(i,j-1)+s(-′′,yj)]]>其中,i是编码序列X中各编码的顺序号,i=1,2,…,n;j是编码序列Y中各编码的顺序号,j=1,2,…,m;∑表示所有的句法标记和概念实体类别的编码;‘-’代表一个空格,也就是序列中的非空格编码可能和一个空格对齐,这里空格也叫做GAP;F(i-1,j-1)表示X和Y的前缀子串Xi-1=(x1,x2,…,xi-1)和Yj-1=(y1,y2,…,yj-1)的对齐得分值,其他F(i,j-1),F(i-1,j)类似;公式(1a)和(1b)表示两个序列的最佳得分值由他们的前缀子串的对齐得分递归计算得到;s(xi,yj)表示xi和yi对齐时的得分,按如下公式计算s(x,y)=log[p(x,y)/(p(x)*p(y))],s(x,y)=s(y,x),p(x),p(y)表示编码x,y在各自序列中的出现概率,当编码用a表示时,
p(a)=C(a)+1Σall x[C(x)+1],]]>C(a)表示编码a在训练集合中出现的次数;p(x,y)表示在两个对齐的序列中,x和y对齐的概率,当用a,b分别表示这两个编码x,y时,计算如下p(a,b)=C(a,b)+1Σall pairs(x,y)[C(x,y)+1],]]>C(a,b)表示a和b对齐的次数;当非空格编码和空格对齐时,s(a,′-′)=s(′-′,a)应该为负值;步骤2.3在得到对齐模型的参数后,利用步骤2.2中的公式(1a)和(1b)可以得到m*n个得分值,从所有这些得分值最大的F(i,j)开始回溯,沿着最大值计算的路径开始,到F(k,h)=0的那条路径就是最佳的局部对齐方式,该过程依次含有如下步骤设定k=i,h=j,进行如下循环直到F(k,h)=0(1)如果F(k,h)==F(k-1,h-1)+s(xk,yh)则k=k-1;h=h-1;a=xk;b=yh,继续往下循环(2)如果F(k,h)==F(k-1,h)+s(xk,-)则k=k-1;a=xk;b=‘-‘,继续往下循环(3)如果F(k,h)==F(k,h-1)+s(-,yh)则h=h-1;a=‘-‘;b=yh,继续往下循环(4)将a加入到Xa的头部,将b加入到Yb的头部;循环结束,输出Xa和Yb作为最后对齐的结果;步骤3.生成模板步骤3.1设定模板结构每个模板有一个句法标记序列,表达一定的文本描述方式;模板中每个成分有一个词集合,而概念实体的词集合用一个*号表示,每个模板有一个计数(count),记录这个模板在训练过程中被对齐的次数;不同模板成分的词集合用分号隔开(;),同一模板成分的词集合之间的词用空格隔开;
所述模板结构的代码为(C/C++语言)intm_length;//模板的长度List*m_pWordsList;//模板中各个成分的词列表char*m_pat;//模板的句法标记的16进制编码序列intm_count;//模板在训练过程中被对齐的次数步骤3.2生成模板,依次含有如下步骤步骤3.2.1向所述的计算机程序输入模板计数的阈值d,训练语料中所有句子的编码序列T=(t1,t2,…,tn),每个ti是一个句子的编码序列;步骤3.2.2对T中的每个编码序列,删除句法标记为DT(定冠词),RB,RBS,RBR(副词)所对应的编码;序列的其他部分保留不变;步骤3.2.3从集合T中任选两个ti和tj,循环如下操作3.2.3.1步对ti和tj应用步骤2.3的局部对齐算法,设输出结果为Xa和Yb;3.2.3.2步将Xa和Yb中的相同位置的相同编码作为模板p的编码序列,将相应位置的词索引加入到模板结构中;3.2.3.3判定p是否符合下述过滤规则若模板中既不包含名词成分(NN)又不包含动词成分(VB),则拒绝该模板;若模板中最后一个句法标记为IN或TO,则拒绝该模板;若句法标记CC的左邻成分不等于右邻成分,则拒绝该模板;若模板中概念实体类别数目不等于2个,则拒绝该模板;如果模板被拒绝,转到第3.2.3步继续执行;3.2.3.4步如果p已经在P中存在,将p的模板计数(count)加1;否则,将p加入到P中,其模板计数为1;3.2.3.5步如果集合T中所有的编码序列的两两组合都计算完,退出此循环;步骤3.2.4根据设定的模板计数的阈值d,过滤掉模板库P中的模板计数小于d的模板;步骤3.2.5输出模板库P;步骤4.自动提取概念间关系步骤4.1把概念间关系定义为一个用subject,action,object表示的三元组,其中,Subject表示关系中的主动者,即谁发起了此关系;Action表示描述关系的性质或种类的动词(VB,VBN)或者动名词(NN);Object表示关系中的被动者,即关系的结果或影响作用于object上;步骤4.2利用如下规则,从模板匹配结果中提取关系若模板中的第一个概念实体后面有VBN(被动词),则第一个概念实体为Object,第二个为Subject;若模板中的第一个概念实体后面有IN且该模板成分的词集合为{by},则第一个概念实体为Object,第二个为Subject;除第一种和第二种情况外的其他情况下,模板中的第一个概念实体为Subject,第二个概念实体为Object,模板中的VB,VBN或NN为Action。
在模板匹配过程中,我们还采用了自然语言处理的技术,对句子的结构进行分析(如并列结构,同位结构,限制性定语和非限制性定语从句等各种从句分析),取得了很好的性能。为了验证本发明的有效性,我们进行了关系提取的实验。以从文本中提取蛋白作用关系为例,我们手工收集了约1000个描述蛋白关系的英文句子。将这些句子分成训练集合(800句)和测试集合(200句)两部分,其中训练集合用以获取对齐模型参数和生成模板,测试集合用来测试本发明的性能。程序运行环境为CPU1.8G内存512M或者更高的配置。对单个关键词(如interact,modify,activate),本发明取得了93%的平均精度(precision),71%的平均回收率(recall),见表1。
此外,从模型的结构上说,我们只需要估计对齐模型的参数,基于动态规划的算法计算效率高,算法复杂度低。对比其它基于复杂统计模型的系统而言,本方法具有较强的优势。
表1在测试集和训练集上的关系提取性能


本发明能自动从数据中发现和提取用以描述概念实体间关系的模板,以及自动获取模板成分中的词集合,通过模板匹配方法和模板转换,可以自动得到概念之间的关系。模型结构和参数简单,算法复杂度低,在实验测试数据上取得了很好的性能。同时本发明说明的算法有较好的推广性和适应性,不仅适用于生物文献领域的概念实体间的关系提取,还适应于其他领域的文本自动关系提取,具有良好的应用前景。


图1.概念关系自动提取方法的流程图;图2.参数估计程序流程图;图3.对齐算法流程图;图4.模板结构4a.模板结构;4b.模板所能表达的文本格式;图5.模板生成算法的程序流程;图6.从语料中自动提取的模板;图7.从模板形式到关系形式的转换。
具体实施例方式
附图1描述了本方法的流程。本发明对于提取概念关系具有广泛的适应性,为了描述的方便,本发明中的描述以生物文献中的蛋白与蛋白之间的作用关系为实例。下面就以上方法详细进行说明1.数据预处理数据预处理包括对句子进行句法分析,得到句子的句法标记序列;识别句子的概念实体类别;对句法标记进行编码转换,得到关于编码的字符串。
本发明需要首先对每个句子进行句法分析,然后将句子表示成一个关于句法标记的字符串。本发明中常用的句法标记见表2。然后,对句子中的概念实体进行识别(比如识别蛋白,基因,病毒等概念),将句中的概念实体按类别分别赋以相应的标记。为了后续算法顺利进行,还需要对句法标记进行编码,即将多个字符的句法标记编码成单字母。最后对齐算法利用句子的编码序列进行局部对齐。
表2模板中常用的词性标注

举例来说,下面例句对应的两个序列如下原句APC/C specifically interacted with SKR-1.
句法标记序列PTN RB VBZ IN PTN16进制编码序列0x35 0x2E 0x2D 0x25 0x35(这里,APC/C和SKR-1都属于概念实体类别1(蛋白))在模板生成的时候,由于训练数据总是有限的,因此为了避免数据稀疏引起的模板缺失问题,将句法标记进行规一化●NN,NNP规一为NN●NNS,NNPS规一为NNS●VB,VBZ,VBP,VBG规一为VB●VBD,VBN规一为VBN模板生成的时候,由于某些句法标记出现的次数很少(比如VBG),因此生成的模板很少,经过规一化后,这些较少的句法标记能归到大类标记中(如VBG→VB),因此能有效的避免数据稀疏带来的影响。
2.对齐模型的参数估计本方法的第二步重要步骤就是要从训练语料中自动统计得到对齐模型的参数。给定两个句子的编码序列X=(x1,x2,…,xn)和Y=(y1,y2,…,ym),每个x和y都是一个编码的字母。这两个编码序列的长度分别是n和m。为了评价这两个序列的局部最大相似性,也就是需要把这两个序列以最好的方式对齐起来,可以定义评价函数F(i,j),表示序列X中的x1x2…xi和Y中的y1y2…yj一种最好对齐方式的得分。这个得分可以通过动态规划的方式得到F(i,0)=0,F(0,j)=0,xi,yj∈∑ (1a)F(i,j)=max0F(i-1,j-1)+s(xi,yj)F(i-1,j)+s(xi,-′′)F(i,j-1)+s(-′′,yj)---(1b)]]>∑表示所有的句法标记和概念实体类别的编码;‘-’代表一个空格,也就是序列中的字母可能和一个空格对齐,也叫GAP;s(xi,yj)表示xi和yj对齐时的得分,s(xi,′-′)表示xi和空格对齐时的得分,表示在Y序列中插入一个空格;s(′-′,yj)表示yi和空格对齐时的得分,表示在X序列中插入一个空格;这些得分用下式计算s(x,y)=log[p(x,y)/(p(x)*p(y))] (2)显然s(x,y)=s(y,x)。P(x)表示x编码的出现概率,p(x,y)表示在两个对齐的序列中,x和y对齐的概率。这些概率可以从人工对齐的序列中估计如下p(a)=C(a)+1Σall x[C(x)+1]---(3a)]]>
p(a,b)=C(a,b)+1Σall pairs(x,y)[C(x,y)+1]---(3b)]]>C(a)表示编码a在训练集合中出现的次数;C(a,b)表示a和b对齐的次数。注意分子分母都在原先的计数上加了1,是为了避免0计数的出现。(2)和(3a-b)只能计算非空格编码的得分。参数估计的程序流程见附图2。当一个编码和空格对齐时,这种对齐方式不应该被鼓励,因此在得分上应该给一个惩罚,也就是s(a,′-′)应该为负值。表3显示了算法中用到的惩罚得分表表3惩罚得分表,s(a,‘-’)=s(‘-’,a)

(1a-b)表示两个序列对齐的最佳得分可以由他们的前缀子串的对齐得分递归计算得到。在得到对齐模型的参数后,利用公式(1a-b)可以得到m*n个得分值,从所有这些得分值最大的F(i,j)开始回溯,沿着最大值计算的路径开始,到F(k,h)=0的那条路径就是最佳的局部对齐方式。
具体的算法如下输入编码序列X=(x1,x2,…xn)和Y=(y1,y2,…,ym)输出X和Y对齐的结果Xa和Yb1.利用公式(1a-b),建立得分值的矩阵F;2.找到矩阵F中最大的得分值F(i,j);3.设定k=i,h=j,循环如下直到F(k,h)=0(3.1)如果F(k,h)=F(k-1,h-1)+s(xk,yh)则k=k-1;h=h-1;a=xk;b=yh(3.2)如果F(k,h)=F(k-1,h)+(xk,-)则k=k-1;a=xk;b=‘-‘
(3.3)如果F(k,h)==F(k,h-1)+s(-,yh)则h=h-1;a=‘-‘;b=yh(3.4)将a加入到Xa的头部,将b加入到Yb的头部;4.输出Xa和Yb作为最后对齐的结果。
算法实现的程序流程见附图3。
获取对齐模型的参数时,所使用的训练数据是人工事先对齐的句子对。我们的方法中,采用了大约50对这样的句子对。举例来说,句子对的对齐形式如下

3.模板生成以提取生物文献中的蛋白之间的作用关系为实例,算法中所使用的模板结构如图3所示。每个模板有一个句法标记序列,如“NN IN CE1CC CE1”(CE1表示一类概念实体,在示例中是蛋白实体类)。模板中的每个成分有一个词集合,如图3模板中的NN成分包含词interaction和association。概念实体的词集合用一个星号(*)代替。每个模板有一个计数(count),记录这个模板在训练过程中被对齐的次数。每个模板可以表达一定的文本描述方式,如图4中的模板能表达图4(b)所示的四种描述方式。该模板结构的词集以序列的方式表示成Interaction association;between of;*;and;*即不同模板成分的词集合用分号隔开(;),同一模板成分的词集合之间的词用空格隔开。概念实体类的词集合用星号代替(*)。
该模板结构的程序代码为int m_length;//模板的长度List*m_pWordsList;//模板中各个成分的词列表char*m_pat;//模板的句法标记的16进制编码序列int m_count;//模板在训练过程中被对齐的次数在此模板结构的基础上,模板生成算法如下1.输入模板计数的阈值d,训练语料中所有句子的编码序列T=(t1,t2,…,tn),每个ti是一个句子的编码序列输出模板库P
2.对T中的每个编码序列,删除句法标记为DT(定冠词),RB,RBS,RBR(副词)所对应的编码;序列的其他部分保留不变;3.从集合中任选两个ti和tj,循环如下操作(3.1)对ti和tj应用局部对齐算法,设输出结果为Xa和Yb;(3.2)将Xa和Yb中的相同位置的相同编码作为模板p的编码序列,将相应位置的词索引加入到模板结构中;(3.3)判定p是否符合过滤规则,若符合过滤规则,则拒绝该模板,转到第3步继续执行;(3.4)如果p已经在P中存在,将p的模板计数(count)加1;否则,将p加入到P中,其模板计数为1;(3.5)如果集合T中所有的组合都计算完,退出此循环;4.根据设定的模板计数的阈值d,过滤掉模板库P中的模板计数小于d的模板5.输出模板库P该算法中第(3.3)步所采用过滤规则包括●如果模板中既不包含名词成分(NN)又不包含动词成分(VB),则拒绝该模板●如果模板中最后一个句法标记为IN或TO,则拒绝该模板●如果句法标记CC的左邻成分不等于右邻成分,则拒绝该模板●如果模板中概念实体类别数目不等于2个,则拒绝该模板,也就是每个模板只允许出现两个概念实体算法(3.2)步从对齐序列中得到模板的程序代码如下3.2.1. 设对齐序列为Xa=(x1,x2,…,xm)和Yb=(y1,y2,…,ym)3.2.2. 最大连续块的索引位置k,最大连续块的长度为maxlen=0,当前块的长度为len=03.2.3. for i=m to 13.2.2.1. if(xi!=yi)and len>maxlen then k=i,maxlen=len,len=03.2.2.2. else len=len+13.2.2.3. i=i-13.2.4. k=k-1;3.2.5. Do loop while(xk==yk)
3.2.2.1. p=xk+p,这里的”+”号表示字符串连接3.2.2.2. k=k-13.2.6. 输出字符串p作为模板的编码序列这段程序的思想是首先找到对齐序列中最长的在相同位置字母相同的连续块,然后从这个连续块的位置开始,将这段连续块作为模板的编码序列。
附图5描述了模板生成算法的程序流程图。为了从文本中自动提取蛋白之间的作用关系(涉及到一类概念实体,即蛋白类PTN),附图6显示了从我们语料中自动获取的模板(阈值设定为0)。附图6表示了几个常见动词interact,bind,modify,associate的模板形式。
4.概念间关系自动获取前面说明了如何自动得到描述概念之间关系的模板,通过前述模板匹配算法,我们可以得到每个匹配实例,但为了得到关系,我们还需要定义关系并且实现从模板到关系的转换。在本发明中,概念间的关系被定义成一个三元组(subject,action,object),其中,Subject关系中的主动者,即谁发起了此关系Action描述关系的性质或种类的动词(VB,VBN)或者动名词(NN)Object关系中的被动者,即关系的结果或影响作用于object上。
接下来,利用如下规则实现从模板到关系的转换●如果模板中的第一个概念实体后面有VBN(被动词),则第一个概念实体为Object,第二个为Subject●如果模板中的第一个概念实体后面有IN且该模板成分的词集合为{by},则第一个概念实体为Object,第二个为Subject●除第一种和第二种情况外的其他情况下,模板中的第一个概念实体为Subject,第二个概念实体为Object,模板中的VB,VBN或NN为Action附图7以蛋白和蛋白之间的关系为例(PTN表示蛋白),表示从模板形式到关系形式的转换结果。通过关系形式,对每个模板匹配的结果,我们可以直接得到该结果对应的关系。举例来说,如果我们得到如下的模板NN IN PTN1IN PTN2activation phosphorylation;of;*;by;*;这个模板所表达的语义实际上是说PTN1is activated/phosphorylated by PTN2,利用转换规则中的第三条,很容易得到关系的描述方式为(PTN2,NN,PTN1)。
权利要求
1.基于动态规划的文本概念关系自动提取方法,其特征在于,它是在计算机上完成的,依次还有如下步骤步骤1.针对待提取概念关系的文本进行数据预处理步骤1.1利用权利说明书中表1中的常用词性标注对所述文本中的句子进行句法分析,得到句子的句法标记序列;步骤1.2识别文本中的概念实体类别;步骤1.3根据权利说明书中表1的句法标记和概念实体编号,对句法标记序列进行编码转换,得到关于编码的字符串;步骤2.对齐模型的参数估计,依次含有以下步骤步骤2.1向计算机程序中输入编码序列X=(x1,x2,…,xn)和Y=(y1,y2,…,ym),每个X和Y都是一个编码的字符串,这两个编码序列的长度分别是n和m;步骤2.2利用下述公式1a和1b,建立得分值的矩阵F,并找到矩阵F中的最大得分值F(i,j);公式(1a)F(i,0)=0,F(0,j)=0,xi,yj∈∑公式(1b)F(i,j)=max0,F(i-1,j-1)+s(xi,yj)F(i-1,j)+s(xi,′-′)F(i,j-1)+s(′-′,yj)]]>其中,i是编码序列X中各编码的顺序号,i=1,2,…,n;j是编码序列Y中各编码的顺序号,j=1,2,…,m;∑表示所有的句法标记和概念实体类别的编码;‘-’代表一个空格,也就是序列中的非空格编码可能和一个空格对齐,这里空格也叫做GAP;F(i-1,j-1)表示X和Y的前缀子串Xi-1=(x1,x2,…,xi-1)和Yj-1=(y1,y2,…,yj-1)的对齐得分值,其他F(i,j-1),F(i-1,j)类似;公式(1a)和(1b)表示两个序列的最佳得分值由他们的前缀子串的对齐得分递归计算得到;s(xi,yj)表示xi和yj对齐时的得分,按如下公式计算s(x,y)=log[p(x,y)/(p(x)*p(y))],s(x,y)=s(y,x),p(x),p(y)表示编码x,y在各自序列中的出现概率,当编码用a表示时,p(a)=C(a)+1Σall x[C(x)+1],]]>C(a)表示编码a在训练集合中出现的次数;p(x,y)表示在两个对齐的序列中,x和y对齐的概率,当用a,b分别表示这两个编码x,y时,计算如下p(a,b)=C(a,b)+1Σall pairs(x,y)[C(x,y)+1],]]>C(a,b)表示a和b对齐的次数;当非空格编码和空格对齐时,s(a,′-′)=s(′-′,a)应该为负值;步骤2.3在得到对齐模型的参数后,利用步骤2.2中的公式(1a)和(1b)可以得到m*n个得分值,从所有这些得分值最大的F(i,j)开始回溯,沿着最大值计算的路径开始,到F(k,h)=0的那条路径就是最佳的局部对齐方式,该过程依次含有如下步骤设定k=i,h=j,进行如下循环直到F(k,h)=0(1)如果F(k,h)==F(k-1,h-1)+s(xk,yh)则k=k-1;h=h-1;a=xk;b=yh,继续往下循环(2)如果F(k,h)==F(k-1,h)+s(xk,-)则k=k-1;a=xk;b=‘-‘,继续往下循环(3)如果F(k,h)==F(k,h-1)+s(-,yh)则h=h-1;a=‘-‘;b=yh,继续往下循环(4)将a加入到Xa的头部,将b加入到Yb的头部;循环结束,输出Xa和Yb作为最后对齐的结果;步骤3.生成模板步骤3.1设定模板结构每个模板有一个句法标记序列,表达一定的文本描述方式;模板中每个成分有一个词集合,而概念实体的词集合用一个*号表示,每个模板有一个计数(count),记录这个模板在训练过程中被对齐的次数;不同模板成分的词集合用分号隔开(;),同一模板成分的词集合之间的词用空格隔开;所述模板结构的代码为(C/C++语言)int m_length;∥模板的长度List*m_pWordsList;∥模板中各个成分的词列表char*m_pat;∥模板的句法标记的16进制编码序列int m_count;∥模板在训练过程中被对齐的次数步骤3.2生成模板,依次含有如下步骤步骤3.2.1向所述的计算机程序输入模板计数的阈值d,训练语料中所有句子的编码序列T=(t1,t2,…,tn),每个ti是一个句子的编码序列;步骤3.2.2对T中的每个编码序列,删除句法标记为DT(定冠词),RB,RBS,RBR(副词)所对应的编码;序列的其他部分保留不变;步骤3.2.3从集合T中任选两个ti和ti,循环如下操作3.2.3.1步对ti和ti应用步骤2.3的局部对齐算法,设输出结果为Xa和Yb;3.2.3.2步将Xa和Yb中的相同位置的相同编码作为模板p的编码序列,将相应位置的词索引加入到模板结构中;3.2.3.3判定p是否符合下述过滤规则若模板中既不包含名词成分(NN)又不包含动词成分(VB),则拒绝该模板;若模板中最后一个句法标记为IN或TO,则拒绝该模板;若句法标记CC的左邻成分不等于右邻成分,则拒绝该模板;若模板中概念实体类别数目不等于2个,则拒绝该模板;如果模板被拒绝,转到第3.2.3步继续执行;3.2.3.4步如果p已经在P中存在,将p的模板计数(count)加1;否则,将p加入到P中,其模板计数为1;3.2.3.5步如果集合T中所有的编码序列的两两组合都计算完,退出此循环;步骤3.2.4根据设定的模板计数的阈值d,过滤掉模板库P中的模板计数小于d的模板;步骤3.2.5输出模板库P;步骤4.自动提取概念间关系步骤4.1把概念间关系定义为一个用subject,action,object表示的三元组,其中,Subject表示关系中的主动者,即谁发起了此关系;Action表示描述关系的性质或种类的动词(VB,VBN)或者动名词(NN);Object表示关系中的被动者,即关系的结果或影响作用于object上;步骤4.2利用如下规则,从模板匹配结果中提取关系若模板中的第一个概念实体后面有VBN(被动词),则第一个概念实体为Object,第二个为Subject;若模板中的第一个概念实体后面有IN且该模板成分的词集合为{by},则第一个概念实体为Object,第二个为Subject;除第一种和第二种情况外的其他情况下,模板中的第一个概念实体为Subject,第二个概念实体为Object,模板中的VB,VBN或NN为Action。
全文摘要
基于动态规划的文本概念关系自动提取方法属于计算机语言信息处理领域,其特征在于它首先把文本中的句子视作句法标记的序列并予以编码化,在此基础上得到对齐模型的参数;利用该对齐模型把训练数据中的句子序列两两对齐,把对齐的部分看作模板候选,并设计了相应的模板结构,再利用过滤规则进行筛选,建立实用的模板库;最后通过模板匹配方法,从匹配结果中利用转换规则,自动得到最终的概念间关系。它具有模型参数简单,算法复杂度低和性能优越的优点。
文档编号G06F17/27GK1696933SQ20051001180
公开日2005年11月16日 申请日期2005年5月27日 优先权日2005年5月27日
发明者黄民烈, 朱小燕, 李明, 郝宇 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1