一种基于序列生成对抗网络的中文命名实体识别数据增强算法转让专利

申请号 : CN202010635292.1

文献号 : CN111738007B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李思王蓬辉李明正孙忆南

申请人 : 北京邮电大学

摘要 :

本发明提供了一种通过融合源领域和目标域中句子的语义差异和标签差异,来选择源领域数据中的正样本数据来扩展目标域的训练数据,达到增强目标域的命名实体识别性能的方法。在以往的Bi‑LSTM+CRF模型的基础上,为了融合源领域和目标域中句子的语义差异和标签差异,我们通过强化学习中的状态表示和奖励设置来引入语义差异和标签差异,使得训练的决策网络可以选择源领域的数据中对于目标域的命名实体识别的性能有正向影响的句子,扩展目标域的训练数据,解决目标域训练数据不足的问题,同时提升目标域的命名实体识别性能。

权利要求 :

1.一种基于序列生成对抗网络的中文命名实体识别数据增强方法,其特征在于,采用序列生成对抗网络的方式,学习训练集中实体和非实体的关系,来进行数据增强,提高命名实体识别的性能,该方法包括以下步骤:(1)对语料库中的句子进行处理,根据句子的实体标注信息,将每个句子分成实体和非实体部分,同时将实体和非实体部分加入字典;

(2)根据实体和非实体形成的字典,将每个句子中的实体和非实体部分映射成字典中对应的索引,形成索引序列;

(3)随机初始化索引到向量的映射字典,将每个句子映射成实体和非实体对应的向量连接而成的数值矩阵;

(4)生成器采用从左到右的策略进行文本生成,双向长短期记忆神经网络(Bidirectional Long-Short Term Memory,Bi-LSTM)用于提取输出单元与之前时刻相关的特征信息,前馈神经网络将特征信息映射成所有可能的输出单元的概率;

(5)考虑当前单元的输出对于整个输出序列的影响,采用蒙特卡洛搜索的roll-out策略对之后时刻的输出单元进行采样;

(6)判别器对采样后形成的完整序列进行判断,给出相应的分数,指导生成器的数据生成;

(7)根据步骤(6)得到的判别器分数,计算当前句子的奖励和生成器的目标函数,利用反向传播和梯度更新获得良好的生成器模型,来自动生成大量数据;

(8)将步骤(7)中生成数据与步骤(1)的字典进行字符串匹配,得到生成数据对应的实体标签;

(9)将生成的文本数据用于扩大训练集,并通过字向量字典将训练集中的句子数值化为向量矩阵;

(10)采用双向长短期记忆神经网络来提取输入句子中每个字符上下文相关的特征向量表示;

(11)采用条件随机场解码获得每个字符对应的预测标签,计算损失函数,利用反向传播计算模型中的参数;

(12)不断重复步骤(9)到步骤(11),在开发集上测试训练的命名实体识别模型,选取在开发集上F值最大的模型,进行保存。

2.如权利要求1中所述方法,其特征在于,非训练情况下,实体识别的过程包括:(2.1)将测试集中句子通过字向量字典映射成对应的向量矩阵;

(2.2)将每个句子的向量表示输入到双向长短期记忆神经网络,得到每个句子和上下文相关的特征表示;

(2.3)采用条件随机场,解码得到测试集中每个句子的最优标签序列,作为命名实体识别的结果。

3.如权利要求1所述的方法,其特征在于,所述步骤(1)中,对语料库中的句子进行处理,根据句子的实体标注信息,将每个句子分成实体和非实体部分,同时将实体和非实体部分加入字典,具体过程:

假设一个文本序列{c1,c2,c3,c4,c5,c6}的标签是{O,O,B-PER,I-PER,O,O},将c1c2,c5c6归为非实体部分,c3c4归为实体部分,然后将它们和对应的标签加入到字典中。

4.如权利要求1所述的方法,其特征在于,所述的步骤(4)中,双向长短期记忆神经网络用于提取输出单元与之前时刻相关的特征信息,前馈神经网络将特征信息映射成所有可能的输出单元的概率,计算过程如下:hi=LSTM(hi-1,li-1)p(li|l0,l1,…,li-1)=softmax(W·hi+b)其中LSTM表示的是LSTM单元,hi-1指的是i-1时刻生成器中LSTM的隐层输出,W和b是前馈网络的可训练的参数权重,采用hi-1来初始化i时刻的LSTM是为了引入前一时刻的信息,softmax用于归一化。

5.如权利要求1中所述的方法,其特征在于,所述的步骤(5)中,采用蒙特卡洛搜索的roll-out策略对之后时刻的输出单元进行采样:{(l1,l2,…,lm)1,(l1,l2,…,lm)2,…,(l1,l2,…,lm)K}=MC((l1,…,li),K)其中li是当前时刻的输出单元,m是设定的最大输出序列长度,K是蒙特卡洛搜索的采样次数,MC是蒙特卡洛搜索方法。

6.如权利要求1中所述的方法,其特征在于,所述的步骤(6)中判别器对采样后形成的完整序列进行判断,给出相应的分数,具体计算过程:o=max{h1,h2,…,hm}p=sigmoid(Wo*o+bo)其中 是字符ci的字向量,ti是字符ci对应的标签, 和 是卷积核的参数,window是卷积核的窗口大小,max是指最大池化操作,用于得到最终的文本特征表示,Wo和bo用于将文本特征映射到输入文本为真实文本的概率分数,sigmoid用于将输出概率限制在0到1之间。

7.如权利要求1中所述的方法,其特征在于,所述的步骤(7)中当前句子的奖励和生成器的目标函数,具体计算过程:

其中Ri是i时刻生成器获得的奖励,J(θ)是生成器的目标函数,Discriminator是指在判别器的计算过程,K是蒙特卡洛搜索的采样次数,Gθ是生成器的参数,m是设定的最大输出序列长度。

说明书 :

一种基于序列生成对抗网络的中文命名实体识别数据增强

算法

技术领域

[0001] 本发明涉及互联网技术领域,尤其涉及一种采用序列生成对抗网络的方式,来进行数据增强,提高中文命名实体识别的性能。

背景技术

[0002] 近年来,深度学习在图像、语音和自然语言处理方面取得很大进展。深度学习作为机器学习算法的新兴技术,其动机在于建立,模拟人脑进行分析学习的神经网络。在图像领
域,人们利用深度神经网络,实现了图像中的目标检测,比如利用卷积神经网络和候选窗结
合,实现对图像中的行人进行检测;在语音领域,深度学习则被用于语音合成和识别,为我
们提供了智能的语音系统;在自然语言处理领域,深度学习更是被应用在了各个生活场景,
比如利用神经网络分析用户的浏览记录和消费行为,推送用户可能喜欢的产品,以及利用
大量的平行语料库训练翻译系统,使机器达到高水平的翻译能力。随着互联网的迅速发展,
其产生的用户信息也越来越多,如何能够自动化地从用户信息中提取有用信息,来服务用
户,具有十分重要的意义。中文命名实体识别作为信息提取的上游任务,其发展对于信息提
取技术十分关键。
[0003] 中文命名实体识别是指给定一段中文文本,识别出文本中预定义的实体类别,实体类别一般包括人名、地点、时间这几类实体。通过对中文文本中的实体进行识别,有助于
提取文本中的关键实体信息,了解文本中的实体和实体关系,这对于机器翻译、对话系统和
知识图谱的构建都有十分重要的作用。
[0004] 中文命名实体识别通常包括两个过程:(1)确定实体的边界;(2)识别实体的类型。一般地,我们将命名实体识别看成序列标注的问题,采用标注规则同时标注实体的类型和
边界。用于命名实体识别的传统方法包括最大熵模型、支持向量机模型以及条件随机场。近
年来发展的深度学习方法,比如循环神经网络、卷积神经网络等也被广泛应用于中文命名
实体识别上,并且在几个大型语料库上取得了较高的准确率。
[0005] 深度学习是让神经网络自动抓取数据的特征,为了取得较高的准确率往往需要大量的数据。但是,目前在中文命名实体识别方面,现有的大型语料库只有新闻领域的,在微
博、医疗等领域的标注语料库很少,使得训练的神经网络无法在该领域上达到很好的准确
率。近年来,为了提高准确率,在微博、医疗等领域上的命名实体识别任务,主要从两个方面
着手。
[0006] 一方面是修改深度模型的结构。其中,多任务的学习机制被用于综合考虑中文文本中不同类别的实体的识别结果;注意力机制在中文文本中赋予不同的字符以不同的权
重,来提取文本中更加重要的信息。另一方面引入外部资源,也可以帮助提高命名实体识别
的准确性。外部资源包括额外的实体字典、大规模的无标注或弱标注的语料库等。这些额外
的资源通常以额外特征的形式集成到模型中。
[0007] 在“An attention-based deep learning model for clinical named entity recognition of Chinese electronic medical records”文章中,作者采用了注意力机
制,来获取医疗文本中的关键信息和文本特征。
[0008] 首先,利用双向长短期记忆网络获取文本中每个字符的上下文相关的隐层特征,然后根据以下公式计算每个字符隐层特征的注意力权重:
[0009]
[0010] etj=tanh(Wa[xt:xj])
[0011]
[0012] 其中,xt是当前字符的字向量,xj是任意位置字符的字向量,αtj是j位置的字符向量在t位置的权重,Wa是可训练的参数,ct是经过注意力层后的输出。
[0013] 在“Incorporating dictionaries into deep neural networks for the Chinese clinical named entity recognition”文章中,作者通过引入额外的实体字典和
人工设计的特征,一定程度上增强了模型识别在训练集中未出现的实体的能力。其中实体
字典的加入方式是:如果一个字符的n-gram模板出现在实体字典中,那么会在这个字符的
字向量后面拼接一个数值为1的向量,否则拼接一个数值为0的向量。
[0014] 发明人在研究过程中发现:对于“An attention-based deep learning model for clinical named entity recognition of Chinese electronic medical records”、
“Incorporating dictionaries into deep neural networks for the Chinese 
clinical named entity recognition”现有技术中:
[0015] 1.修改深度模型的结构虽然可以增强文本的语义表示,但是没有解决缺乏大量标注数据的问题。
[0016] 2.引入外部资源需要花费大量的人力和时间收集外部资源,同时需要设计有效的规则将外部资源加入到模型中。

发明内容

[0017] 为了解决上述的技术问题,本发明提供了一种基于序列生成对抗网络在命名实体识别任务上进行数据增强的方法,通过学习训练集中实体和非实体部分的隐藏关系,来生
成多样化的训练数据,扩大训练集,减轻缺乏大量标注数据的影响,提高命名实体识别的性
能。
[0018] 本发明提供了一种基于序列生成对抗网络的中文命名实体识别数据增强算法,序列生成对抗网络中的生成器可以学习训练集中实体和非实体的关系,判别器则用于判断生
成器生成数据的质量,最终利用高质量的生成数据来扩大训练集,达到提高命名实体识别
性能的目的。
[0019] 步骤一、对语料库中的句子进行处理,根据句子的实体标注信息,将每个句子分成实体和非实体部分,同时将实体和非实体部分加入字典。
[0020] 步骤二、根据实体和非实体形成的字典,将每个句子中的实体和非实体部分映射成字典中对应的索引,形成索引序列。
[0021] 步骤三、随机初始化索引到向量的映射字典,将每个句子映射成实体和非实体对应的向量连接而成的数值矩阵。
[0022] 步骤四、生成器采用从左到右的策略进行文本生成,双向长短期记忆神经网络(Bidirectional Long-Short Term Memory,Bi-LSTM)用于提取输出单元与之前时刻相关
的特征信息,前馈神经网络将特征信息映射成所有可能的输出单元的概率。
[0023] 步骤五、考虑当前单元的输出对于整个输出序列的影响,采用蒙特卡洛搜索的roll-out策略对之后时刻的输出单元进行采样。
[0024] 步骤六、判别器对采样后形成的完整序列进行判断,给出相应的分数,指导生成器的数据生成。
[0025] 步骤七、根据步骤六得到的判别器分数,计算当前句子的奖励和生成器的目标函数,利用反向传播和梯度更新获得良好的生成器模型,来自动生成大量数据。
[0026] 步骤八、将步骤七中生成数据与步骤一的字典进行字符串匹配,得到生成数据对应的实体标签。
[0027] 步骤九、将生成的文本数据用于扩大训练集,并通过字向量字典将训练集中的句子数值化为向量矩阵。
[0028] 步骤十、采用双向长短期记忆神经网络(Bidirectional Long-Short Term Memory,Bi-LSTM)来提取输入句子中每个字符上下文相关的特征向量表示。
[0029] 步骤十一、采用条件随机场解码获得每个字符对应的预测标签,计算损失函数,利用反向传播计算模型中的参数。
[0030] 步骤十二、不断重复步骤九到步骤十一,在开发集上测试训练的命名实体识别模型,选取在开发集上F值最大的模型,进行保存。
[0031] 进一步的,在非训练情况下,将步骤一到步骤十二替换成:
[0032] 步骤一、将测试集中句子通过字向量字典映射成对应的向量矩阵;
[0033] 步骤二、将每个句子的向量表示输入到双向长短期记忆神经网络,得到每个句子和上下文相关的特征表示;
[0034] 步骤三、采用条件随机场,解码得到测试集中每个句子的最优标签序列,作为命名实体识别的结果。
[0035] 进一步的,所述步骤一中对语料库中的句子进行处理,根据句子的实体标注信息,将每个句子分成实体和非实体部分,同时将实体和非实体部分加入字典,具体过程:
[0036] 假设一个文本序列{c1,c2,c3,c4,c5,c6}的标签是{O,O,B-PER,I-PER,O,O},可以将c1c2,c5c6归为非实体部分,c3c4归为实体部分,然后将它们和对应的标签加入到字典中。
[0037] 进一步的,所述的步骤四中,双向长短期记忆神经网络用于提取输出单元与之前时刻相关的特征信息,前馈神经网络将特征信息映射成所有可能的输出单元的概率,计算
过程如下:
[0038] hi=LSTM(hi-1,li-1)
[0039] p(li|l0,l1,…,li-1)=softmax(W·hi+b)
[0040] 其中LSTM表示的是LSTM单元,hi-1指的是i-1时刻生成器中LSTM的隐层输出,W和b是前馈网络的可训练的参数权重,采用hi-1来初始化i时刻的LSTM是为了引入前一时刻的信
息,softmax用于归一化。
[0041] 进一步的,所述的步骤五中采用蒙特卡洛搜索的roll-out策略对之后时刻的输出单元进行采样:
[0042] {(l1,l2,…,lm)1,(l1,l2,…,lm)2,…,(l1,l2,…,lm)K}=MC((l1,…,li),K)
[0043] 其中li是当前时刻的输出单元,m是设定的最大输出序列长度,K是蒙特卡洛搜索的采样次数,MC是蒙特卡洛搜索方法。
[0044] 进一步的,所述的步骤六中判别器对采样后形成的完整序列进行判断,给出相应的分数,具体计算过程:
[0045]
[0046]
[0047] o=max{h1,h2,…,hm}
[0048] p=sigmoid(Wo*o+bo)
[0049] 其中 是字符ci的字向量,ti是字符ci对应的标签, 和 是卷积核的参数,window是卷积核的窗口大小,max是指最大池化操作,用于得到最终的文本特征表示,Wo和bo
用于将文本特征映射到输入文本为真实文本的概率分数,sigmoid用于将输出概率限制在0
到1之间。
[0050] 进一步的,所述的步骤七中当前句子的奖励和生成器的目标函数,具体计算过程:
[0051]
[0052]
[0053] 其中Ri是i时刻生成器获得的奖励,J(θ)是生成器的目标函数,Discriminator是指在判别器的计算过程,K是蒙特卡洛搜索的采样次数,Gθ是生成器的参数。
[0054] 本发明提供了一种基于序列生成对抗网络的中文命名实体识别数据增强算法,采用训练集中实体和非实体作为生成器中的基本生成单元,避免了生成文本没有标签的问
题;同时利用强化学习的方式建立生成器和判别器之间的联系,解决了梯度更新无法在生
成器和判别器之间传播的问题,同时通过生成器学习实体和非实体的关系,自动生成标注
数据,减轻了缺乏大量标注数据的影响,提高了命名实体识别的性能。

附图说明

[0055] 图1为实施例一的流程图;
[0056] 图2为本发明提供的基于序列生成对抗网络的中文命名实体识别数据增强算法的网络结构图。

具体实施方式

[0057] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是
本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人
员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范
围。其中,本实施例中出现的缩略语和关键术语定义如下:
[0058] CRF:Conditional Random Field条件随机场;
[0059] Bi-LSTM:Bidirectional Long Short-Term Memory双向长短期记忆神经网络;
[0060] 实施例一
[0061] 参考图1、2所示,本发明提供了一种基于序列生成对抗网络的数据增强算法,在命名实体识别任务上进行应用的方法,具体的,在训练时,该方法包括:
[0062] 步骤一、对语料库中的句子进行处理,根据句子的实体标注信息,将每个句子分成实体和非实体部分,同时将实体和非实体部分加入字典。假设一个文本序列{c1,c2,c3,c4,
c5,c6}的标签是{O,O,B-PER,I-PER,O,O},可以将c1c2,c5c6归为非实体部分,c3c4归为实体部
分,然后将它们和对应的标签加入到字典中。
[0063] 步骤二、根据实体和非实体形成的字典,将每个句子中的实体和非实体部分映射成字典中对应的索引,形成索引序列。
[0064] 步骤三、随机初始化索引到向量的映射字典,将每个句子映射成实体和非实体向量连接而成的数值矩阵。
[0065] 步骤四、生成器采用从左到右的策略进行文本生成,双向长短期记忆神经网络(Bidirectional Long-Short Term Memory,Bi-LSTM)用于提取输出单元与之前时刻相关
的特征信息,前馈神经网络将特征信息映射成所有可能的输出单元的概率。计算过程如下:
[0066] hi=LSTM(hi-1,li-1)
[0067] p(li|l0,l1,…,li-1)=softmax(W·hi+b)
[0068] 其中LSTM表示的是LSTM单元,hi-1指的是i-1时刻生成器中LSTM的隐层输出,W和b是前馈网络的可训练的参数权重,采用hi-1来初始化i时刻的LSTM是为了引入前一时刻的信
息。
[0069] 步骤五、考虑当前单元的输出对于整个输出序列的影响,采用蒙特卡洛搜索的roll-out策略对之后时刻的输出单元进行采样,采样过程:
[0070] {(l1,l2,…,lm)1,(l1,l2,…,lm)2,…,(l1,l2,…,lm)K}=MC((l1,…,li),K)
[0071] 其中li是当前时刻的输出,m是设定的最大输出序列长度,K是蒙特卡洛搜索的采样次数,MC是蒙特卡洛搜索方法。
[0072] 步骤六、判别器对采样后形成的完整序列进行判断,给出相应的分数,指导生成器的数据生成。具体计算过程:
[0073]
[0074]
[0075] o=max{h1,h2,…,hm}
[0076] p=sigmoid(Wo*o+bo)
[0077] 其中 是字符ci的字向量,ti是字符ci对应的标签, 和 是卷积核的参数,window是卷积核的窗口大小,max是指最大池化操作,用于得到最终的文本特征表示,Wo和bo
用于将文本特征映射到输入文本为真实文本的概率分数,sigmoid用于将输出概率限制在0
到1之间。
[0078] 步骤七、根据步骤六得到的判别器分数,计算当前句子的奖励和生成器的目标函数,利用反向传播和梯度更新获得良好的生成器模型,来自动生成大量数据。其中奖励当前
句子的奖励和生成器的目标函数,具体计算过程:
[0079]
[0080]
[0081] 其中Ri是i时刻生成器获得的奖励,J(θ)是生成器的目标函数,Discriminator是指在判别器的计算过程,K是蒙特卡洛搜索的采样次数。
[0082] 步骤八、将步骤七中生成数据与步骤一的字典进行字符串匹配,将生成数据得到生成数据对应的实体标签。
[0083] 步骤九、将生成的文本数据用于扩大训练集,并通过字向量字典将训练集中的句子数值化为向量矩阵。
[0084] 步骤十、采用双向长短期记忆神经网络(Bidirectional Long-Short Term Memory,Bi-LSTM)来提取输入句子中每个字符上下文相关的特征向量表示。
[0085] 步骤十一、采用条件随机场(Conditional Random Field,CRF)解码获得每个字符对应的预测标签,计算损失函数,利用反向传播计算模型中的参数。
[0086] 步骤十二、不断重复步骤九到步骤十一,在开发集上测试训练的命名实体识别模型,选取在开发集上F值最大的模型,进行保存。
[0087] 在非训练情况下,将步骤一到步骤十二替换成:
[0088] 步骤一、将测试集中句子通过字向量字典映射成对应的向量矩阵;
[0089] 步骤二、将每个句子的向量表示输入到已保存的命名实体识别模型,通过双向长短期记忆神经网络,得到每个句子和上下文相关的特征表示;
[0090] 步骤三、采用条件随机场,解码得到测试集中每个句子的最优标签序列,作为命名实体识别的结果。
[0091] 一优选实施例,首先根据句子的实体标签,将训练集中的句子转换成由实体和非实体构成的序列,然后经过向量字典,将句子中的实体和非实体部分映射为一个稠密向量,
向量维度为n,经过双向长短期记忆神经网络,提取当前时刻输出单元与之前时刻的单元相
关的特征;经过前馈神经网络,将提取到的特征映射到所有可能输出单元的概率,取概率值
最大的单元作为当前时刻的输出单元;同时为了解决生成器和判别器的梯度更新传递的问
题,引入强化学习的机制,将判别器的输出结果作为奖励,指导生成器的数据生成过程。生
成器生成的数据将联合原始训练集,用于训练命名实体识别模型。
[0092] 本发明提供了一种基于序列生成对抗网络的数据增强算法,用于命名实体识别模型,采用训练集中实体和非实体作为生成器中的基本生成单元,可以通过字符串匹配,避免
了生成文本没有标签的问题;同时利用强化学习的方式建立生成器和判别器之间的联系,
解决了梯度更新无法在生成器和判别器之间传播的问题,最后通过生成器学习实体和非实
体的关系,自动生成标注数据,减轻了缺乏大量标注数据的影响,提高了命名实体识别的性
能。
[0093] 上述本发明实施例序号仅仅为了描述,不代表实施例优劣。
[0094] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵
盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。