发明名称 基于动态规划的文本概念关系自动提取方法
摘要 基于动态规划的文本概念关系自动提取方法属于计算机语言信息处理领域,其特征在于:它首先把文本中的句子视作句法标记的序列并予以编码化,在此基础上得到对齐模型的参数;利用该对齐模型把训练数据中的句子序列两两对齐,把对齐的部分看作模板候选,并设计了相应的模板结构,再利用过滤规则进行筛选,建立实用的模板库;最后通过模板匹配方法,从匹配结果中利用转换规则,自动得到最终的概念间关系。它具有模型参数简单,算法复杂度低和性能优越的优点。
申请公布号 CN1696933A 申请公布日期 2005.11.16
申请号 CN200510011803.8 申请日期 2005.05.27
申请人 清华大学 发明人 黄民烈;朱小燕;李明;郝宇
分类号 G06F17/27;G06F17/30 主分类号 G06F17/27
代理机构 代理人
主权项 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)<math> <mrow> <mi>F</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>max</mi> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <mn>0</mn> <mo>,</mo> </mtd> </mtr> <mtr> <mtd> <mi>F</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>,</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <mi>s</mi> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>y</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mi>F</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>+</mo> <mi>s</mi> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>,</mo> <mo>&prime;</mo> <mo>-</mo> <mo>&prime;</mo> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mi>F</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <mi>s</mi> <mrow> <mo>(</mo> <mo>&prime;</mo> <mo>-</mo> <mo>&prime;</mo> <mo>,</mo> <msub> <mi>y</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </math> 其中,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表示时,<math> <mrow> <mi>p</mi> <mrow> <mo>(</mo> <mi>a</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mi>C</mi> <mrow> <mo>(</mo> <mi>a</mi> <mo>)</mo> </mrow> <mo>+</mo> <mn>1</mn> </mrow> <mrow> <munder> <mi>&Sigma;</mi> <mi>all x</mi> </munder> <mrow> <mo>[</mo> <mi>C</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>+</mo> <mn>1</mn> <mo>]</mo> </mrow> </mrow> </mfrac> <mo>,</mo> </mrow> </math> C(a)表示编码a在训练集合中出现的次数;p(x,y)表示在两个对齐的序列中,x和y对齐的概率,当用a,b分别表示这两个编码x,y时,计算如下:<math> <mrow> <mi>p</mi> <mrow> <mo>(</mo> <mi>a</mi> <mo>,</mo> <mi>b</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mi>C</mi> <mrow> <mo>(</mo> <mi>a</mi> <mo>,</mo> <mi>b</mi> <mo>)</mo> </mrow> <mo>+</mo> <mn>1</mn> </mrow> <mrow> <munder> <mi>&Sigma;</mi> <mrow> <mi>all pairs</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> </munder> <mo>[</mo> <mi>C</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>+</mo> <mn>1</mn> <mo>]</mo> </mrow> </mfrac> <mo>,</mo> </mrow> </math> 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。
地址 100084北京市北京100084-82信箱
您可能感兴趣的专利