掌桥专利:专业的专利平台
掌桥专利
首页

一种基于深度学习的情感分析方法、系统及设备

文献发布时间:2023-06-19 19:30:30



技术领域

本发明涉及情感分析技术领域,具体为一种基于深度学习的情感分析方法、系统及设备。

背景技术

情感分类是对带有感情色彩的主观性文本进行分析、推理的过程,即分析其情感倾向为正面或是反面,在研究中文情感分析的方法中,目前可分为三类:基于情感词典、基于机器学习和深度学习的方法。基于情感词典的方法需要建立情感词典,分类主要取决于情感词典的质量和大小的影响,然而构建一个完备的情感词典是比较难的,并且更新词典需要大量的人力和财力。基于机器学习的方法需要大量的人工来标注,使用机器学习模型进行训练,并使用训练后的分类器分析文本的情感倾向,该方法由于缺乏泛化能力,以至于不能在多种场合中使用,后来,人们提出了基于深度学习的情感分析方法,使用卷积神经网络来实现文本分类,并将神经网络用于情感分类任务。

现有中文短文本情感分类算法存在数据海量、用词不规范,传统BERT模型对相同句式的词语语义区分不明显、多层Transformer训练比较慢,耗时长,需要能耗高,因此提出一种基于深度学习的情感分析方法、系统及设备,以解决上述问题。

发明内容

本发明提供如下技术方案:一种基于深度学习的情感分析系统及设备,包括BERT模型、transformer双向预测、RCNN模型和Attention注意力机制,所述BERT模型包括词嵌入,词嵌入包括BERT预训练模型和BERT模型,BERT预训练模型由输入层、编码层和输出层组成,BERT模型在进行预训练时,基于Masked language modeling(带掩码的语言模型)和.Next sentence prediction(预测下一条语句)两种类型的任务,输入层由词向量、块向量和位置向量组成。

优选的,所述词向量用于通过词向量矩阵将输入文本转换成实值向量表示,假设输入序列x对应的独热向量表示为:et∈RNx m,则对应的词向量表示Vt;

V

Wt∈R|m|xe:表示可以训练的词向量矩阵,|m|表示词表大小;e表示词向量的维度。

优选的,所述块向量为编码当前的词是属于哪一块,当前词所在的块序号(从0开始);输入序列是一个单个块(单句文本分类),所有词的块编码为0;输入是两个块(句对文本分类),第一句每个字对应块编码为0,第二句每个词对应为1,开始和结束对应编码均为0,利用可训练的块向量矩阵;Ws∈R|s|xe(|s|表示块数量;e表示块向量维度),将块编码es∈RNx|s|转换为实值向量得到块向量Vs。

V

优选的,所述位置向量为位置向量编码每个词的绝对位置,将输入序列中每个词按照其下标顺序依次转换成位置独热编码,然后利用位置向量矩阵WP∈RNxe(N表示最大长度,e表示位置向量的维度)将独热码eP∈RNxN转换成实值向量,得到位置向量VP。

V

优选的,所述transformer双向预测包括词向量与位置编码、自注意力机制和残差连接与layer Normal iation,词向量与位置编码用于识别出语言中的顺序关系,通过定义inputs的维度大小[batch_size,sequence_length,embedding dimention],sequence_length指的是一句话的长度如果是中文的话我们可以理解为一句话中所有字的数量,embedding dimention指的是每个字向量的维度。

X=EmbeddingLookup(X)+Positi onalEncoding

X∈R

优选的,所述自注意力机制用于得到attention:

具体操作为;

3、通过们输入的sequencexi,这里的每一个xi可以理解为每个词(字);

4、将xi通过embedding的方式乘上W的方式得到经过embedding后的输入ai,对于每一个ai其拥有三个矩阵,分别为query矩阵(查询其他词的矩阵)、key矩阵(用来别其他词查询的矩阵)、value矩阵(用来表示被提取信息值的矩阵);

3、通过ai分别与三个矩阵相乘得到Q,K,V,最后拿每一个Q对每一个key矩阵对K点乘做attention。

Q=X

K=X

V=X

X

优选的,所述残差连接与layerNormalization用于得到残差连接,

具体操作为;

1、通过权利要求7中得到的注意力矩阵加权之后的V,也就是Attention(Q,K,V),将其转置,使其和Xembedding的维度一致,也就是[batch_size,sequence_length,embedding dimension];

2、把他们加起来做残差连接,直接进行元素相加,因为他们的维度一致:

X

3、在之后的运算里,每经过一个模块的运算,都要把运算之前的值和运算之后的值相加,从而得到残差连接,训练的时候可以使梯度直接走捷径反传到最初始层:

X

优选的,所述RCNN模型包括输入层、卷积层、拼接层、池化层、全连接层和输出层,所述卷积级用于采用多个卷积对输入的矩阵进行检测,并进行卷积操作,最后通过对所得到的部分特征进行检测,从而得到卷积核心的特征,池化层用于从卷积得到的特征矢量,池化层从特征矢量中抽取出重要的特征矢量,从而产生一个固定尺寸的矩阵,最终,将数据传送至整个连接层次进行数据的处理和归类本文使用RCNN模型深度提取局部特征,对BERT文本最后一层输出的序列特征(F1,E2…En)给予权重作为卷积操作的词嵌入,提取特征序列中每个实体的局部特征;

卷积特征的卷积操作计算过程如下:

1、卷积层:如果一个句子有n个词,每个词的词向量长度为m,那输入矩阵就是nxm,这就类似于通道为1的“图像”,然后经过个数为k的不同卷积核大小(region_size)的一维卷积,设不同大小卷积核的个数(filters)为t,卷积核宽度与词向量维度一致为m,高度h是超参数。共得到k*t个特征图(feature map),经结合递归结构学习单词的左上文和右下文的信息,将单词的左上文、嵌入向量以及由上文进行连接,并计算单词的隐藏语义特征向量;

其计算公式如下,其中

C

C

其中;c1(wi)表示字词wi的左上文,cr(wi)表示字词wi的右上文,E(wi)表示嵌入向量,W(1)为权重矩阵,从上一个字词的左上文)c1(wi)传递到下一字词的左上文)c1(wi+1),W(s1)表示结合当前词语语义E(wi)传递到下一个词的左上文中;

Y

矩阵中的每一行表示T个卷积核在句子矩阵相同位置上的提取结果,行向量vi表示了针对句子某个位置的提取出的所有卷积特征。

2、池化层:不同尺寸的卷积核得到的特征大小不同,对每个feature map使用池化函数,使它们的维度相同,之后进行拼接,得到最终的k*m维列向量,通过利用最大池化层将卷积得到的列向量的最大值提取出来,从而使pooling操作之后获得一个num_filters维的行向量,即将每个卷积核的最大值连接起来,以此来消除句子之间长度不同的差异。

Y

3、输出层:从上述max-pooling layer中取得文本中最具有代表性的关键特征,再用全连接层输出,最后通过softmax函数来获得分类的结果。

Y

优选的,所述Attention注意力机制用于帮助模型对输入的每个部分Xi赋予不同的权重,抽取出更加关键及重要的信息,做出更加准确的情感分类的机极性判断,同时不会对模型的计算和存储带来更大的开销;

在NLP中,NLP包括三个关键术语:1.Query可被认为是问题,2.Key类似搜索引擎的关键字,用于检索,3.Value则对应的结果,训练神经网络的训练集由Q、K、V组成,Source中的构成元素可认为是由一系列的<Key,Value>数据对构成,此时给定Target中的某个元素Query,通过计算Query和各个Key的相似性或者相关性,得到每个Key对应Value的权重系数,然后对Value进行加权求和,即得到了最终的Attention数值,因此本质上Attention机制是对Source中元素的Value值进行加权求和,而Query和Key用来计算对应Value的权重系数,即可以将其本质思想改写为如下公式:

本文首先将RCNN深度提取文本上下文信息后的输出Ht作为Attention层的输入,假设词向量x1,x2,…,xn学习将注意力集中在特定的重要单词上时导出上下文向量gi,当预测句子类别时,该机制应重点关注句子中重要的词,将不同权重的词进行加权和组合:

其中αi,j被称为attention权重,要求α≥0且αi,jxj=1,并通过softmax规范化来实现。描述attention机制的公式如下:

其中score值根据RCNN来计算,用来模拟字词的相关性,具有较大score值的x在上下文中占有更多的权重。

优选的,一种基于深度学习的情感分析方法,包括以下主要步骤;

S1:使用BERT模型进行中文情感分类,并通过transformer进行信息提取,对语句进行多层双向预测,更好地理解句子的深层含义;

S2:利用结合注意力机制的RCNN模型进行深度提取,根据用户评论和舆论的倾向性分析出用户的正面情感与负面情感;

S3:通过人工智能、计算机科学的融合,对情感进行深度全面的分析。

有益效果

与现有技术相比,本发明提供了一种基于深度学习的情感分析方法、系统及设备,具备以下有益效果:

本发明通过使用BERT模型进行中文情感分类,并通过transformer进行信息提取,对语句进行多层双向预测,更好地理解句子的深层含义,同时利用结合注意力机制的RCNN模型进行深度提取,能有效的根据用户评论和舆论的倾向性分析出用户的正面情感与负面情感,有助于企业以及政府通过相关的分析及时采取措施,挖掘出更大的社会价值,此外,本发明的中文情感分析还涉及到人工智能、计算机科学的融合,推动了人工智能的发展。

附图说明

图1为本发明的BERT-RCNN-ATT模型示意图;

图2为本发明的词嵌入示意图;

图3为本发明的transformer结构示意图;

图4为本发明的RCNN结构示意图;

图5为本发明的实验例数据结构示意图;

图6为本发明的train-loss示意图;

图7为本发明的TestCNN模型loss示意图;

图8为本发明的GRU模型loss示意图;

图9为本发明的Lstm模型loss示意图。

具体实施方式

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

实施例一;

请参阅图1,一种基于深度学习的情感分析系统及设备,包括BERT模型、transformer双向预测、RCNN模型和Attention注意力机制,所述BERT模型包括词嵌入,词嵌入包括BERT预训练模型和BERT模型,BERT预训练模型由输入层、编码层和输出层组成,BERT模型在进行预训练时,基于Maskedlanguage modelin

V

Wt∈R|m|xe:表示可以训练的词向量矩阵,m表示词表大小;e表示词向量的维度。

进一步的,所述块向量为编码当前的词是属于哪一块,当前词所在的块序号(从0开始);输入序列是一个单个块(单句文本分类),所有词的块编码为0;输入是两个块(句对文本分类),第一句每个字对应块编码为0,第二句每个词对应为1,开始和结束对应编码均为0,利用可训练的块向量矩阵;Ws∈R|s|xe(|s|表示块数量;e表示块向量维度),将块编码es∈RNx|s|转换为实值向量得到块向量Vs。

V

进一步的,所述位置向量为位置向量编码每个词的绝对位置,将输入序列中每个词按照其下标顺序依次转换成位置独热编码,然后利用位置向量矩阵WP∈RNxe(N表示最大长度,e表示位置向量的维度)将独热码eP∈RNxN转换成实值向量,得到位置向量VP。

V

实施例二;

请参阅图2,所述transformer双向预测包括词向量与位置编码、自注意力机制和残差连接与layer Normal ization,词向量与位置编码用于识别出语言中的顺序关系,通过定义inputs的维度大小[batch_size,sequence_length,embedding dimention],sequence_length指的是一句话的长度如果是中文的话我们可以理解为一句话中所有字的数量,embedding dimention指的是每个字向量的维度。

X=EmbeddingLookup(X)+Positional Encoding

X∈R

进一步的,所述自注意力机制用于得到attention:

具体操作为;

5、通过们输入的sequencexi,这里的每一个xi可以理解为每个词(字);

6、将xi通过embedding的方式乘上W的方式得到经过embedding后的输入ai,对于每一个ai其拥有三个矩阵,分别为query矩阵(查询其他词的矩阵)、key矩阵(用来别其他词查询的矩阵)、value矩阵(用来表示被提取信息值的矩阵);

3、通过ai分别与三个矩阵相乘得到Q,K,V,最后拿每一个Q对每一个key矩阵对K点乘做attention。

Q=X

K=X

V=Xi

X

进一步的,所述残差连接与layer Normalization用于得到残差连接,具体操作为;

1、通过权利要求7中得到的注意力矩阵加权之后的V,也就是Attention(Q,K,V),将其转置,使其和Xembedding的维度一致,也就是[batch_size,sequence_length,embeddingdimension];

2、把他们加起来做残差连接,直接进行元素相加,因为他们的维度一致:

X

3、在之后的运算里,每经过一个模块的运算,都要把运算之前的值和运算之后的值相加,从而得到残差连接,训练的时候可以使梯度直接走捷径反传到最初始层:

X

实施例三;

请参阅图3,所述RCNN模型包括输入层、卷积层、拼接层、池化层、全连接层和输出层,所述卷积级用于采用多个卷积对输入的矩阵进行检测,并进行卷积操作,最后通过对所得到的部分特征进行检测,从而得到卷积核心的特征,池化层用于从卷积得到的特征矢量,池化层从特征矢量中抽取出重要的特征矢量,从而产生一个固定尺寸的矩阵,最终,将数据传送至整个连接层次进行数据的处理和归类本文使用RCNN模型深度提取局部特征,对BERT文本最后一层输出的序列特征(F1,E2...En)给予权重作为卷积操作的词嵌入,提取特征序列中每个实体的局部特征;

卷积特征的卷积操作计算过程如下:

1、卷积层:如果一个句子有n个词,每个词的词向量长度为m,那输入矩阵就是nxm,这就类似于通道为1的“图像”,然后经过个数为k的不同卷积核大小(re

其计算公式如下,其中

C1=f(W

Cr=f(W

其中;cl(wi)表示字词wi的左上文,cr(wi)表示字词wi的右上文,E(wi)表示嵌入向量,W(l)为权重矩阵,从上一个字词的左上文)cl(wi)传递到下一字词的左上文)cl(wi+1),W(sl)表示结合当前词语语义E(wi)传递到下一个词的左上文中;

Y

矩阵中的每一行表示T个卷积核在句子矩阵相同位置上的提取结果,行向量vi表示了针对句子某个位置的提取出的所有卷积特征。

2、池化层:不同尺寸的卷积核得到的特征大小不同,对每个feature map使用池化函数,使它们的维度相同,之后进行拼接,得到最终的k*m维列向量,通过利用最大池化层将卷积得到的列向量的最大值提取出来,从而使pooling操作之后获得一个num_filters维的行向量,即将每个卷积核的最大值连接起来,以此来消除句子之间长度不同的差异。

Y

3、输出层:从上述max-pooling layer中取得文本中最具有代表性的关键特征,再用全连接层输出,最后通过softmax函数来获得分类的结果。

Y

实施例四;

请参阅图4,所述Attention注意力机制用于帮助模型对输入的每个部分Xi赋予不同的权重,抽取出更加关键及重要的信息,做出更加准确的情感分类的机极性判断,同时不会对模型的计算和存储带来更大的开销;

在NLP中,NLP包括三个关键术语:1.Query可被认为是问题,2.Key类似搜索引擎的关键字,用于检索,3.Value则对应的结果,训练神经网络的训练集由Q、K、V组成,Source中的构成元素可认为是由一系列的<Ke

本文首先将RCNN深度提取文本上下文信息后的输出Ht作为Attention层的输入,假设词向量x1,x2,…,xn学习将注意力集中在特定的重要单词上时导出上下文向量gi,当预测句子类别时,该机制应重点关注句子中重要的词,将不同权重的词进行加权和组合:

其中αi,j被称为attention权重,要求α≥0且αi,jxj=1,并通过softmax规范化来实现。描述attention机制的公式如下:

其中score值根据RCNN来计算,用来模拟字词的相关性,具有较大score值的x在上下文中占有更多的权重。

实验例;

1):

数据集,如图5;

本实验抽取有关酒店、外卖、微博等用户评论评价等信息文本,其中包括7000多条酒店评论数据,5000多条正向评论及2000多条负向评论;某外卖平台收集的用户评价,正向4000多条,负向8000多条;10万多条带情感标注的新浪微博文本,正负评论各约5万条左右。

数据共有两列,一列为review列,代表模型的输入x,一列为label列,代表模型输入的

2);

为了评估所提出的方法,本文分别使用准确率Acc(accuracy)、精确率P(precision)、召回率R(recall)和F1值(f-score)四个指标来说明实验的高效性。准确率是指模型预测正确的积极评论和消极评论样本个数占总样本个数的比例;精确率是指在所有预测为消极评论的样本中分类正确的消极评论所占的比例,它是从预测结果的角度来说明预测为正的样本中有多少是真正的正样本;召回率是指在所有真实为消极评论的样本中分类正确的消极评论所占的比例,它是从原样本的角度来说明真实样本中的正例有多少被预测正确[41]:为了能够评价不同算法的优劣,在Precision和Recall的基础上提出了F1值的概念,来对Precision和Recall进行整体评价。

F1=2*(Precision*Recall)/(Precision+Recall)

其中,TP表示实际为消极评论且被模型识别为消极评论,FP表示实际为积极评论但被模型识别为消极评论,FN表示实际为消极评论但被模型识别为积极评论,TN表示实际为积极评论且被模型识别为积极评论。

3);

首先进行CNN、LSTM、GRU模型的训练,分别读取review列和label列,并对数据进行jieba分词,同时去掉停用词和标点符号;训练word2vec,构建词表和Embedding矩阵。搭建各个需要对比的模型,并初始化模型。训练模型时将每条数据的输入输入模型,拿到输出,通过和label计算交叉熵,拿到最终的损失,进行梯度反向传播,更新参数。

其次Bert模型配置环境:NVIDIA RTX A4000-24G,CPU:F5-2680v4,CUDA v11.2,PyTorch v1.10

用已经存在的已训练的Bert模型进行微调,微调流程如下:

1.读取数据,分别读取review列和label列

2.初始化分词器,bert(BERT:Pre-training of Deep BidirectionalTransformers for Language Understanding)采用wordpiece分词。

3.将所有的revi ew列进行分词,同时转换为input_ids和attention mask;

4.创建dataset将input_ids和attention_mask融合到一起,然后通过dataloader构造数据读取迭代器

5.加载bert模型,bert后叠加全连接分类层。

6.训练模型,将每条数据的input_ids和attention_mas输入模型,拿到输出,通过和label计算交叉熵,拿到最终的损失,进行梯度反向传播,更新参数。

4);如图6-9;

首先我们在训练集上进行训练,在测试集上进行测试。首先看本文模型在训练集上的loss,loss在降低,模型在逐步收敛。

为了对本文模型做出更加客观的评价,本文针对三种不同类型的数据集,在每个数据集下,将本文提出的模型与以往传统的模型进行实验对比,然后对模型的评估参数进行分析。首先观察loss图,由于复杂度过大、样本里的噪音数据干扰过大或训练集和测试集特征分布不一致等问题,模型在验证集上的可能会出现随着模型的变化而变化,呈现出“先降低,后又有略微增加”的趋势,从而出现过拟合的风险,所以我们要联合观察精确率和损失值的动态变化来判断模型的拟合状态,并作出参数调整。

由图可知由于网络更加复杂,lstm模型计算量相对更大,其训练收敛更慢,但总体上在训练集的损失不断减少和精度不断提高的同时,验证集的损失函数也在降低,同时验证集的精度也在不断上升。利用训练集对模型进行训练,同时评估训练效果,并利用测试集对模型的准确性进行评估,为了防止偶然性产生的不确定,本次实验对RCNN模型进行迭代40次,得到各类实验结果以及评估值等,每一轮迭代会产生多个模型,分别评估其效率,进行调优后再用测试集测试其效率,初期测试集的准确率在85%左右,多轮迭代后,模型基本可以稳定在90%以上。

分类常见的评估指标有Accuracy,Precision,Recall,F1-score在该测试集上,针对三种不同类型的数据集,我们得到如下对比指标:

本文分析了BERT及RCNN模型的内部结构与原理,其中模型的递归结构以及max-pooling起到了关键的作用,保留且深度捕获了大范围的文本信息,其在文本分类任务上检验了模型效果。从实验结果中可以看出,引入RCNN的模型比CNN模型的准确率提升了约7.6%,这说明不同于CNN无法长期保存记忆,RCNN模型作为RNN与CNN模型的结合体实现了精度较高的提取上下文信息,提升分类准确率,在文本分类上占据一定优势。注意力机制能够提升模型关注更重要序列信息的能力,每个位置相对另一个位置的权重是可以并行计算的,在计算资源足够的前提下比lstm会快很多,同时进一步提升模型精度。通过设计预训练任务,用以上具有说服力的数据集在已训练的模型基础上微调,模型效果更好,模型本身准确率、精确率等均有少量提升,且本文模型比LSTM、GRU模型准确率提升了约5.5%,在文本分类许多中文文本数据集上都超过了现有方法,同时发现与传统基于窗口的神经网络相比,引入RCNN概念实验的噪声更少,由此得知该模型具有很强的泛用性。

本发明通过使用BERT模型进行中文情感分类,并通过transformer进行信息提取,对语句进行多层双向预测,更好地理解句子的深层含义,同时利用结合注意力机制的RCNN模型进行深度提取,能有效的根据用户评论和舆论的倾向性分析出用户的正面情感与负面情感,有助于企业以及政府通过相关的分析及时采取措施,挖掘出更大的社会价值,此外,本发明的中文情感分析还涉及到人工智能、计算机科学的融合,推动了人工智能的发展。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

相关技术
  • 一种基于深度学习的图像分割方法、系统及电子设备
  • 一种基于深度学习的疲劳检测方法、系统和计算机设备
  • 一种基于关键词提取的情感分析方法及系统
  • 一种基于注意力卷积神经网络的用户评论情感分析系统及方法
  • 一种基于深度学习的物流智能客服系统的用户情感分析系统及方法
  • 一种基于深度学习的文本情感分析方法和系统
技术分类

06120115934173