实体识别方法及装置与流程

文档序号:18834932发布日期:2019-10-09 04:55阅读:375来源:国知局
实体识别方法及装置与流程

本申请涉及人工智能技术领域,更具体地说,涉及一种实体的识别方法及装置。



背景技术:

实体识别(namedentitiesrecognition,ner)是自然语言处理(naturallanguageprocessing,nlp)的一个基础任务,其目的是识别语料中人名、地名、组织机构名等命名实体。在通用领域的实体识别任务里,基于神经网络的实体识别方法多数都是基于循环神经网络(rnn)、卷积神经网络(cnn)或者与crf的结合的方法。

但是利用这些方法在视频领域进行实体识别的时候,其识别结果的准确性通常较低。



技术实现要素:

本申请提供了一种实体识别方法及装置,用以解决现有技术的实体识别结果准确性低的问题。

本申请公开的实体识别方法及装置如下:

一种实体识别方法,包括:

对待识别语料进行分词,得到待识别词语;获取所述待识别词语的各个多原型词向量,所述各个多原型词向量对应不同的词义;

获取所述待识别词语的合成词向量,所述待识别词语的合成词向量为所述各个多原型词向量的加权求和结果,其中,目标多原型词向量的权重用于表征,将所述待识别词语识别为所述目标多原型词向量对应的词义的可能性,所述目标多原型词向量为所述待识别词语的各个多原型词向量中的任意一个;

依据所述合成词向量,确定实体识别结果。

可选的,所述获取所述待识别词语的各个多原型词向量,包括:

选取所述待识别词语在所述待识别语料中的目标词语,并获取目标词语的词向量,所述目标词语包括上文词语和/或下文词语;

对所述目标词语的词向量进行聚类,得到聚类类别,所述聚类类别用于表征所述待识别词语的词义;

在所述待识别语料中标注所述待识别词语的词义,得到标注词义后的待识别语料;

将所述标注词义后的待识别语料作为词向量训练器的输入,得到所述词向量训练器输出的所述待识别词语的多原型词向量。

可选的,所述获取所述待识别词语的合成词向量包括:

获取所述多原型词向量对应的前向权重;

对所述多原型词向量进行前向权重加权求和,得到所述待识别词语的合成词向量。

可选的,所述获取所述多原型词向量对应的前向权重,包括:

调用语言模型计算得到所述待识别词语的打分矩阵,所述打分矩阵中的值代表所述待识别词语的词义间的转移分数;

利用所述打分矩阵和前向算法计算得到所述待识别词语的前向打分向量;

对所述前向打分向量进行归一化处理,得到所述待识别词语的前向权重。

可选的,所述依据所述合成词向量,确定实体识别结果,包括:

将所述合成词向量输入实体识别模型,得到所述实体识别模型输出的所述实体识别结果;

所述实体识别模型的训练过程包括:

将无标注的训练语料输入训练后的语言模型,得到所述语言模型输出的所述无标注的训练语料中的词语的前向权重;

获取所述无标注的训练语料中的词语的多原型词向量;

使用所述无标注的训练语料中的词语的前向权重和多原型词向量,计算所述无标注的训练语料中的词语的合成词向量;

对所述训练语料进行分词处理,得到训练词语,并对所述训练词语进行实体标注;

从所述无标注的训练语料中的词语的合成词向量中,获取所述训练词语的合成词向量;

使用所述训练词语的合成词向量以及所述训练词语的实体标注,训练所述实体识别模型。

一种实体识别装置,包括:

分词模块,用于对待识别语料进行分词,得到待识别词语;

多原型词向量获取模块,用于获取所述待识别词语的各个多原型词向量,所述各个多原型词向量对应不同的词义;

合成词向量获取模块,用于获取所述待识别词语的合成词向量,所述待识别词语的合成词向量为所述各个多原型词向量的加权求和结果,其中,目标多原型词向量的权重用于表征,将所述待识别词语识别为所述目标多原型词向量对应的词义的可能性,所述目标多原型词向量为所述待识别词语的各个多原型词向量中的任意一个;

识别模块,用于依据所述合成词向量,确定实体识别结果。

可选的,所述多原型词向量获取模块用于获取所述待识别词语的各个多原型词向量,包括:

所述多原型词向量获取模块具体用于,选取所述待识别词语在所述待识别语料中的目标词语,并获取目标词语的词向量,所述目标词语包括上文词语和/或下文词语;对所述目标词语的词向量进行聚类,得到聚类类别,所述聚类类别用于表征所述待识别词语的词义;在所述待识别语料中标注所述待识别词语的词义,得到标注词义后的待识别语料;将所述标注词义后的待识别语料作为词向量训练器的输入,得到所述词向量训练器输出的所述待识别词语的多原型词向量。

可选的,所述合成词向量获取模块用于获取所述待识别词语的合成词向量,包括:

所述合成词向量获取模块具体用于,获取所述多原型词向量对应的前向权重;对所述多原型词向量进行前向权重加权求和,得到所述待识别词语的合成词向量。

可选的,所述合成词向量获取模块用于获取所述多原型词向量对应的前向权重,包括:

所述合成词向量获取模块具体用于,调用语言模型计算得到所述待识别词语的打分矩阵,所述打分矩阵中的值代表所述待识别词语的词义间的转移分数;利用所述打分矩阵和前向算法计算得到所述待识别词语的前向打分向量;对所述前向打分向量进行归一化处理,得到所述待识别词语的前向权重。

可选的,所述识别模块用于依据所述合成词向量,确定实体识别结果,包括:

所述识别模块具体用于,将所述合成词向量输入实体识别模型,得到所述实体识别模型输出的所述实体识别结果;

所述装置还包括:

训练模块,用于将无标注的训练语料输入训练后的语言模型,得到所述语言模型输出的所述无标注的训练语料中的词语的前向权重;获取所述无标注的训练语料中的词语的多原型词向量;使用所述无标注的训练语料中的词语的前向权重和多原型词向量,计算所述无标注的训练语料中的词语的合成词向量;对所述训练语料进行分词处理,得到训练词语,并对所述训练词语进行实体标注;从所述无标注的训练语料中的词语的合成词向量中,获取所述训练词语的合成词向量;使用所述训练词语的合成词向量以及所述训练词语的实体标注,训练所述实体识别模型。

在本方案中,对待识别语料进行分词,得到待识别词语,获取所述待识别词语的各个多原型词向量和合成词向量,依据合成词向量,确定实体识别结果。其中合成词向量为各个多原型词向量的加权求和结果,并且,因为各个多原型词向量对应不同的词义,并且任意一个多原型词向量的权重用于表征将待识别词语识别为该多原型词向量对应的词义的可能性,因此,越接近待识别词语的多原型词向量的权重越大,从而,加权求和结果与该多原型词向量与相近,所以,使用这样的合成词向量确定实体识别结果,具有更高的准确性。

附图说明

图1为本申请实施例公开的实体识别方法的流程图;

图2为本申请实施例公开的获得多原型词向量的流程图;

图3为本申请实施例公开的一种词图lattice的示意图;

图4为本申请实施例公开的获得前向权重的流程图;

图5为本申请实施例公开的实体识别模型的一种架构示意图;

图6为本申请实施例公开的实体识别模型训练的流程图;

图7为本申请实施例公开的训练过程的示意图;

图8为本申请实施例公开的注意力模块与实体识别模块的训练原理示意图;

图9本申请实施例公开的实体识别的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本方案发明人在研究过程中发现,在视频领域进行实体识别时,识别结果的准确性较低。

经过分析,发明人发现,在视频领域一个词语可能会有多个词义,比如“仙剑奇侠传”,可能是游戏名也有可能是影视剧名;“风筝”,可能是玩具,也可能是影视剧名。所以,如果直接利用现有的实体识别方法,很容易出现词语的识别结果与其在文本中的实际语义有偏差的情况,例如将“最近谍战剧风筝正在热播”中的“风筝”识别为“玩具”。

发明人经过研究得到了本申请公开的实体识别方法的核心思想,即,为词语的每个词义训练词向量,不同的词义训练得到不同的词向量,也就是多原型词向量,然后通过注意力机制(即权重分配)来指示待识别词语在语料中使用哪一个词义的信息更多一些,并将这个结果传递给实体识别模型,最终在识别过程中,能够提升待识别词语得到准确的识别结果的准确性。

下面将详细阐述实现上述核心思想的具体过程。

如图1所示为一种实体识别方法的流程图,包括:

步骤s101:对待识别语料进行分词,得到待识别词语。

在本步骤中,分词就是将连续的字序列按照一定的规范重新组合成词序列的过程,通常可以使用:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。

步骤s102:获取待识别词语的各个多原型词向量。

其中,各个多原型词向量对应不同的词义。可选的,一个多原型词向量对应一种词义,各个多原型词向量对应的词义均不相同。例如待识别词语为“风筝”,一种词义为“玩具”,另一种词义为“影视剧名”,则“风筝”的多原型词向量包括词向量a和词向量b,词向量a对应“玩具”,词向量b对应“影视剧名”。

具体的,多原型词向量的获取过程如图2所示。

步骤s103:获取待识别词语的合成词向量。

待识别词语的合成词向量为:待识别词语的各个多原型词向量的加权求和结果,其中,任意一个多原型词向量的权重用于表征,将待识别词语识别为该多原型词向量对应的词义的可能性。

接上例,假设语句“电视剧风筝很好看”,则“风筝”在上下语境中的词义为“影视剧名”,而非“玩具”,所以词向量b的权重大于词向量a的权重。

权重的确定过程将在以下实施例中介绍。

步骤s104:依据合成词向量,确定实体识别结果。

本实施例中,具体的,可以调用预先训练的实体识别模型,将所述合成词向量作为输入,得到实体识别结果。具体实现方式在以下实施例中进行详细介绍。

从上述流程可以看出,该方法首先得到语料中的待识别词语,和待识别词语的多原型词向量,并将各个词义的多原型词向量的加权求和结果作为合成词向量。因为任意一个多原型词向量的权重用于表征,将待识别词语识别为该多原型词向量对应的词义的可能性。由此可以看出,合成词向量与在语料中的词义对应的词向量相似,即合成词向量体现了待识别词语在语料中被识别为哪一个词义的可能性较高。因此,依据合成词向量可以得到更加准确的识别结果。

图2为获取待识别词语的各个多原型词向量的过程,包括以下步骤:

步骤s201:将分词后的语料输入词向量训练器,得到词向量训练器输出的各个待识别词语的词向量。

具体的,词向量训练器输出一个词向量集合,该集合记为其中v为待识别词语的数量,d为词向量的维度。具体来说就是待识别语料中每个不重复的词语都被映射为一个实数构成的向量,比如“风筝”这个词对应一个三维的向量[0.35,-0.5,0.67]。

步骤s202:按照预定范围选取待识别词语所在语句中的目标词语,并计算目标词语的目标词向量。

目标词语包括上文词语和/或下文词语,目标词向量包括上文词向量和/或下文词向量。以包括上文词语和下文词语为例:对每个词语,在其所在的每句话分别取抽取预定范围内词语,也就是说,对每个词语,抽取其所在的每一句话周围上下文。具体来说,在每句话的上下文范围里定义一个窗口大小m,抽取以这个词语为中心的±m范围内的词语,记作{w-m,w-m+1,…,w-1,w1,wm-1,wm}。然后将抽取到每个词语找到其对应的词向量,并求取平均。当然,本实施例并不先定只能采用这一种选取预定范围内的上下文词语的方式,只要是能够体现词语上下文联系的选取方式,都是本实施例保护的范围。此步骤用公式可表示为,首先查找每个词的词向量,第i个词的词向量记作ei:

接着对2m个向量求平均,作为w0的上下文向量:

步骤s203:对各个词语的目标词向量进行聚类,得到预定个数的聚类类别,聚类类别用于表征词语的语义。

在本步骤中,对向量进行聚类的目的是对词义进行一个初步筛选,将每个词语的多个词义按照预定的个数进行聚类,预定的个数可以按照一个词语的每个词义在统计学中出现的次数多少,来选择出现次数最多的前几个词义,例如前三个词义,则预定个数为3,能够说明实际中最常使用的是哪些特定的词义,也就是说,筛除一些非常偏僻的词义,从而在保证模型训练结果的准确性的基础上,也能够适当减小训练的难度和计算量。在本实施例中,聚类的结果可以为:歌曲名、影视名、历史人物等。以“曹操”为例,其是歌曲名,也是历史人物,也是影视剧或者纪录片的名称。

对于某一个wk,其上下文向量记作使用聚类方法将n组上下文向量聚成c类,记作

在这里,中,1表示聚类的类别,例如在本实施例中,1对应的类别为歌曲,2对应的类别为影视剧名,3对应历史人物。

步骤s204:在语句中标注词语对应的词义,得到标注词义后的待识别语料。

在该步骤中,对词语在每个语句中对应的聚类得到的语义进行标注,该标注可以为将带有语义信息的新词语替换原来的词语,对于wk所在每个位置,依据其所属的聚类类别i,将那个位置的wk替换成wk_i。例如将某句中“最近谍战剧风筝正在热播”,假如这一句中的“风筝”在聚类时被聚到第2类,那么把这一句替换为“最近谍战剧风筝_2正在热播”。

步骤s205:将标注词义后的待识别语料输入词向量训练器,得到词向量训练器输出的待识别语料对应的多原型词向量。

词语的词向量表示是把每个词语表示为一个固定长度的向量用来代表词义,但是,由于同一个词语在不同的上下文语境中可以反映不同的词义,如果只将一个词语对应一种词义,则在实体识别过程中很容易出错。因此在本方案中,将词语的每一个词义都对应一个词向量,即作为多原型词向量

在本实施例中,每一个被聚类后的词义都有一个多原型词向量进行表示,也就是说,每一个词义都具有各自的向量了,充分体现了不同词义之间的差异。

需要说明的是,在以上步骤中使用的词向量训练器的结构以及原理、训练过程,均可参见现有技术,这里不再赘述。

在获取多原型词向量之后,理论上可以直接利用多原型词向量作为实体识别模型的输入,得到实体识别结果。然而,申请人在研究的过程中发现,多原型词向量作为实体识别模型的训练样本进行训练,也就是说,每个词义分别作为一个单独的词语,虽然能够实现在一定程度上提升识别结果的准确性,但是由此带来的计算量非常大,与现有的实体识别相比计算量成指数上升,实现起来非常困难。

因此,发明人经进一步的深入研究后,采取了为每一个多原型词向量设定权重,并利用权重得到合成词向量,作为实体识别模型的输入。

图4为获取每一个多原型词向量对应的权重的过程,包括以下步骤:

步骤s401:调用语言模型计算得到待识别词语的打分矩阵。

具体的,为待识别语料中的每个句子创建如图3所示的词图lattice,如图3所示为一个包含了n个词的句子,其中n个词包括:w1、w2……wn,假设在步骤s203中,把每个词语的词义聚成了3类,词义包括:w1_01、w1_02、w1_03、w2_01、w2_02、w2_03……wn_01、wn_02、wn_03。

以图3中的b22为例,这个值表示w1取词义w1_02,同时w1_02取词义w2_02的打分,其对应的公式为:

b22=lm(w1_02,w2_02)

如图3中所示,每个词语的词义间的转移分数组成该词语的转移打分矩阵m,如m2为w1的转移打分矩阵。

语言模型得到打分矩阵的原理以及训练方式,均可参见现有技术,这里不再赘述。

步骤s402:利用打分矩阵以及前向算法计算待识别词语的前向打分向量。

以w2的三种词义为例,其前向打分向量为v2将w1的转移打分矩阵与预设的前向打分矩阵m1进行点乘,v2=m1·m2。

步骤s403:对前向打分向量进行归一化,得到待识别词语的前向权重向量v_norm2。

v_norm2=[α2_1,α2_2,α2_3]

v_norm2为向量v2归一化后的结果,其包含了w2的三个词义的前向权重向量,a2_i表示向量v_norm2的第i维,代表第i个前向权重向量,是向量v2的第i维。表示向量中的每一维度,表示向量中每一维度求和。

在得到权重向量后,利用前向权重向量,及每个词义的多原型词向量进行加权求和,得到词语的合成词向量。仍以w2为例,

经上述步骤可以看出,最终的合成词向量能够体现不同词义的权重,因此,在后续利用合成词向量作为实体识别模型的输入时,其模型的输出结果的准确性会更高。

如前所述,可以使用实体识别模型得到实体识别结果,本申请的实施例中,可以选用rnn,cnn,crf或者它们的组合模型作为实体识别模型。在本实施例中,选用双向rnn+crf。其模型架构如图5所示。在本实施例中,以lstm类型的rnn为例,进行实体识别模型训练的过程如图6所示,包括:

步骤s601:对训练语料进行分词处理,得到训练词语,并对训练词语进行标注。

以视频标题为例,对于一个已经完成分词的视频标题,通过人工标注的方式获得每个词语的实体标签。

此处标注的实体标签包括:电影、音乐、人物等。

步骤s602:利用预先训练的注意力模块对训练词语进行处理,得到训练词语的合成词向量。

该步骤具体可参考图2-图4所示实施例。

步骤s603:将训练词语的合成词向量输入待训练模型进行训练。

输入的词向量为前向lstm的隐藏层向量为反向lstm的隐藏层向量为以前向lstm为例说明rnn计算步骤如下:

定义σ为sigmoid回归层,⊙为element-wise的乘法,ui,uf,uc,uo为不同状态下针对输入gt的权重矩阵,wi,wf,wc,wo为隐藏层向量的权重矩阵,bi,bf,bc,bo为偏置向量;在t时刻forgetgate的计算如下式所示

在t时刻更新中存储的所有信息,计算公式如下两式所示:

其中为t时刻可以被加入到cellstate的向量;

在t时刻将t-1时刻存储的信息更新为t时刻的存储信息,计算公式如下式所示

其中为t时刻cellstate的向量

在t时刻的输入下两式所示

反向lstm的隐层可通过类似的计算步骤得到,只是顺序相反。将前向lstm的隐藏层向量和反向lstm的隐藏层向量,在对应位置首尾拼接起来:整句话对应的拼接后的合成词向量表记为

矩阵ui,uf,uc,uo,wi,wf,wc,wo,bi,bf,bc,bo为rnn层的参数。

如图5所示,其中crf层接受一个特征向量序列的输入,然后产生一个标签序列的输出:

其中y为输出的标签序列,me,mt,bcrf构成crf层的参数

将作为训练样本标注了实体标签的词向量输入到模型中,这里的词向量是对样本进行处理后得到的合成词向量,然后得到预测实体标签序列y,根据其与正确序列之间的误差,利用反向传播算法调整模型参数,双向rnn层参数ui,uf,uc,uo,wi,wf,wc,wo,bi,bf,bc,bo以及crf层参数me,mt,bcrf,直至收敛,也就是,模型的识别准确度高于某一阈值,例如98%,则模型训练结束。在训练结束后,所有的参数都已经固定,该模型则可用于实体识别。整体训练过程可以参考图7所示示意图。

从实体模型的训练过程可以看出,实体模型的输入为合成词向量,因此,结合上述合成词向量的生成过程可见,实体模型的训练需要使用语言模型的输出结果。为了便于说明,以下将依据多原型词向量获取合成词向量功能赋予一个功能模块,即注意力模块,则语言模型、注意力模块以及实体识别模块的训练过程,可用如图8所示原理示意图进行表示。在实体识别模型训练之前,先使用无标注训练语料训练得到语言模型。在实体识别模型的过程中,将无标注的训练语料输入训练后的语言模型,得到语言模型输出的无标注的训练语料中的词语的前向权重,并依据前向权重获取无标注的训练语料中的词语的多原型词向量。使用无标注的训练语料中的词语的前向权重和多原型词向量,计算无标注的训练语料中的词语的合成词向量,对训练语料进行分词处理,得到训练词语,并对训练词语进行实体标注。从无标注的训练语料中的词语的合成词向量中,获取训练词语的合成词向量,使用训练词语的合成词向量以及训练词语的实体标注,训练实体识别模型。

也就是说,左侧部分可以看作是注意力模块的训练过程,使用对无标注训练语料,训练得到语言模型,然后在实体识别模型训练过程中,标注了实体标签的训练语料并非直接送入实体识别模型进行训练,而是先经过注意力模块,在注意力模块利用语言模型进行处理得到训练语料的合成词向量后,再进入模型进行训练。从而使得训练过程中能够充分考虑词语多个词义的权重对识别结果的影响,使得模型的准确度有明显提升。

例如,如果按照现有的实体识别方法,在某一篇文章中,如果出现了“影视剧‘风筝’的收视率破2”的描述,在利用现有的实体识别模型进行识别时,“风筝”这一词语很容易就将其就被识别为“玩具”。但是,当利用本申请中的实体识别方法来处理时,因为输入到实体识别模型中的向量为通过注意力模块得到的合成词向量,其体现的是该词语在其所在文章中所表达的每一种词义的权重对该词义的影响后结果,因此其识别结果能够更加准确。

图9为本申请实施例公开的一种实体识别装置,包括:分词模块、多原型词向量获取模块、合成词向量获取模块、识别模块以及训练模块。

分词模块,用于对待识别语料进行分词,得到待识别词语。

多原型词向量获取模块,用于获取待识别词语的各个多原型词向量,各个多原型词向量对应不同的词义。

合成词向量获取模块,用于获取待识别词语的合成词向量,待识别词语的合成词向量为各个多原型词向量的加权求和结果,其中,目标多原型词向量的权重用于表征,将待识别词语识别为目标多原型词向量对应的词义的可能性,目标多原型词向量为待识别词语的各个多原型词向量中的任意一个。

识别模块,用于依据合成词向量,确定实体识别结果。

训练模块用于按照图8所示的流程,训练实体识别模型。

以上各个模块功能的具体实现方式,可以参见上述方法实施例,这里不再赘述。

图9所述的实体识别模块,因为引入了注意力机制,因此,具有较高的识别准确性。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件单元,或者二者的结合来实施。软件单元可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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