一种基于对抗训练融合BERT的微博文本情感分析方法及系统

文档序号:32350865发布日期:2022-11-26 13:02阅读:37来源:国知局
一种基于对抗训练融合BERT的微博文本情感分析方法及系统
一种基于对抗训练融合bert的微博文本情感分析方法及系统
技术领域
1.本发明涉及自然语言处理的情感分析技术领域,具体涉及一种基于对抗训练融合bert的微博文本情感分析方法及系统。


背景技术:

2.随着科技的快速发展,智能手机的迅速普及,城乡上网条件的差距持续缩小。以新浪微博为例,作为分享简短实时咨询的重要社交平台,用户可以发布不超过140字的博文和评论。大量的微博文本信息中包含着多彩多样的个人情感,这些信息反映了某段时间内用户对某件事情或某个观点的态度和看法,最终结果呈现出情感倾向。通过分析微博文本的情感倾向,一方面,对政府部门来说,可以第一时间了解某个社会事件或话题下社会群众的普遍看法,及时回应大众关心的问题,有效遏止谣言的传播,维护社会的和谐与稳定。另一方面,情感分析也能很好地为生产商的市场调研服务,生产商能够利用使用者的反馈及时改进产品,挖掘出潜在的优点;经销商也能通过情感分析预测大众对产品的态度,及时制定合适的营销策略;消费者则能通过产品的情感分析及时了解到其他使用者的真实感受。
3.目前,对于微博文本此类具有数据量大,时效性高等特点的短文本分类预测任务中,普遍存在以下不足:(1)分类精度低、数据处理慢。传统领域的方法如词典、规则等都面临耗费大量人力物力财力的问题。基于机器学习的分析方法虽然能避免人工给词典标注分数的主观缺陷,大部分情况下其分类精度也都远超基于词典的方法。但是其成效很大程度上取决于特征工程,也就是数据集的标注、清洗等工作,这个过程也是需要耗费大量的人力。而对于上下文之间的联系,机器学习目前只能通过机械的增加特征维度的方式实现,但随着数据量的增长,诸如语言模型n-gram往前考虑n个字的方法容易引发维度爆炸的问题。
4.(2)无法在大型文本上做到快速的情感分析。目前在深度学习领域已经有不少学者提出了许多可靠的情感分析算法和模型,谷歌团队提出了一种全新的深度网络结构——transformer架构,并在此基础上提出了预训练语言模型bert,其在机器阅读理解顶级水平测试squad1.1中表现出惊人的成绩。基于transformer架构的bert模型完全抛弃了深度学习中常用的卷积神经网络和循环神经网络,其原因在于卷积神经网络对于长文本的上下文特征提取并没有比较理想的效果;循环神经网络核心依然是序列结构,无法解决并行计算的问题;基于长短期记忆网络(long short-term memory, lstm)的语言模型elmo的特点是对上下文提取的语义信息仅仅是用作简单的拼接,无法实现真正的同时兼顾上下文,提取更多的隐藏特征。


技术实现要素:

5.为了克服现有技术存在的缺陷与不足,本发明提供一种基于对抗训练融合bert的微博文本情感分析方法及系统,其融合对抗训练和增加外部数据,提升了模型预测的精确性与鲁棒性,可以使bert在微博情感分类领域的发挥更好的作用。
6.本发明实施例第一方面公开了一种基于对抗训练融合bert的微博文本情感分析方法,包括以下步骤:s1文本预处理步骤:读取原始微博文本数据集,对原始微博文本数据集进行数据扩充,得到预处理文本数据;s2预训练步骤:将所述预处理文本数据输入增量bert模型中进行训练,得到增量预训练模型;s3下游微调步骤:将所述增量预训练模型在下游任务中结合所述预处理文本数据集进行微调,并结合对抗训练的方法,对embeddings的权重矩阵进行扰动,输出保存为情感分类预测模型;读取目标微博文本数据生成目标任务,通过所述情感分类预测模型执行目标任务,输出目标微博文本数据情感分析结果。
7.作为一种可选的实施方式,在本发明实施例第一方面中,所述数据扩充方法包括:对原始微博文本数据的情感极性进行分析,得到第一文本与第二文本,所述第一文本为“第一情感极性”的文本数据,所述第二文本为除所述第一文本以外的其他文本数据;对所述第一文本进行第一预处理得到第一扩充文本;对所述第一扩充文本与所述第二文本进行第二预处理,得到预处理文本数据。
8.作为一种可选的实施方式,在本发明实施例第一方面中,所述第一预处理方法包括以下步骤:s11外部评论数据集扩充步骤:采用互联网搜集到的相关微博情感评论文本作为扩充来源进行扩充;s12eda数据增强扩充步骤:将所述第一文本进行分词处理得到分词集,对所述分词集进行eda数据增强;s13回译法扩充步骤:通过翻译器将所述第一文本翻译为第一译文,再将所述第一译文翻译为第二译文,所述第一译文与所述第二译文为不同语种,所述第二译文为中文,将所述第二译文数据添加至所述第一扩充文本中。
9.作为一种可选的实施方式,在本发明实施例第一方面中,所述s12eda数据增强扩充步骤包括:同义词替换步骤、随机插入步骤、随机交换步骤与随机删除步骤。
10.作为一种可选的实施方式,在本发明实施例第一方面中,所述第二预处理方法包括:s14超长文本截断步骤:设置单句文本标准长度,将超过单句文本标准长度的文本数据根据语义拆分成若干子句后,再进行输入;s15超短文本补齐步骤:将长度小于单句文本标准长度的文本用符号[pad]补齐;s16特殊符号处理步骤:将所述文本中的回复和转发标记、用户id、网址,通过正则表达式去除;将所述文本中的表情符号,采用python的第三方开源库将其转换为对应的中文释义;s17全角转半角步骤:将所述文本中的全角符号转换为半角符号。
[0011]
作为一种可选的实施方式,在本发明实施例第一方面中,所述预训练步骤包括:生成增量bert模型;将预处理文本数据通过词嵌入后变成词向量,将词向量输入进增量bert模型中,
与分段embeddings和位置embeddings信息融合,输出词嵌入向量,完成编码。
[0012]
作为一种可选的实施方式,在本发明实施例第一方面中,所述预训练步骤还包括:将所述词嵌入向量输入transformer模型的编码器(encoder)结构,进行masked lm和next sentence prediction预训练任务,依次经过多头注意力层、前馈神经网络层,并且在中间进行残差连接和归一化处理。
[0013]
作为一种可选的实施方式,在本发明实施例第一方面中,所述下游微调步骤包括,将预处理文本数据集按比例划分为训练集、验证集和测试集进行训练;将所述增量预训练模型根据具体任务的不同进行参数微调得到下游微调模型。
[0014]
作为一种可选的实施方式,在本发明实施例第一方面中,所述下游微调步骤还包括,根据所述下游微调模型反向传播计算出来的梯度来寻找最佳扰动项r,将r与数据集各embeddings的权重矩阵进行相加,接着进行前向计算,使其对抗损失adv_loss达到最大;对于最佳扰动项计算出的损失adv_loss,将其进行后向计算,得出梯度adv_grad,最后进行所述下游微调模型的权重参数的更新,从而得到情感分类预测模型。
[0015]
本发明实施例第二方面公开一种基于对抗训练融合bert的微博文本情感分析系统,包括:文本预处理模块、预训练模块和下游微调模块;所述文本预处理模块用于对原始微博文本数据进行预处理,包括超长文本截断、超短文本补齐、特殊符号处理、全角转半角、外部评论数据集扩充、eda数据增强、回译法扩充,得到预处理文本数据;所述预训练模块将所述预处理文本数据输入增量bert模型中进行编码,编码后的结果输入transformer模型的encoder结构,进行masked lm和next sentence prediction预训练任务,依次经过多头注意力层、前馈神经网络层,并且在中间进行残差连接和归一化处理,得到增量预训练模型,所述增量预训练模型包括训练后的语言模型框架及参数;所述下游微调模块将所述增量预训练模型在下游任务上结合所述预处理文本数据集进行微调,并结合对抗训练的方法,对embeddings的权重矩阵进行扰动,最终输出保存为调整好各项参数的情感分类预测模型,通过所述情感分类预测模型对目标微博文本进行情感分类预测。
[0016]
与现有技术相比,本发明实施例具有以下有益效果:(1)本发明以bert模型为基础模型,采用预训练加微调模式,采用transformer架构,结构更简单,任务导向性更强;transformer的并行结构节约了大量训练时间,从根本上解决了其他经典神经网络的难题。另外,bert模型的自注意力机制能够解决一词多义问题。
[0017]
(2)本发明创新性的融合对抗训练和增加外部数据,提升了模型预测的精确性与鲁棒性,可以使bert在微博情感分类领域的发挥更好的作用。
附图说明
[0018]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附
图。
[0019]
图1为本实施例基于对抗训练融合bert的微博文本情感分析方法的流程示意图;图2为本实施例文本预处理的流程示意图;图3为本实施例bert模型预训练结构示意图;图4为本实施例transformer encoder结构示意图;图5为本实施例词嵌入编码示意图;图6为本实施例下游微调过程示意图;图7为本实施例对抗训练过程示意图。
具体实施方式
[0020]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0021]
需要说明的是,本发明的说明书和权利要求书中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同的对象,而不是用于描述特定顺序。本发明实施例的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,示例性地,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0022]
目前,对于微博文本此类具有数据量大,时效性高等特点的短文本分类预测任务中,普遍存在以下不足:分类精度低、数据处理慢;无法在大型文本上做到快速的情感分析。基于此,本发明实施例公开了提供一种基于对抗训练融合bert的微博文本情感分析方法及系统。针对传统方法的长时间复杂的训练模式,bert模型提出了预训练+微调模式,结构更简单,任务导向性更强;针对rnn的串行结构无法同时运算,bert模型提出了并行结构,节约了大量训练时间;针对传统词嵌入的静态编码方式,bert模型提出了自注意力机制,解决了一词多义问题。本发明以bert模型为基础框架,创新性的融合对抗训练和增加外部数据,提升了模型预测的精确性与鲁棒性,可以使bert在微博情感分类领域的发挥更好的作用。
[0023]
实施例1如图1-7所示,本实施例提供一种基于对抗训练融合bert的多类别微博文本情感分析方法,包括下述步骤:s1文本预处理步骤:读取原始微博文本数据集,对原始微博文本数据集进行数据扩充,得到预处理文本数据;数据扩充方法具体包括:对原始微博文本数据情感极性进行分析,得到第一文本与第二文本,其中第一文本包括情感极性为“第一情感极性”的文本数据,“第一情感极性”可以包括“害怕”与/或“惊讶”等;第二文本为除第一文本外的其他文本数据;对第一文本进行第一预处理步骤,第一预处理步骤包括外部评论数据集扩充、eda(easy data augmentation)数据增强、回译法扩充,通过第一预处理步骤得到第一扩充文本;对第一扩充文本与第二文本进行第二预处理,第二预处理步骤包括超长文本截断、超短文本补齐、特殊符号处理、全角转半角处理,最终得到预处理文本。
sentence prediction预训练任务,依次经过多头注意力层、前馈神经网络层、并且在中间进行残差连接和归一化处理,得到增量预训练模型及参数;参考图3-4所示,其中s2预训练步骤,具体包括以下子步骤:s21生成增量bert模型步骤;基于谷歌发布的中文预训练模型bert_base_chinese之上,结合外部情感语料进行增量预训练之后得到的bert语言模型,使模型对情感文本更具有分辨能力;s22编码步骤;将预处理文本数据通过词嵌入后变成词向量,将词向量输入进增量bert模型中,与分段embeddings和位置embeddings信息融合,输出最终整合后的词嵌入向量,完成编码;参考图5所示,将词嵌入向量输入到transformer模型的encoder结构中进入以下步骤;masked lm预训练任务步骤;本实施例在文本序列中以15%的概率随机遮蔽一些token,大部分token被替换标记为[mask],[mask]所在位置的向量矩阵能学习到上下文的信息。剩下的部分被替换成其他子词的token或保持原有token不变(分别以80%、10%、10%的概率);next sentence prediction预训练任务步骤;本实施例对于大量输入的句子对(a,b)中,b将以50%概率被随机将替换成语料库中的其他子句,其他的则保持不变,模型最终通过第一个[cls]向量输出标签,结果为判断b是否为a的下一句;多头注意力层任务步骤;让文本中的单词向量与其他单词向量进行运算,从而能学习到其他单词的特征,掌握更为丰富的上下文语义信息,且能并行计算提取句子中所有位置的信息进行综合学习,无需再等待上一时刻的输出;具体的,多多头注意力层任务步骤包括:a、首先随机初始化三个重要的权重矩阵,分别是查询矩阵、键矩阵和值矩阵。接着,对于每个单词的词嵌入向量,将其分别乘以三个矩阵得到查询向量、键向量和值向量;b、随后将当前单词的查询向量和输入序列中所有单词的键向量分别相乘得到分数,通过softmax函数运算后转化为概率分布,使得所有词语的分数之和为1;c、将所述分数与输入序列中所有单词的值向量进行相乘,得到当前单词的输出,即自注意力向量;d、通过初始化多个不同的查询矩阵、键矩阵和值矩阵,让每个单词从不同的角度学习语义信息,将输出的不同自注意力向量拼接起来后,其结果再和权重矩阵相乘便得到最终的输出。
[0029]
前馈神经网络层任务步骤;也叫做多层感知机(mlp),其网络结构较为简单,基本操作为加权求和,结构的目的是将向量映射到全局语义空间;残差连接和归一化处理层步骤;通过残差连接和归一化处理层步骤解决梯度消失的问题以及权重矩阵退化的问题,将预处理文本以矩阵向量的形式进入网络训练,输入部分和训练后的输出部分进行相
加,再将结果经过归一化处理后对每个数据样本进行0均值1方差的标准化操作。
[0030]
s3下游微调步骤;将encoder输出的结果在下游任务上结合处理好的微博文本数据集进行微调,并结合对抗训练的方法,对embeddings的权重矩阵进行扰动,最终输出调整好各项参数的完整模型用于情感分类预测。
[0031]
参考图6所示,其中s3下游微调步骤,具体包括以下子步骤:s31微调层步骤;将encoder输出的增量预训练模型在下游任务上结合预处理文本数据集进行微调,其结构与预训练结构大致相同,根据具体任务的不同进行参数的微调。
[0032]
微调层步骤包括:a、将预处理文本数据集按一定比例划分为训练集,验证集和测试集(6:2:2)来进行训练;b、encoder输出的结果包含增量预训练模型的参数配置信息,训练过程中,每一批次的中间在进行完前向计算loss和后向传播计算梯度grad后,加入所述对抗训练;s32对抗训练层步骤;目前主流的对抗算法可以根据对抗步数分为两类,分别为快速梯度法(fgm)和投影梯度法(pgd),pgd为了解决fgm中一次对抗可能无法达到最优扰动的问题,将fgm的“一步大扰动”改为“多步小扰动”,且每一步都严格约束在扰动项r的范围内,避免干扰过大。对embeddings的权重矩阵做扰动,能够在不重构模型的基础上达到干扰预测的效果,从而提高模型精准度,最终输出调整好各项参数的完整模型用于情感分类预测;参考图7所示,其中s32对抗训练层步骤,具体包括:a、梯度上升过程步骤:根据模型反向传播计算出来的梯度来寻找最佳扰动项r,将r与数据集各embeddings的权重矩阵进行相加(包括token embeddings,segment embeddings和position embeddings),接着进行前向计算,使其对抗损失adv_loss达到最大;b、梯度下降过程步骤:对于最佳扰动项计算出的损失adv_loss,将其进行后向计算,得出梯度adv_grad,最后进行整个模型权重参数的更新。
[0033]
最后读取目标微博文本数据,生成具体目标任务,通过所述情感分类预测模型执行具体目标任务,输出目标微博文本数据情感分析结果。
[0034]
本实施例以bert模型为基础模型,针对微博情感文本的特点改进了原有模型,能进行准确率高的情感分类。该模型:1、采用预训练加微调模式,其核心是transformer架构,结构更简单,任务导向性更强;2、transformer的并行结构节约了大量训练时间,从根本上解决了其他经典神经网络的难题。另外,bert模型的自注意力机制能够解决一词多义问题;3、创新性的融合对抗训练和增加外部数据,提升了模型预测的精确性与鲁棒性,可以使bert在微博情感分类领域的发挥更好的作用。
[0035]
实施例2本实施例针对实施例1提出的方法,提出了一种基于对抗训练融合bert的微博文本情感分析系统。具体方案如下:一种基于对抗训练融合bert的微博文本情感分析系统,包括:文本预处理模块、预训练模块和下游微调模块;
在本实施例中,文本预处理模块用于对微博文本数据进行预处理,包括超长文本截断、超短文本补齐、特殊符号处理、全角转半角、外部评论数据集扩充、eda数据增强、回译法扩充,得到预处理文本数据;在本实施例中,预训练模块将所述预处理文本数据输入进增量bert模型中进行编码,编码后的结果输入transformer模型的encoder结构,进行masked lm和next sentence prediction预训练任务,依次经过多头注意力层,前馈神经网络层,并且在中间进行残差连接和归一化处理,得到增量预训练模型,增量预训练模型包括训练后的语言模型框架及参数;在本实施例中,下游微调模块将encoder输出的结果在下游任务上结合处理好的微博文本数据集进行微调,并结合对抗训练的方法,对embeddings的权重矩阵进行扰动,最终输出保存为调整好各项参数的下游微调模型,通过所述下游微调模型对微博文本进行情感分类预测。
[0036]
本实施例以bert模型为基础模型,针对微博情感文本的特点改进了原有模型,能进行准确率高的情感分类。该模型:1、采用预训练+微调模式,其核心是transformer架构,结构更简单,任务导向性更强;2、transformer的并行结构节约了大量训练时间,从根本上解决了其他经典神经网络的难题。另外,bert模型的自注意力机制能够解决一词多义问题;3、创新性的融合对抗训练和增加外部数据,提升了模型预测的精确性与鲁棒性,可以使bert在微博情感分类领域的发挥更好的作用。
[0037]
以上对本发明实施例公开的一种基于对抗训练融合bert的微博文本情感分析方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1