一种基于GRU-CRF的命名实体识别方法与流程

文档序号:15271668发布日期:2018-08-28 22:30阅读:915来源:国知局

本发明涉及自然语言处理,尤其涉及一种基于gru-crf的命名实体识别方法。



背景技术:

随着互联网技术的快速发展,人类已经习惯从网络上获取大量知识,因此,命名实体识别方法的研究作为提高人们从网络获取和发现新知识的方法,得到了广泛的关注。命名实体识别是自然语言处理领域中的一项基本任务,也是是自然语言处理领域中的研究热点,从早期基于词典和规则的方法到传统机器学习的方法,再到近年来基于深度学习的方法,识别效果不断在提高。条件随机场(conditionalrandomfield,crf)是近几年自然语言处理领域常用于命名实体识别的算法,选用具有人工定义的一些特征函数作为特征模板来进行命名实体识别研究,对于句子中的给定位置来说,不同的特征模板之间可以进行组合来形成一个新的特征模板。利用特征模板进行句子标注,但crf对于命名实体识别具有局限性,整体效果不是很理想。循环神经网络(recurrentneuralnetworks,rnn)已经在众多自然语言处理中取得了广泛应用,但rnn在训练中很容易发生梯度消失问题,这导致训练时梯度不能在较长序列中一直传递下去,使rnn无法捕捉到长距离的影响。长短期记忆网络(longshort-termmemory,lstm)解决了长距离信息丢失的影响,具有很好的效果,但由于lstm结构相对复杂,导致需要大量的学习时间,因此,目前急需一种既可以解决梯度消失问题,又有较短学习时间的神经网络模型,2014年由kyunghyuncho等学者提出了门限递归网络循环神经网络(gatedrecurrentunit,gru),它将lstm的忘记门和输入门合成了一个单一的更新门,其既保留了lstm算法的优点,又能简化lstm的算法,大大减少了网络学习时间,但目前并没有将gru与crf相结合应用于实体命名的相关专利。



技术实现要素:

针对以上命名实体识别方法中存在的问题,本发明利用gru神经网络与条件随机场crf相结合,提出一种基于gru-crf的命名实体识别方法。

一种基于gru-crf的命名实体识别方法,包括以下步骤:

步骤(1):将语料分成训练集和测试集;

步骤(2):对训练集进行预处理;

步骤(3):将训练集及测试集句子中的每个字用one-hot向量表示;

步骤(4):将由训练集生成的字向量输入到gru网络中进行特征提取;

步骤(5):结合crf进行序列标注;

步骤(6):模型训练;

步骤(7):模型测试。

所述对语料进行预处理过程中,先使用分词软件对训练集进行分词,然后对分词后的每一个字进行bio标记,最后利用标记后的训练集对word2vec进行训练。

所述gru网络进行特征提取中所含计算如下:

gru的更新门公式为:

zt=σ(uzxt+wzst-1)

其中,zt为gru的更新门输出的特征向量,σ为sigmoid函数,uz和wz为训练参数,xt为t时刻的字向量,st-1为xt-1对应的gru输出的特征向量,st为xt对应的gru输出的特征向量,

gru的重置门公式为:

rt=σ(urxt+wrst-1)

其中,rt为gru的重置门输出的特征向量,ur和wr为训练参数,

隐藏状态方程为:

ht=tanh(uhxt+wh(st-1*rt))

其中,ht为t时刻的隐藏状态向量,uh和wh为训练参数,

xt字向量对应的输出向量为:

st=(1-zt)*ht+zt*st-1

gru提取句子特征的矩阵m=(s1,s2,···sn),其中,n为句子所含字的个数。

所述crf的序列标注计算方法为:

用x=(x1,x2,···xn)表示为字个数为n的句子;用y=(y1,y2,···yn)表示句子所含字个数为n的标注序列,定义该序列的得分为:

其中,m为通过gru网络得到的特征向量矩阵,a为crf的转移矩阵,对score(x,y)进行指数化和标准化,得到标注序列的概率值p(x|y):

其中y'=(y1',y2',···yn'),为可能标注的序列。

所述模型训练时,使用最大条件似然估计方法,选择使得对数似然率最大的参数,对于训练样本(x,y)的对数似然如下所示:

在所述模型测试过程中,使用动态规划的viterbi算法进行求解:

其中为最优路径,即为crf输出的标注序列。

有益效果:

1、本发明在实用阶段不需要对文本进行分词处理,即不需要使用其他的分词软件,解决了现有技术对分词软件的依赖,也提高了文本处理的独立性。

2、本发明运用gru神经网络,在保留了lstm神经网络优点的基础上,减少了网络的学习时间,提高了网络学习效率。

3、本发明采用gru与crf相结合的方法,充分利用了深度学习与概率学统计的优势。

4、本发明采用动态规划的viterbi算法,相比于穷举法,算法更为简单有效。

附图说明

图1为gru-crf模型命名实体识别整体流程图;

图2gru神经网络结构示意图;

图3实施例命名实体识别整体流程图。

具体实施方式

在下文中将结合附图对本发明的示范性实施例进行描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构,且附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸。

本实施例的命名实体识别整体流程图如图1所示,以98年《人民日报》部分新闻材料为语料,将语料分成训练集和测试集,对训练集进行预处理,在预处理过程中,先使用jieba对训练集进行分词,再使用word2vec软件对已分词的训练集进行训练,最后将每个字分成一行进行标注,标注过程中采用bio标注集,即b-per代表人名首字,i-per代表人名非首字,b-loc代表地名首字,i-loc代表地名非首字,b-org代表组织机构名首字,i-org代表组织机构非首字,o代表该字不属于命名实体的一部分。将标注后的训练集的每一个句子用one-hot形式表示,利用已训练的word2vec将训练集的每个字向量化,进一步讲,利用训练后的word2vec将句子中的每个字由one-hot向量映射为低维稠密的字向量,这里选择100维,当然也可以选300维。将生成的字向量矩阵作为gru神经网络的输入,gru的主要结构如图2所示,zt为gru的更新门的输出特征向量,σ为sigmoid函数,xt为t时刻的字向量,st为xt对应的gru输出的特征向量,st-1为xt-1对应的gru输出的特征向量,rt为gru的重置门输出的特征向量,ht为t时刻的隐藏状态向量,xt字向量对应的输出向量为:st=(1-zt)*h+zt*st-1,其中,*表示按元素乘,即向量之间逐个元素相乘得到的一个新向量,最后通过gru网络提取句子特征的矩阵m=(s1,s2,···sn),n为句子所含字的个数。在输入到gru网络之前,可先通过设置dropout层以缓解过拟合,然后再经过gru网络提取句子特征。实施例的实验环境是基于python运行环境下,主要参数设置为dropout=0.5,batch_size取64,学习率为0.001,迭代次数为100轮,通过gru提取的特征向量矩阵m并作为条件随机场crf层的输入,所述crf的的表示方法采用矩阵方式,用x=(x1,x2,···xn)表示为字个数为n的句子;用y=(y1,y2,···yn)表示句子所含字个数为n的标注序列,定义该序列的得分为:

其中,m为通过gru网络得到的特征向量矩阵m,a为crf的转移矩阵,对score(x,y)进行指数化和标准化,得到标注序列的概率值p(x|y):

其中y'=(y1',y2',···yn'),为可能标注的序列;

模型训练时,在求解概率值时,采用最大似然估计的方法,并利用对数似然进行求解。利用标注序列y与得到标注序列y的概率值p(x|y),对模型进行训练。

模型测试时标注过程如图3所示,将测试集用one-hot表示,利用已训练的word2vec将测试集的每个字向量化,将向量化后的字向量矩阵输入到模型中,在crf层进行句子级的序列标注,模型测试过程中,使用动态规划的viterbi算法进行求解,利用每一步的局部最优化达到全局最优化的效果,最后的输出为:

其中为最优路径,即为crf输出的标注序列,最后的标注结果如下所示:

per:人名,loc:地名,org:组织机构名

最后说明的是,尽管根据有限数量的实施例描述本发明,但是受益于上面的描述,本技术领域内的技术人员应当理解,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和宗旨的情况下,对于本技术领域的普通技术人员来说,许多修改和变更是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1