一种基于词向量表示的条件随机场的命名实体识别方法与流程

文档序号:11677529阅读:310来源:国知局
本发明属于自然语言处理领域,涉及一种对生物医学文本进行高质量的生物命名实体识别的方法,具体是指基于条件随机场(crf)模型与词表示方法相融合的生物命名实体识别方法。
背景技术
:命名实体识别的任务是对文本中出现的人名、地名、机构名等具有特定意义的词或短语进行识别。在生物医学领域进行的命名实体识别被称为生物命名实体识别(biomedicalnamedentityrecognition,bio-ner),旨在利用生物医学文本挖掘技术对生物医学文献中出现的指定类型的实体名称,如蛋白质、基因、疾病、细胞等进行自动识别和分类。生物命名实体识别是生物医学文本挖掘的关键步骤,是实现关系抽取、假设发现、文本分类等深层次文本挖掘技术的先决条件,例如,要想得到基因、蛋白质以及疾病等生物实体之间的关系,首先必须能够从文本中正确地识别出这些生物实体。目前使用最广泛的基于机器学习方法的基本过程包括:语料预处理、抽取特征、模型训练、预测。语料预处理步骤包括对生物医学文本的操作,如大小写转换、分词、词干化、去停用词等步骤。运用到的特征主要包括:核心词特征、字典特征、构词特征、词形特征、词缀特征、词性特征、组块特征等。机器学习构建模型的方法主要包括:隐马尔可夫模型(hmm)、支持向量机模型(svm)、最大熵模型(me)、最大熵马尔可夫模型(memm)、条件随机场模型(crf)等。例如,abner(http://pages.cs.wisc.edu/~bsettles/abner/)是一个标准的命名实体识别软件工具,其核心基于线性链crf。基于统计机器学习的方法不需要人工制定规则,具有更高的鲁棒性,而且能够识别出没有出现在标准术语词典中的、潜在的命名实体。dimililer等抽取了包含词汇特征、构成形态特征、拼写特征等丰富特征集,利用不同参数svm分类模型进行组合分类,采用改进的遗传算法进行加权投票,最终在jnlpba2004的f值达到了72.51%。liao等(biomedicalnamedentityrecognitionbasedonskip-chaincrfs,2011,americanjournalofengineeringandtechnologyresearch)使用skip-chaincrf模型通过考虑远距离实体之间的相互依赖信息在jnlpba2004任务进行命名实体识别,在该任务的测试集上取得了73.2%的f评测值。为减少人工抽取特征的代价,半监督学习也被引入到机器学习方法中。李彦鹏等(incorporatingrichbackgroundknowledgeforgenenamedentityclassificationandrecognition,2009,bmcbioinformatics)从获得的海量未标注数据中提取有用信息,然后将其作为特征去提高监督学习的效果,在biocreativeii中取得f值为89.05%。利用条件随机场进行命名实体识别时,需要根据训练语料抽取人工特征。虽然半监督学习方法在一定程度上减少人工抽取特征的代价,但是在构建人工特征时,往往需要特定的专业领域知识,这对非专业领域研究人员是极为困难的,同时不能很好的预测出新出现的实体名词,而且对语义歧义的问题也不能很好的解决。鉴于近年来词向量在自然语言领域取得的进步,它可以有效的把语料中出现的每个词都映射到一个n维空间中,并且具有很强的表示语义的能力,即相同语义的单词在空间中位置比较相近。那么通过从未标注的语料中抽取不同词向量特征来获取深层语义信息,这样就避免了人工抽取特征的过程。然而条件随机场的算法更适合于离散的特征表示,那么如何把连续的实值表示的词向量与crf算法结合起来进行命名实体识别具有很强的挑战性。技术实现要素:本发明提供了一种基于词向量表示的条件随机场的命名实体识别方法,首先解决了人工提取特征所带来的高成本、低泛化能力等难题,其次解决了条件随机场只对离散的特征表示有效的问题,最终由于融入了词向量的语义表示提高了条件随机场对命名实体识别的准确度。本发明主要由两大部分组成:1、将语料通过深度学习转化为词向量。2、改进条件随机场算法,以使它可以适用于连续型的实值向量的输入。本发明的技术方案:一种基于词向量表示的条件随机场的命名实体识别方法,步骤如下:首先介绍在已经有训练好的参数(大小为(labelnum+1)*labelnum的状态转移权重矩阵a和大小为labelnum*(d*m+1)的参数矩阵θ,labelnum,d,m的含义将在后面步骤中表示)的情况下,对句子中的命名实体进行识别的方法(参数的训练方法将在步骤(五)中描述)。(一)语料的提取与预处理用word2vec工具中的skip-gram语言模型将待处理语料中的每一个单词转化为d维的词向量(wordembedding)。(二)标记计划在命名实体识别的任务中,有些命名实体由一个单词表示,有些命名实体则由几个单词表示。为了区分单词所代表的成分的不同,需要对单词进行标记,即给单词分配不同的标签(tag)。在本发明中采用iobes标记计划对语料进行标记。iobes标记计划(如表一所示):表一begininsideendsingleotherbieso对于由几个单词表示的命名实体:用b(begin)对表示该命名实体开始的单词进行标注,用i(inside)对表示该命名实体中间的单词进行标注,用e(end)对表示该命名实体结尾的单词进行标注。对于由一个单词表示的命名实体:用s(single)对表示该命名实体的单词进行标注。对于非命名实体:用o(other)对表示非命名实体的单词进行标注。标签的个数为5,用labelnum表示。(三)由词向量到状态特征权重的计算本发明以线性链条件随机场模型为基础,因此对于语料的处理是以句子为单位进行的。对于任意句子(即任意单词序列):l:句子的长度。x={x1,x2,x3,……,xn},x表示句子(单词序列),xi表示句子中的第i个单词。y={y1,y2,y3,……,yn},y表示句子对应的标签序列,yi表示句子中的第i个单词所对应的标签,它的取值有i、o、b、e、s五种,表示句子中的第i个单词所对应的标签为标签j,即yi=label[j]。1、由词向量到特征矩阵featurematrix的计算如何获取良好的单词特征表示是本发明提高命名实体识别准确度的重要环节之一,由于每个单词的标签不仅与它本身有关,更与它周围几个单词紧密相连,所以除了获取每个单词对应的词向量外,需要利用窗口法将每个单词与它周围几个单词的词向量拼接起来构建单词的特征向量。窗口法:确定固定窗口的大小为m。以句子为单位,对于每个单词xi,用xi-(m-1)/2,……,xi,……,xi+(m-1)/2连续m个单词的词向量依次拼接,再在每个单词xi末尾加上一个1作为这个单词的特征向量;然而,在句子开头和结尾处的一些单词左右两边没有足够相邻的(m-1)/2个单词。为了解决这种边界效应问题,用none的词向量,也就是零向量,作为填补。这和用‘start’和‘stop’标记起到了相同的效果。用窗口法对句子中的每一个单词进行处理,即可得到句子对应的特征矩阵featurematrix,它的大小为(d×m+1)×l。2、由特征矩阵到状态特征权重的计算由于采用iobes标记计划,对任意单词xi,yi有五种可能,本步骤将介绍yi在取值为iobes的不同的情况下对应的状态特征权重的大小。将大小为labelnum×(d×m+1)的参数矩阵θ与上个步骤得到的特征矩阵featurematrix点乘,结果为一个大小为labelnum×l的矩阵μ′,并且对μ′中的每一个数值用hardtanh函数处理,最终得到大小为labelnum×l的状态特征权重矩阵μ。μ中的第j行,第i列个元素的大小表示句子中的第i个单词xi的标签yi为时的状态特征权重大小,它用表示。(四)对标签序列y进行估计,以识别命名实体对标签序列进行估计,找出所有被标记为s的单词以及被标记为b、i(零个或者多个i)、e组合的单词串,也就找到了命名实体。对句子所对应的标签序列进行估计,即在已知句子x的情况下,找出标签序列y*,使得当y=y*时,条件概率p(y|x)达到最大。首先介绍大小为(labelnum+1)×labelnum的状态转移权重矩阵a。a:a的前labelnum行分别表示一种标签情况,最后一行表示无标签的情况,a的每一列分别表示一种标签情况。am,n:即a的第m行第n列个元素,它表示xi-1对应的标签(a的第m行所代表的标签)且xi对应的标签时的状态转移权重。为了将句子中的单词位置也体现出来,状态转移权重用符号表示。1、介绍势函数:exp(∑jλjtj(yi-1,yi,x,i)+∑kμksk(yi,x,i))势函数中符号的定义及解释如下:j:当xi在句首时,1≤j≤labelnum;当xi不在句首时,1≤j≤labelnum×labelnum,j是整数,每一个不同的j表示一种特定的由标签p转移到标签q的状态转移情况。k:1≤k≤labelnum,k是整数,每一个不同的k表示一种特定的标签状态q。tj(yi-1,yi,x,i):两个相邻标记位置上的状态转移特征函数,sk(yi,x,i):序列位置i上的状态特征函数。λj:状态转移特征权重函数,对与某个特定的j,它表示的标签状态转移情况为yi-1=lable[p],yi=lable[q],则μk:状态特征权重函数,对于某个特定的k,它表示的标签状态情况为yi=lable[q],则∑jλjtj(yi-1,yi,x,i)的计算结果:在给定句子序列x与对应的给定标签序列y的情况下,位置i上的单词与它前面的单词的状态转移特征权重λ(yi-1,yi,xi),即状态转移权重矩阵a中的的计算结果:在给定句子序列x与对应的给定标签序列y的情况下,位置i上的单词的状态特征权重μ(yi,xi)。对于每个单词,词级别的势函数就是在计算单词的状态转移特征权重与状态特征权重之和,它的计算结果可以简单地表示为2、条件概率p(y|x)由于tj(yi-1,yi,x,i)与sk(yi,x,i)都是特征函数,为了方便符号表示,令它们均为fj(yi-1,yi,x,i),同时令λj和μk均为λj,所以∑jλjtj(yi-1,yi,x,i)+∑kμksk(yi,x,i)可以表示为∑jλjfj(yi-1,yi,x,i)。条件随机场算法是通过条件概率表示句子序列x对应特定标签序列y的可能性。其中是句子级别的势函数。句子级别的势函数就是句子中每一单词的词级别的势函数之和,同样的,它可以简单地表示为为归一化因子,它是句子对应的所有可能的标签序列y的句子级别的势函数之和。3、对标签序列y进行估计,以识别命名实体对于某个特定的句子序列,z(x)是一个常数,所以找到使句子级势函数最大的标签序列y*即可。在计算y*时,y可能的标签序列组合随着句子序列中单词的个数呈指数次增长,如果采用穷举法找到y*将导致时间复杂度极高,无法计算结束,所以使用viterbi等动态优化方法求解。(五)参数训练为了方便描述,将参数状态转移权重矩阵a和参数矩阵θ都称为p(y|x)即表示为在训练集中,每一个句子序列x都有正确的标签序列y与之对应,将正确的标签序列y称为y′。本发明使用随机梯度下降法调整参数使得对于训练集中每一个x,当y=y′时,对应的对数似然函数值达到最大。1、对应对数似然函数:在利用随机梯度下降调参的时候,一定会涉及到的计算,所以尽管是常数,但是仍需计算。为了方便符号表示,定义logadd操作:因此:由于y可能的标签序列组合随着句子序列中单词的个数呈指数级增长,当句子序列的长度达到10的时候,y可能的标签序列组合情况有将近一千万种,所以穷举y计算是不可能的,本发明采用了一种经典的递归方法,使得它的计算速度是与句子序列的长度n线性相关的。令k,m表示任意标签tag,t表示序列的位置。定义下面的公式以方便计算:因此,由递归计算即可算出结果。2、利用随机梯度下降法调整参数本发明采用的随机梯度法,是一种迭代算法。由于正梯度方向是使函数值增加最快的方向,在迭代的每一步,以正梯度方向更新参数的值速度最快,所以采用随机梯度法。通过随机地选择一个示例(x,y),更新参数的值,使得目标函数的最大化,不断迭代,直到收敛。梯度更新的迭代式为:其中λ是选择的学习率,是搜索方向。因此,可以通过微分链式法则计算导数,从而求得使目标函数最大化时的参数本发明构建了一套基于词向量表示的条件随机场方法来完成生物医学命名实体识别的在线系统,为研究者提供实时查询服务。生物医学命名实体识别作为生物医学文本挖掘的重要分支之一,具有很高的应用价值,对关系抽取信息检索等后续任务提供了先决条件。本发明在传统方法的基础上提升了特征的表达能力和泛化能力并解决了条件随机场只对离散的特征表示有效的问题,能够帮助生物医学领域研究者对文本进行自动分析,并提供对已知生物医学命名实体检索的功能,帮助他们对生物医学命名实体进行研究和分析。具体实施方式以下结合技术方案,进一步说明本发明的具体实施方式。本发明的系统能够对给定的生物医学文本进行高质量的基因名称识别,规避了抽取人工特征带来的高成本、低泛化能力等难题,提高了对生物医学文本识别的水平,而用户操作起来也简单方便。系统采用b/s(browser/server,浏览器/服务器模式,主要采用jsp、html、js等技术实现)结构设计,分为视图层,逻辑层和数据层三部分。1.用户输入待解析文本如表1所示,文本输入支持键盘输入和上传本地文件两种方式,由视图层接受用户输入的待检索文本,提交给逻辑层,并存入数据层。假设用户待解析的文本为“wefindthathtafii32isthehumanhomologueofdrosophilatafii40.”,用户则可以选择1、通过页面文本框直接输入上述文本或者2、将上述文本保存为txt、doc等格式,通过文件的形式上传。前者适合短文本或者测试使用,后者则适合大文本处理。表2系统结构2.系统对待解析文本进行解析(1)逻辑层对待解析文本进行断句、分词等预处理后,将上述文本分解成一个含有12个token的句子(含标点);我们通过word2vec训练出词向量表,将用户输入的文本对照词向量表,为每个词找到对应的词向量。如前文所述,利用滑动窗口将其转换为12个向量,并依次输入改进的基于词向量表示的条件随机场。(2)利用基于词向量表示的条件随机场的命名实体识别方法,逐步计算后为每一个句子找出最优的标签序列“ooobooooobio”,即识别出生物医学命名实体“htafii32”和“drosophilatafii40”。从而找出命名实体。在解析时不需要进行训练,而是用训练好的参数直接得到结果。3.用户对结果的人工验证用户提交了数据以后,通过得到关于文本的最优标记序列,和正确的结果比较,如果有明显的错误,系统允许用户对结果进行修正,并将修正的结果存储到数据库中,重新调试参数,直至和正确结果相比较最优。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1