一种基于Bi-LSTM-CRF模型的命名实体识别方法和装置与流程

文档序号:16134636发布日期:2018-12-01 00:47阅读:226来源:国知局

本发明涉及信息处理技术领域,尤其涉及一种基于bi-lstm-crf模型的命名实体识别方法和装置。

背景技术

在所有的自然语言处理应用中,命名实体识别是最基本也是应用最广泛的一种。它是指识别文中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。命名实体识别这一应用是后续的其他应用如信息提取、问答系统、句法分析、机器翻译、面向semanticweb的元数据标注等应用领域的重要基础工具。通过对命名实体识别这一工具的应用,可以构建一种自然语言模型,这种语言模型可以像人类那样理解、分析并回答自然语言的结果。目前命名实体识别方案,基本可分为两类:基于统计的方法与基于神经网络的方法。基于统计的方法主要包括hmm模型和crf模型、基于神经网络的方法主要包括卷积神经网络和lstm神经网络。

现有技术中基于统计的方法存在无法考虑长远的上下文信息,基于神经网络的方法存在输出之间相互独立,如果输出的识别标记之间具有较强的依赖关系,则基于神经网络的方案就无法对这些依赖关系进行建模,从而使得识别的准确率受到限制的技术问题。



技术实现要素:

本发明实施例提供了一种基于bi-lstm-crf模型的命名实体识别方法和装置,解决现有技术中的模型无法考虑长远的上下文信息,无法对这些依赖关系进行建模,从而使得识别的准确率受到限制的技术问题。

鉴于上述问题,提出了本申请实施例以便提供一种基于bi-lstm-crf模型的命名实体识别方法和装置。

第一方面,本发明提供了一种基于bi-lstm-crf模型的命名实体识别方法,所述方法包括:

对自然语言进行数据预处理,在训练情况下,将输入的第一自然语言进行分隔,获得第一字符序列;在预测情况下,将输入的第二自然语言进行分隔,获得第二字符序列,根据比对所述第二字符序列与所述第一字符序列,将所述第二字符序列不存在于所述第一字符序列中的字符归为未登录字符;根据所述第一字符序列中的各个字符做映射,获得向量矩阵,其中,所述向量矩阵包括所述各个字符对应的维度固定的向量;将所述向量矩阵输入bi-lstm模块,分别对所述bi-lstm模块里的前向lstm模块和后向lstm模块进行从前向后、从后向前的向量序列非线性变换,且结合所述前向lstm模块和后向lstm模块的输出结果,其中所述输出结果为发射矩阵;将bi-lstm模块的所述发射矩阵输入crf层形成bi-lstm-crf模型,所述bi-lstm-crf模型对所述自然语言进行整句实体识别;其中,根据交叉检验确定所述bi-lstm-crf模块的超参数。

优选地,对自然语言进行数据预处理,在训练情况下,将输入的第一自然语言进行分隔,获得第一字符序列,还包括:根据所述第一字符序列进行人工标记,获得标记数据;将所述标记数据输入神经网络。

优选地,所述根据所述字符序列中的各个字符做映射,获得向量矩阵,还包括:构建字符共现矩阵;根据梯度下降法对所述共现矩阵进行矩阵分解,获得字符向量;对所述字符做映射,获得特征矩阵,并根据未登录字符统一映射到未登录字符集的字向量。

优选地,所述将所述向量矩阵输入bi-lstm模块,分别对所述bi-lstm模块里的前向lstm模块和后向lstm模块进行从前向后、从后向前的向量序列非线性变换,且结合所述前向lstm模块和后向lstm模块的输出结果,其中所述输出结果为发射矩阵,还包括:确定所述神经网络的超参数;在训练过程中,使用batchnormalization方法加速训练;将前向lstm模块和后向lstm模块加入bi-lstm模块,其中,在前向lstm模块的每个时间点,输入所述自然语言的所述特征矩阵中的每一行,所述每个时间点的输出为一个向量和一个隐向量,其中所述隐向量输入下一个时间点的lstm模块,和下一个时间点输入的特征矩阵中的每一行共同产生所述下一个时间点的输出。

优选地,将bi-lstm模块的所述发射矩阵输入crf层形成bi-lstm-crf模块,所述bi-lstm-crf模块对所述自然语言进行整句实体识别,还包括:根据对所述自然语言进行整句实体识别,获得第一矩阵;根据所述第一矩阵,获得标签序列。

优选地,其特征在于,所述交叉检验包括:将所述标记数据分成训练数据集与测试数据集;根据所述测试数据集对不同的参数集训练,获得一系列不同超参数的模型;根据所述测试数据集评价所述一系列不同超参数的模型,确定最佳模型的参数。

第二方面,本发明提供了一种基于bi-lstm-crf模型的命名实体识别装置,所述装置包括:

第一获得单元,所述第一获得单元用于对自然语言进行数据预处理,在训练情况下,将输入的第一自然语言进行分隔,获得第一字符序列;

第一比对单元,所述第一比对单元用于在预测情况下,将输入的第二自然语言进行分隔,获得第二字符序列,根据比对所述第二字符序列与所述第一字符序列,将所述第二字符序列不存在于所述第一字符序列中的字符归为未登录字符;

第二获得单元,所述第二获得单元用于根据所述第一字符序列中的各个字符做映射,获得向量矩阵,其中,所述向量矩阵包括所述各个字符对应的维度固定的向量;

第三获得单元,所述第三获得单元用于将所述向量矩阵输入bi-lstm模块,分别对所述bi-lstm模块里的前向lstm模块和后向lstm模块进行从前向后、从后向前的向量序列非线性变换,且结合所述前向lstm模块和后向lstm模块的输出结果,其中所述输出结果为发射矩阵;

第一识别单元,所述第一识别单元用于将bi-lstm模块的所述发射矩阵输入crf层形成bi-lstm-crf模型,所述bi-lstm-crf模型对所述自然语言进行整句实体识别;

第一确定单元,所述第一确定单元用于根据交叉检验确定所述bi-lstm-crf模块的超参数。

优选地,所述装置还包括:

第四获得单元,所述第四获得单元用于根据所述第一字符序列进行人工标记,获得标记数据;

第一输入单元,所述第一输入单元用于将所述标记数据输入神经网络。

优选地,所述装置还包括:

第一构建单元,所述第一构建单元用于构建字符共现矩阵;

第五获得单元,所述第五获得单元用于根据梯度下降法对所述共现矩阵进行矩阵分解,获得字符向量;

第六获得单元,所述第六获得单元用于对所述字符做映射,获得特征矩阵,,并根据未登录字符统一映射到未登录字符集的字向量。

优选地,所述装置还包括:

第二确定单元,所述第二确定单元用于确定所述神经网络的超参数;

第一加速单元,所述第一加速单元用于在训练过程中,使用batchnormalization方法加速训练;

第一输出单元,所述第一输出单元用于将前向lstm模块和后向lstm模块加入bi-lstm模块,其中,在前向lstm模块的每个时间点,输入所述自然语言的所述特征矩阵中的每一行,所述每个时间点的输出为一个向量和一个隐向量,其中所述隐向量输入下一个时间点的lstm模块,和下一个时间点输入的特征矩阵中的每一行共同产生所述下一个时间点的输出。

优选地,所述装置还包括:

第七获得单元,所述第七获得单元用于根据对所述自然语言进行整句实体识别,获得第一矩阵;

第八获得单元,所述第八获得单元用于根据所述第一矩阵,获得标签序列。

优选地,所述交叉检验包括:

第一筛分单元,所述第一筛分单元用于将所述标记数据分成训练数据集与测试数据集;

第九获得单元,所述第九获得单元用于根据所述测试数据集对不同的参数集训练,获得一系列不同超参数的模型;

第三确定单元,所述第三确定单元用于根据所述测试数据集评价所述一系列不同超参数的模型,确定最佳模型的参数。

第三方面,本发明提供了一种基于bi-lstm-crf模型的命名实体识别装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:对自然语言进行数据预处理,在训练情况下,将输入的第一自然语言进行分隔,获得第一字符序列;在预测情况下,将输入的第二自然语言进行分隔,获得第二字符序列,根据比对所述第二字符序列与所述第一字符序列,将所述第二字符序列不存在于所述第一字符序列中的字符归为未登录字符;根据所述第一字符序列中的各个字符做映射,获得向量矩阵,其中,所述向量矩阵包括所述各个字符对应的维度固定的向量;将所述向量矩阵输入bi-lstm模块,分别对所述bi-lstm模块里的前向lstm模块和后向lstm模块进行从前向后、从后向前的向量序列非线性变换,且结合所述前向lstm模块和后向lstm模块的输出结果,其中所述输出结果为发射矩阵;将bi-lstm模块的所述发射矩阵输入crf层形成bi-lstm-crf模型,所述bi-lstm-crf模型对所述自然语言进行整句实体识别;其中,根据交叉检验确定所述bi-lstm-crf模块的超参数。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

1.本申请实施例提供的一种基于bi-lstm-crf模型的命名实体识别方法和装置,通过对自然语言进行数据预处理,在训练情况下,将输入的第一自然语言进行分隔,获得第一字符序列;在预测情况下,将输入的第二自然语言进行分隔,获得第二字符序列,根据比对所述第二字符序列与所述第一字符序列,将所述第二字符序列不存在于所述第一字符序列中的字符归为未登录字符;根据所述第一字符序列中的各个字符做映射,获得向量矩阵,其中,所述向量矩阵包括所述各个字符对应的维度固定的向量;将所述向量矩阵输入bi-lstm模块,分别对所述bi-lstm模块里的前向lstm模块和后向lstm模块进行从前向后、从后向前的向量序列非线性变换,且结合所述前向lstm模块和后向lstm模块的输出结果,其中所述输出结果为发射矩阵;将bi-lstm模块的所述发射矩阵输入crf层形成bi-lstm-crf模型,所述bi-lstm-crf模型对所述自然语言进行整句实体识别;其中,根据交叉检验确定所述bi-lstm-crf模块的超参数。解决现有技术中的模型无法考虑长远的上下文信息,无法对这些依赖关系进行建模,从而使得识别的准确率受到限制的技术问题,达到了直接将原始语句输入模型就可以提取出语句中的命名实体,适应性强,适用面广,提高对实体识别的准确率的技术效果。

2.本申请实施例通过确定所述神经网络的超参数;在训练过程中,使用batchnormalization方法加速训练;将前向lstm模块和后向lstm模块加入bi-lstm模块,其中,在前向lstm模块的每个时间点,输入所述自然语言的所述特征矩阵中的每一行,所述每个时间点的输出为一个向量和一个隐向量,其中所述隐向量输入下一个时间点的lstm模块,和下一个时间点输入的特征矩阵中的每一行共同产生所述下一个时间点的输出。进一步的通过端到端的模型,不需要专门将自然语言数据处理成某个特定的格式,也不需要对原始数据做特征转换,直接将原始语句输入模型就可以提取出语句中的命名实体,适应性更强。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

图1为本发明实施例中一种基于bi-lstm-crf模型的命名实体识别方法的流程示意图;

图2为本发明实施例中一种基于bi-lstm-crf模型的命名实体识别装置的结构示意图;

图3为本发明实施例中提供的bi-lstm网络模型工作示意图;

图4为本发明实施例中提供的bi-lstm-crf模型结构示意图。

具体实施方式

本发明实施例提供了一种基于bi-lstm-crf模型的命名实体识别方法和装置,本发明提供的技术方案总体思路如下:对自然语言进行数据预处理,在训练情况下,将输入的第一自然语言进行分隔,获得第一字符序列;在预测情况下,将输入的第二自然语言进行分隔,获得第二字符序列,根据比对所述第二字符序列与所述第一字符序列,将所述第二字符序列不存在于所述第一字符序列中的字符归为未登录字符;根据所述第一字符序列中的各个字符做映射,获得向量矩阵,其中,所述向量矩阵包括所述各个字符对应的维度固定的向量;将所述向量矩阵输入bi-lstm模块,分别对所述bi-lstm模块里的前向lstm模块和后向lstm模块进行从前向后、从后向前的向量序列非线性变换,且结合所述前向lstm模块和后向lstm模块的输出结果,其中所述输出结果为发射矩阵;将bi-lstm模块的所述发射矩阵输入crf层形成bi-lstm-crf模型,所述bi-lstm-crf模型对所述自然语言进行整句实体识别;其中,根据交叉检验确定所述bi-lstm-crf模块的超参数。用于解决现有技术中的模型无法考虑长远的上下文信息,无法对这些依赖关系进行建模,从而使得识别的准确率受到限制的技术问题,达到了直接将原始语句输入模型就可以提取出语句中的命名实体,适应性强,适用面广,提高对实体识别的准确率的技术效果。

下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。

实施例一

图1为本发明实施例中一种基于bi-lstm-crf模型的命名实体识别方法的流程示意图。如图1所示,所述方法包括:

步骤110:对自然语言进行数据预处理,在训练情况下,将输入的第一自然语言进行分隔,获得第一字符序列。

步骤120:在预测情况下,将输入的第二自然语言进行分隔,获得第二字符序列,根据比对所述第二字符序列与所述第一字符序列,将所述第二字符序列不存在于所述第一字符序列中的字符归为未登录字符。

进一步的,根据所述第一字符序列进行人工标记,获得标记数据;将所述标记数据输入神经网络。

具体而言,在训练的情况下,将输入的自然语言进行切割,获得第一字符序列c,所述第一字符序列c中的元素即为原始输入语言中的单字和标点符号;根据所述第一字符序列进行人工标记,获得标记数据,将所述标记数据输入神经网络。举例而言,通过字母序列标记字符序列即为标记序列,标记序列中的每一个元素即为对应的字符的实体类别,其中b-代表该字符是实体的起始字符,e-代表该字符是结束字符,n代表其他类别,l代表地点,o代表机构,t代表时间,p代表人名。其中需要识别的实体类别可以根据需要进行增加或减少,仅需在标记数据时将对应的类别做对应的改动即可。在预测的情况下,将输入的第二自然语言进行分隔,获得第二字符序列,根据比对所述第二字符序列与所述第一字符序列,将所述第二字符序列不存在于所述第一字符序列中的字符归为未登录字符<unk>。

步骤130:根据所述字符序列中的各个字符做映射,获得向量矩阵,其中,所述向量矩阵包括所述各个字符对应的维度固定的向量;

进一步的,构建字符共现矩阵;根据梯度下降法对所述共现矩阵进行矩阵分解,获得字符向量;对所述字符做映射,获得特征矩阵,并根据未登录字符统一映射到未登录字符集的字向量。

具体而言,将所述第一字符序列c中每个字符做一个映射,使得一个字符被表达成为一个维度固定的向量,本申请实施例中将向量维度数目定为50维。对于一句自然语言语句,通过上述步骤即可得到一个特征矩阵,所述特征矩阵的每一行即为一个字符代表的字向量,矩阵行数和字符数一致。字符对应的向量由预先训练好的模型得到。为了达到上述目的,可将本步骤分为三步进行:

步骤131:对语料数据进行统计,得到一个字符级别的共现矩阵,所述共现矩阵中的每个元素即为任意两个字符在同一句话中出现的频次的对数值,而此时得到的所述共现矩阵存在离散字向量和高维且稀疏的特性,无法作为字向量。

步骤132:对所述共现矩阵进行降维,本发明实施例采用了梯度下降法对所述共现矩阵进行矩阵分解,通过最小化损失函数来确定各个字符的分布式表示,其中损失函数定义如下:

上式中,xij是字符wi和字符wj在同一句话中共同出现的次数的对数,vi是字符wi作为中心字符时的分布式表示,uj是字符wj的作为上下文时的分布式表示,使用随机梯度下降法对所述损失函数最小化,最终得到的收敛值即为字符向量mc。

步骤133:将所述字符序列里的每一个元素做一个映射,映射的方式即为查表的方式。最终结果即为原始自然语言对应的特征矩阵m_s。对于未登录的字符,统一将其映射到<unk>代表的字向量上去。即可消除字符的二义性,并减少噪声影响。

步骤140:将所述向量矩阵输入bi-lstm模块,分别对所述bi-lstm模块里的前向lstm模块和后向lstm模块进行从前向后、从后向前的向量序列非线性变换,且结合所述前向lstm模块和后向lstm模块的输出结果,其中所述输出结果为发射矩阵。

进一步的,确定所述神经网络的超参数;在训练过程中,使用batchnormalization方法加速训练;将前向lstm模块和后向lstm模块加入bi-lstm模块,其中,在前向lstm模块的每个时间点,输入所述自然语言的所述特征矩阵中的每一行,所述每个时间点的输出为一个向量和一个隐向量,其中所述隐向量输入下一个时间点的lstm模块,和下一个时间点输入的特征矩阵中的每一行共同产生所述下一个时间点的输出。

具体而言,将原始自然语言的所述向量矩阵输入bi-lstm网络之后,网络里的前向lstm模块会从前向后对向量序列进行非线性变换,后向lstm模块会从后向前地对向量序列进行非线性变换,将所述前向lstm模块和后向lstm模块输出地结果进行结合,最终将结合的结果经过softmax操作之后就可以得到一个同时考虑前向和后向信息的抽象语言表达方式。本步骤主要包括以下几个步骤:

步骤141:确定所述神经网络的超参数,即所述神经网络的具体参数主要包括输入向量维为50维,隐层向量256维,输出维度为50维,隐层向量初始化方式为随机初始化。

步骤142:在训练的过程中,使用batchnormalization技术来加速训练。即每次输入进bi-lstm网络的为一个batchsize的训练数据而非单个训练数据。具体做法为将输入的batchsize个句子代表的特征矩阵m_s做归一化,使其具有0均值和单位方差,具体如下所示:

上式中,m_s(i,j)代表特征矩阵里第i行第j列的元素,e[]操作代表求期望,var操作代表求方差。通过所述归一化操作得到的数据均满足0均值、单位方差、弱相关性。

步骤143:为了能够同时考虑一个句子中过去和未来的信息,在所述bi-lstm模块中同时加入所述前向lstm模块和后向lstm模块。对于所述前向lstm模块,在每个时间点,输入的为所述自然语言的特征矩阵m_s中的每一行,每个时刻的输出为一个向量和一个隐向量,输出的向量即为单字到实体类别的发射概率,所述隐向量会输入下一个时间点的lstm模块,和下一个时间点的输入的特征矩阵中的每一行共同产生所述下一个时间点的输出。对于所述后向lstm模块,则会反方向地完成所述前向lstm模块的操作。所述前向lstm模块和后向lstm模块获得输出向量之后,将两者地输出向量输入连接层并进行非线性变换即可得到发射概率。即可得到由字符到实体类别的所述发射矩阵me,它将作为评价分数成为评价某个标记路径的考量之一。

图3为bi-lstm模块工作的示意图,从图中可以看出输入特征矩阵里的每个圆代表一个字向量,所述前向lstm模块和后向lstm模块分别从前往后和从后往前读取字向量序列。

针对所述训练过程中可能出现的过拟合等问题,可以采取如下几个方式来解决:

1)earlystopping:设置一个最大持续轮次,在每个轮次结束时,对所得到的最新模型参数在测试集上进行测试,得到相应的准确率并记录最佳的准确率,当最新模型参数在测试集上得到的准确率连续小于最佳准确率的次数大于最大持续轮次时即停止训练并保存最佳参数。

2)dropouttraining:在训练过程中,以一定的几率p舍弃部分神经元的输出值。

3)使用正则化项来减小模型复杂度,即在要优化的模型目标函数之后加上一个正则化项,在本发明实施例中,采用所述正则化项是模型参数向量的l2范数,通过最小化带正则化项的目标函数即可得到较为简单的模型,这种模型具有更强的泛化能力。

步骤150:将bi-lstm模块的所述发射矩阵输入crf层形成bi-lstm-crf模型,所述bi-lstm-crf模型对所述自然语言进行整句实体识别;

进一步的,根据对所述自然语言进行整句实体识别,获得第一矩阵;根据所述第一矩阵,获得标签序列。

具体而言,请参考图4,图4为整个模型的结构示意图。将所述bi-lstm模块输出的所述发射矩阵me输入所述crf层,所述bi-lstm-crf模型对所述自然语言做一个句子级别的实体识别。它的输出结果是所述第一矩阵,所述第一矩阵中的元素是从一个实体类别转移到另一个实体类别的得分。根据所述第一矩阵,获得标签序列,即实体对应的类别y=(y1,y2,…),所述bi-lstm-crf模型对于句子的标签为y这一结果的打分为:

上式中,pi,yi是bi-lstm层输出的发射矩阵的元素,而ayi-byi则是crf层输出的转移矩阵的元素。可以看出整个序列的打分是各个模块的分的总和,而每个位置的打分都通过两个模块得到,一部分是所述bi-lstm模型的输出发射概率矩阵,另一部分则是所述crf层的输出转移概率矩阵。通过上述公式进行归一化处理后就得到y对应于所述自然语言的概率:

在所述bi-lstm-crf模型训练时,通过最大似然函数来调整参数;

在预测(解码)的过程中就通过使用动态规划的算法viterbi来求解得分最高的序列。

步骤160:根据交叉检验确定所述bi-lstm-crf模块的超参数。

进一步的,所述交叉检验包括:将所述标记数据分成训练数据集与测试数据集;根据所述测试数据集对不同的参数集训练,获得一系列不同超参数的模型;根据所述测试数据集评价所述一系列不同超参数的模型,确定最佳模型的参数。

具体而言,针对所述bi-lstm-crf模型,为了使模型更好地拟合数据,本申请实施例使用交叉验证的方法来确定所述bi-lstm-crf模型最优的超参数,具体步骤如下:

步骤161:随机地将所述标记数据分成两部分,一部分作为训练数据集,另一部分则作为测试数据集;

步骤162:根据所述训练数据集对不同的参数集上进行训练,获得一系列不同超参数的模型;

步骤163:根据所述测试数据集评价所述一系列不同超参数的模型,表现最佳的模型的参数即为最佳超参数。

实施例2

基于与前述实施例中一种基于bi-lstm-crf模型的命名实体识别方法同样的发明构思,本发明还提供一种基于bi-lstm-crf模型的命名实体识别装置,如图2所示,所述装置包括:

第一获得单元,所述第一获得单元用于对自然语言进行数据预处理,在训练情况下,将输入的第一自然语言进行分隔,获得第一字符序列;

第一比对单元,所述第一比对单元用于在预测情况下,将输入的第二自然语言进行分隔,获得第二字符序列,根据比对所述第二字符序列与所述第一字符序列,将所述第二字符序列不存在于所述第一字符序列中的字符归为未登录字符;

第二获得单元,所述第二获得单元用于根据所述第一字符序列中的各个字符做映射,获得向量矩阵,其中,所述向量矩阵包括所述各个字符对应的维度固定的向量;

第三获得单元,所述第三获得单元用于将所述向量矩阵输入bi-lstm模块,分别对所述bi-lstm模块里的前向lstm模块和后向lstm模块进行从前向后、从后向前的向量序列非线性变换,且结合所述前向lstm模块和后向lstm模块的输出结果,其中所述输出结果为发射矩阵;

第一识别单元,所述第一识别单元用于将bi-lstm模块的所述发射矩阵输入crf层形成bi-lstm-crf模型,所述bi-lstm-crf模型对所述自然语言进行整句实体识别;

第一确定单元,所述第一确定单元用于根据交叉检验确定所述bi-lstm-crf模块的超参数。

进一步的,所述装置还包括:

第四获得单元,所述第四获得单元用于根据所述第一字符序列进行人工标记,获得标记数据;

第一输入单元,所述第一输入单元用于将所述标记数据输入神经网络。

进一步的,所述装置还包括:

第一构建单元,所述第一构建单元用于构建字符共现矩阵;

第五获得单元,所述第五获得单元用于根据梯度下降法对所述共现矩阵进行矩阵分解,获得字符向量;

第六获得单元,所述第六获得单元用于对所述字符做映射,获得特征矩阵。

进一步的,所述装置还包括:

第二确定单元,所述第二确定单元用于确定所述神经网络的超参数;

第一加速单元,所述第一加速单元用于在训练过程中,使用batchnormalization方法加速训练;

第一输出单元,所述第一输出单元用于将前向lstm模块和后向lstm模块加入bi-lstm模块,其中,在前向lstm模块的每个时间点,输入所述自然语言的所述特征矩阵中的每一行,所述每个时间点的输出为一个向量和一个隐向量,其中所述隐向量输入下一个时间点的lstm模块,和下一个时间点输入的特征矩阵中的每一行共同产生所述下一个时间点的输出。

进一步的,所述装置还包括:

第七获得单元,所述第七获得单元用于根据对所述自然语言进行整句实体识别,获得第一矩阵;

第八获得单元,所述第八获得单元用于根据所述第一矩阵,获得标签序列。

进一步的,所述交叉检验包括:

第一筛分单元,所述第一筛分单元用于将所述标记数据分成训练数据集与测试数据集;

第九获得单元,所述第九获得单元用于根据所述测试数据集对不同的参数集训练,获得一系列不同超参数的模型;

第三确定单元,所述第三确定单元用于根据所述测试数据集评价所述一系列不同超参数的模型,确定最佳模型的参数。

前述图1实施例1中的一种基于bi-lstm-crf模型的命名实体识别方法的各种变化方式和具体实例同样适用于本实施例的一种基于bi-lstm-crf模型的命名实体识别装置,通过前述对一种基于bi-lstm-crf模型的命名实体识别方法的详细描述,本领域技术人员可以清楚的知道本实施例中一种基于bi-lstm-crf模型的命名实体识别装置的实施方法,所以为了说明书的简洁,在此不再详述。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

1.本申请实施例提供的一种基于bi-lstm-crf模型的命名实体识别方法和装置,通过对自然语言进行数据预处理,在训练情况下,将输入的第一自然语言进行分隔,获得第一字符序列;在预测情况下,将输入的第二自然语言进行分隔,获得第二字符序列,根据比对所述第二字符序列与所述第一字符序列,将所述第二字符序列不存在于所述第一字符序列中的字符归为未登录字符;根据所述第一字符序列中的各个字符做映射,获得向量矩阵,其中,所述向量矩阵包括所述各个字符对应的维度固定的向量;将所述向量矩阵输入bi-lstm模块,分别对所述bi-lstm模块里的前向lstm模块和后向lstm模块进行从前向后、从后向前的向量序列非线性变换,且结合所述前向lstm模块和后向lstm模块的输出结果,其中所述输出结果为发射矩阵;将bi-lstm模块的所述发射矩阵输入crf层形成bi-lstm-crf模型,所述bi-lstm-crf模型对所述自然语言进行整句实体识别;其中,根据交叉检验确定所述bi-lstm-crf模块的超参数。解决现有技术中的模型无法考虑长远的上下文信息,无法对这些依赖关系进行建模,从而使得识别的准确率受到限制的技术问题,达到了直接将原始语句输入模型就可以提取出语句中的命名实体,适应性强,适用面广,提高对实体识别的准确率的技术效果。

2.本申请实施例通过确定所述神经网络的超参数;在训练过程中,使用batchnormalization方法加速训练;将前向lstm模块和后向lstm模块加入bi-lstm模块,其中,在前向lstm模块的每个时间点,输入所述自然语言的所述特征矩阵中的每一行,所述每个时间点的输出为一个向量和一个隐向量,其中所述隐向量输入下一个时间点的lstm模块,和下一个时间点输入的特征矩阵中的每一行共同产生所述下一个时间点的输出。进一步的通过端到端的模型,不需要专门将自然语言数据处理成某个特定的格式,也不需要对原始数据做特征转换,直接将原始语句输入模型就可以提取出语句中的命名实体,适应性更强。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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