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

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

Info

Publication number
CN1696933A
CN1696933A CN 200510011803 CN200510011803A CN1696933A CN 1696933 A CN1696933 A CN 1696933A CN 200510011803 CN200510011803 CN 200510011803 CN 200510011803 A CN200510011803 A CN 200510011803A CN 1696933 A CN1696933 A CN 1696933A
Authority
CN
China
Prior art keywords
template
sequence
coding
alignment
composition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN 200510011803
Other languages
English (en)
Inventor
黄民烈
朱小燕
李明
郝宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN 200510011803 priority Critical patent/CN1696933A/zh
Publication of CN1696933A publication Critical patent/CN1696933A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Machine Translation (AREA)

Abstract

基于动态规划的文本概念关系自动提取方法属于计算机语言信息处理领域,其特征在于:它首先把文本中的句子视作句法标记的序列并予以编码化,在此基础上得到对齐模型的参数;利用该对齐模型把训练数据中的句子序列两两对齐,把对齐的部分看作模板候选,并设计了相应的模板结构,再利用过滤规则进行筛选,建立实用的模板库;最后通过模板匹配方法,从匹配结果中利用转换规则,自动得到最终的概念间关系。它具有模型参数简单,算法复杂度低和性能优越的优点。

Description

基于动态规划的文本概念关系自动提取方法
技术领域
本发明属于计算机语言信息处理和机器学习领域,特别涉及到生物文献领域的概念实体关系的自动挖掘和发现。
背景技术
随着计算技术、信息技术和互联网络的发展,人们对文本信息处理有了更高的要求,从自然语言描述的文本中自动挖掘和发现概念实体(比如机构,组织,人物,时间,地点等),以及概念之间的关系(比如“人物”在“机构”中任职),就是其中的重要内容之一。信息提取(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 ) = max 0 F ( i - 1 , j - 1 ) + s ( x i , y j ) F ( i - 1 , j ) + s ( x i , - ′ ′ ) F ( i , j - 1 ) + s ( - ′ ′ , y j )
其中,
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++语言):
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和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:在测试集和训练集上的关系提取性能
keywords Precision(%)  Recall(%)   F-score(%)
Interact 训练集 89.9  69.4   78.4
测试集 92.9  69.3   79.4
Bind 训练集 92.5  72.6   81.3
测试集 92.6  72.8   81.5
Modify 训练集 94.1  83.9   88.7
测试集 93.6  76.8   84.4
Associate 训练集 98.3  65.6   78.7
测试集 100.  65.6   79.3
average 训练集 92.2  71.3   80.4
    测试集 93.7     70.7   80.6
本发明能自动从数据中发现和提取用以描述概念实体间关系的模板,以及自动获取模板成分中的词集合,通过模板匹配方法和模板转换,可以自动得到概念之间的关系。模型结构和参数简单,算法复杂度低,在实验测试数据上取得了很好的性能。同时本发明说明的算法有较好的推广性和适应性,不仅适用于生物文献领域的概念实体间的关系提取,还适应于其他领域的文本自动关系提取,具有良好的应用前景。
附图说明
图1.概念关系自动提取方法的流程图;
图2.参数估计程序流程图;
图3.对齐算法流程图;
图4.模板结构
4a.模板结构;4b.模板所能表达的文本格式;
图5.模板生成算法的程序流程;
图6.从语料中自动提取的模板;
图7.从模板形式到关系形式的转换。
具体实施方式
附图1描述了本方法的流程。本发明对于提取概念关系具有广泛的适应性,为了描述的方便,本发明中的描述以生物文献中的蛋白与蛋白之间的作用关系为实例。下面就以上方法详细进行说明:
1.数据预处理
数据预处理包括:对句子进行句法分析,得到句子的句法标记序列;识别句子的概念实体类别;对句法标记进行编码转换,得到关于编码的字符串。
本发明需要首先对每个句子进行句法分析,然后将句子表示成一个关于句法标记的字符串。本发明中常用的句法标记见表2。然后,对句子中的概念实体进行识别(比如识别蛋白,基因,病毒等概念),将句中的概念实体按类别分别赋以相应的标记。为了后续算法顺利进行,还需要对句法标记进行编码,即将多个字符的句法标记编码成单字母。最后对齐算法利用句子的编码序列进行局部对齐。
表2:模板中常用的词性标注
  标注名称   16进制编码     描述
    DT     0x20     定冠词
    NN     0x21     单数或者不可数名词,动名词
    NNS     0x22     复数名词
    NNP     0x23     指代性名词
    NNPS     0x24     指代性名词复数
    IN     0x25     介词,附属连词
    CC     0x26     并列连词
    TO     0x27     To
    VB     0x28     动词,原形
    VBD     0x29     动词,过去时
    VBG     0x2A     动词,现在进行时
    VBN     0x2B     动词,被动式
    VBP     0x2C     动词,非第三人称单数形式
    VBZ     0x2D     动词,第三人称单数形式
    RB     0x2E     副词
    RBR     0x30     副词比较级
    RBS     0x31     副词最高级
    JJ     0x32     形容词
    JJS     0x33     形容词最高级
    JJR     0x34     形容词比较级
    CE1     0x35     概念实体类别1
    CE2     0x36     概念实体类别2
举例来说,下面例句对应的两个序列如下:
原句:APC/C specifically interacted with SKR-1.
句法标记序列:PTN RB VBZ IN PTN
16进制编码序列: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 ) = max 0 F ( i - 1 , j - 1 ) + s ( x i , y j ) F ( i - 1 , j ) + s ( x i , - ′ ′ ) F ( i , j - 1 ) + s ( - ′ ′ , y j ) - - - ( 1 b )
∑表示所有的句法标记和概念实体类别的编码;‘-’代表一个空格,也就是序列中的字母可能和一个空格对齐,也叫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 ] - - - ( 3 a )
p ( a , b ) = C ( a , b ) + 1 Σ all pairs ( x , y ) [ C ( x , y ) + 1 ] - - - ( 3 b )
C(a)表示编码a在训练集合中出现的次数;C(a,b)表示a和b对齐的次数。注意分子分母都在原先的计数上加了1,是为了避免0计数的出现。(2)和(3a-b)只能计算非空格编码的得分。参数估计的程序流程见附图2。当一个编码和空格对齐时,这种对齐方式不应该被鼓励,因此在得分上应该给一个惩罚,也就是s(a,′-′)应该为负值。表3显示了算法中用到的惩罚得分表:
表3:惩罚得分表,s(a,‘-’)=s(‘-’,a)
 标记 s(a,′-′) 标记 s(a,′-′) 标记 s(a,′-′)
 CE1-CEn -10  IN -6  VB -7
 NN -8  CC -6  VBD -7
 NNS -7  TO -1  VBG -7
 VBN -7  VBP -7  VBZ -7
 RB -1  JJ -1
(1a-b)表示两个序列对齐的最佳得分可以由他们的前缀子串的对齐得分递归计算得到。在得到对齐模型的参数后,利用公式(1a-b)可以得到m*n个得分值,从所有这些得分值最大的F(i,j)开始回溯,沿着最大值计算的路径开始,到F(k,h)=0的那条路径就是最佳的局部对齐方式。
具体的算法如下:
输入:编码序列X=(x1,x2,…xn)和Y=(y1,y2,…,ym)
输出:X和Y对齐的结果Xa和Yb
1.利用公式(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对这样的句子对。举例来说,句子对的对齐形式如下:
AC is- shown- to- activateinhibit  -the  -activity -of  BD
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=0
3.2.3.     for i=m to 1
3.2.2.1.   if(xi!=yi)and len>maxlen then k=i,maxlen=len,len=0
3.2.2.2.   else len=len+1
3.2.2.3.   i=i-1
3.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-1
3.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 PTN1 IN PTN2           activation phosphorylation;of;*;by;*;
这个模板所表达的语义实际上是说PTN1 is activated/phosphorylated by PTN2,利用转换规则中的第三条,很容易得到关系的描述方式为(PTN2,NN,PTN1)。

Claims (1)

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 ) = max 0 , F ( i - 1 , j - 1 ) + s ( x i , y j ) F ( i - 1 , j ) + s ( x i , ′ - ′ ) F ( i , j - 1 ) + s ( ′ - ′ , y j )
其中,
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。
CN 200510011803 2005-05-27 2005-05-27 基于动态规划的文本概念关系自动提取方法 Pending CN1696933A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200510011803 CN1696933A (zh) 2005-05-27 2005-05-27 基于动态规划的文本概念关系自动提取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200510011803 CN1696933A (zh) 2005-05-27 2005-05-27 基于动态规划的文本概念关系自动提取方法

Publications (1)

Publication Number Publication Date
CN1696933A true CN1696933A (zh) 2005-11-16

Family

ID=35349659

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200510011803 Pending CN1696933A (zh) 2005-05-27 2005-05-27 基于动态规划的文本概念关系自动提取方法

Country Status (1)

Country Link
CN (1) CN1696933A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007143898A1 (fr) * 2006-05-22 2007-12-21 Kaihao Zhao Procédé pour l'extraction et le traitement d'informations selon un modèle ternaire
CN101950306A (zh) * 2010-09-29 2011-01-19 北京新媒传信科技有限公司 新词发现中的字符串过滤方法
CN101470699B (zh) * 2007-12-28 2012-10-03 日电(中国)有限公司 信息提取模型训练装置、信息提取装置和信息提取系统及其方法
CN102810097A (zh) * 2011-06-02 2012-12-05 高德软件有限公司 网页正文内容提取方法及装置
CN102929930A (zh) * 2012-09-24 2013-02-13 南京大学 小样本自动化Web文本数据抽取模板生成与抽取方法
CN103294654A (zh) * 2013-05-23 2013-09-11 山西大学 一种文本列表组合控件
CN103984535A (zh) * 2013-12-25 2014-08-13 北京安码科技有限公司 基于Android平台的智能备忘录策略审计系统
CN104391836A (zh) * 2014-11-07 2015-03-04 百度在线网络技术(北京)有限公司 处理用于句法分析的特征模板的方法及装置
CN106407387A (zh) * 2016-09-18 2017-02-15 华南师范大学 一种针对医疗诊断文本的概念连接方法
CN112085251A (zh) * 2020-08-03 2020-12-15 广州数说故事信息科技有限公司 一种消费品产品研发组合概念推荐方法和系统

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007143898A1 (fr) * 2006-05-22 2007-12-21 Kaihao Zhao Procédé pour l'extraction et le traitement d'informations selon un modèle ternaire
CN101470699B (zh) * 2007-12-28 2012-10-03 日电(中国)有限公司 信息提取模型训练装置、信息提取装置和信息提取系统及其方法
CN101950306A (zh) * 2010-09-29 2011-01-19 北京新媒传信科技有限公司 新词发现中的字符串过滤方法
CN101950306B (zh) * 2010-09-29 2013-06-26 北京新媒传信科技有限公司 新词发现中的字符串过滤方法
CN102810097B (zh) * 2011-06-02 2016-03-02 高德软件有限公司 网页正文内容提取方法及装置
CN102810097A (zh) * 2011-06-02 2012-12-05 高德软件有限公司 网页正文内容提取方法及装置
CN102929930A (zh) * 2012-09-24 2013-02-13 南京大学 小样本自动化Web文本数据抽取模板生成与抽取方法
CN103294654A (zh) * 2013-05-23 2013-09-11 山西大学 一种文本列表组合控件
CN103294654B (zh) * 2013-05-23 2016-02-10 山西大学 一种文本列表组合控件
CN103984535A (zh) * 2013-12-25 2014-08-13 北京安码科技有限公司 基于Android平台的智能备忘录策略审计系统
CN104391836A (zh) * 2014-11-07 2015-03-04 百度在线网络技术(北京)有限公司 处理用于句法分析的特征模板的方法及装置
CN104391836B (zh) * 2014-11-07 2017-07-21 百度在线网络技术(北京)有限公司 处理用于句法分析的特征模板的方法及装置
CN106407387A (zh) * 2016-09-18 2017-02-15 华南师范大学 一种针对医疗诊断文本的概念连接方法
CN106407387B (zh) * 2016-09-18 2019-11-22 华南师范大学 一种针对医疗诊断文本的概念连接方法
CN112085251A (zh) * 2020-08-03 2020-12-15 广州数说故事信息科技有限公司 一种消费品产品研发组合概念推荐方法和系统
CN112085251B (zh) * 2020-08-03 2022-04-22 广州数说故事信息科技有限公司 一种消费品产品研发组合概念推荐方法和系统

Similar Documents

Publication Publication Date Title
CN1696933A (zh) 基于动态规划的文本概念关系自动提取方法
CN1174332C (zh) 转换表达方式的方法和装置
CN100336056C (zh) 基于成熟工艺文档的工艺术语提取、规律分析和重用方法
CN1133127C (zh) 文件检索系统
CN1465018A (zh) 机器翻译技术
CN1924858A (zh) 一种获取新词的方法、装置以及一种输入法系统
CN1542736A (zh) 在自然语言理解系统中用于位置的基于规则的语法和用于前终端的统计模型
CN1595398A (zh) 选择改良多个候补译文所生成的最优译文的机器翻译系统
CN1770107A (zh) 提取小树转换对
CN1942877A (zh) 信息提取系统
CN1777888A (zh) 基于移动结构概念的句子结构分析及使用其的自然语言搜索
CN1487444A (zh) 文本语句比较装置
CN1281191A (zh) 信息检索方法和信息检索装置
CN101042868A (zh) 群集系统、方法、程序和使用群集系统的属性估计系统
CN1368693A (zh) 用于全球化软件的方法和设备
CN1707476A (zh) 辅助翻译搜索引擎系统及其方法
CN101079028A (zh) 一种统计机器翻译中的在线翻译模型选择方法
CN1691007A (zh) 用于文档处理的方法、系统或存储计算机程序的存储器
CN1894688A (zh) 对译判断装置、方法及程序
CN101055588A (zh) 获取限制词信息的方法、优化输出的方法和输入法系统
CN1945602A (zh) 一种基于人工神经网络的特征选择方法
CN1871597A (zh) 利用一套消歧技术处理文本的系统和方法
CN1661593A (zh) 一种计算机语言翻译方法及其翻译系统
CN101080927A (zh) 内容推荐装置
CN1741012A (zh) 文本检索装置及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication