一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于多任务学习的网民情绪识别方法、系统及电子设备与流程

2021-12-01 01:24:00 来源:中国专利 TAG:


1.本发明涉及文本分析领域,具体涉及到一种基于多任务学习的网民情绪识别方法、系统、电子设备及存储介质。


背景技术:

2.现有的网民情感识别,主要有以下几类:
3.(1)基于规则匹配
4.搜集每种情绪的情绪词,并构建情绪词典,通过匹配情绪词,并根据情感词在文章的位置不同给予不同的权重,并根据权重对全文进行情绪打分,最终通过情绪分数来判断情绪类别。
5.(2)基于语义的学习
6.基于机器学习、深度学习的方法,对上下文语义进行建模,通过对标注的数据集进行模型训练学习,利用训练好的模型来预测未知文本的可信度最大的情绪类别。
7.然而,互联网自媒体发文越来越口语化和表情化,越简单越明了,仅根据字面语义已经无法准确的识别网民内心情绪。


技术实现要素:

8.有鉴于此,本发明实施例提供了一种基于多任务学习的网民情绪识别方法、系统、电子设备及存储介质,以解决现有技术中情绪识别不准确的缺点。
9.为此,本发明实施例提供了如下技术方案:
10.根据第一方面,本发明实施例提供了一种基于多任务学习的网民情绪识别方法,包括:
11.获取训练集,所述训练集中包括多个训练文本;
12.根据训练集得到每一个训练文本对应的文字信息、表情符号信息以及原文信息;
13.分别对每一个训练文本对应的文字信息、表情符号信息以及原文信息进行向量化处理,得到文字信息对应的文字向量、表情符号信息对应的表情符号向量以及原文信息对应的原文向量;
14.将每一个训练文本的文字信息对应的文字向量、表情符号信息对应的表情符号向量以及原文信息对应的原文向量分别输入到共享模型中,得到每一个训练文本的文字信息对应的文字特征矩阵、表情符号信息对应的表情符号特征矩阵以及原文信息对应的原文特征矩阵;所述共享模型包括bi

lstm和attention模型;
15.分别将每一个训练文本的文字信息对应的文字特征矩阵、表情符号信息对应的表情符号特征矩阵以及原文信息对应的原文特征矩阵通过softmax计算生成每一个训练文本的文字信息对应的文字概率值、表情符号信息对应的表情符号概率值以及原文信息对应的原文概率值;
16.分别根据每一个训练文本对应的文字概率值、表情符号概率值、原文概率值、文字
[0038][0039]
其中,loss1为训练文本对应的文字损失函数值;loss2为训练文本对应的表情符号损失函数值;loss3为训练文本对应的原文损失函数;loss
sum
为训练文本对应的融合损失函数;loss为训练文本对应的总损失函数。
[0040]
可选地,attention模型的计算公式如下所示,
[0041]
u
i
=tanh(w
u
*h
i
b
u
)
[0042][0043][0044]
s
t
=tanh(w
s
*s
t
‑1 w
v
*v
t
b
v
)
[0045]
其中,u
w
为初始化随机生成的注意力参数矩阵,后续用来学习的参数;tanh为双曲正切激活函数;h
i
为每个时刻隐状态矩阵,w
u
为学习参数;b
u
为偏置;s
t
‑1为t

1时刻输出的隐状态,s
t
为通过attention注意力机制后的隐状态,w
s
和w
v
为训练参数,b
v
为偏置参数。
[0046]
可选地,所述共享模型包括两层的bi

lstm和attention模型。
[0047]
根据第二方面,本发明实施例提供了一种基于多任务学习的网民情绪识别系统,包括:
[0048]
第一获取模块,用于获取训练集,所述训练集中包括多个训练文本;
[0049]
第一处理模块,用于根据训练集得到每一个训练文本对应的文字信息、表情符号信息以及原文信息;
[0050]
第二处理模块,用于分别对每一个训练文本对应的文字信息、表情符号信息以及原文信息进行向量化处理,得到文字信息对应的文字向量、表情符号信息对应的表情符号向量以及原文信息对应的原文向量;
[0051]
第三处理模块,用于将每一个训练文本的文字信息对应的文字向量、表情符号信息对应的表情符号向量以及原文信息对应的原文向量分别输入到共享模型中,得到每一个训练文本的文字信息对应的文字特征矩阵、表情符号信息对应的表情符号特征矩阵以及原文信息对应的原文特征矩阵;所述共享模型包括bi

lstm和attention模型;
[0052]
第四处理模块,用于分别将每一个训练文本的文字信息对应的文字特征矩阵、表情符号信息对应的表情符号特征矩阵以及原文信息对应的原文特征矩阵通过softmax计算生成每一个训练文本的文字信息对应的文字概率值、表情符号信息对应的表情符号概率值以及原文信息对应的原文概率值;
[0053]
第五处理模块,用于分别根据每一个训练文本对应的文字概率值、表情符号概率值、原文概率值、文字真实值、表情符号真实值和原文真实值得到每一个训练文本对应的总损失函数值;
[0054]
第六处理模块,用于根据每一个训练文本的总损失函数值进行误差反向传播更新模型参数得到多个情绪识别模型;
[0055]
第二获取模块,用于获取测试集,所述测试集中包括多个测试文本;
[0056]
第七处理模块,用于将多个测试文本分别输入到每一个情绪识别模型中,得到每一个情绪识别模型对应的acc和f1值;
[0057]
第八处理模块,用于将最大acc和f1值对应的模型作为最优情绪识别模型;
[0058]
第三获取模块,用于获取待识别文本;
[0059]
第九处理模块,用于将待识别文本输入至最优情绪识别模型得到待识别文本对应的情绪预测类别,将所述情绪预测类别对应的情绪作为待识别文本对应的情绪。
[0060]
可选地,所述第二处理模块包括:第一处理单元,用于分别对每一个训练文本对应的文字信息进行词向量化得到文字信息中每一个单词对应的词向量,将词向量作为单词对应的文字向量;第二处理单元,用于分别对每一个训练文本对应的表情符号信息进行表情符号向量化得到表情符号信息中每一个表情符号对应的表情符号向量;第三处理单元,用于分别根据每一个训练文本对应的文字信息中每一个单词对应的词向量和表情符号信息中每一个表情符号对应的表情符号向量得到每一个训练文本对应的原文向量。
[0061]
可选地,所述第二处理单元包括:第一处理子单元,用于根据每一个训练文本对应的表情符号信息得到每一个表情符号的iwf值;第二处理子单元,用于对表情符号的iwf值进行排序,过滤掉iwf值小于预设分数阈值的表情符号,得到表情符号序列表;第三处理子单元,用于根据预设均值、预设标准差和预设向量维度将表情符号生成embedding表;第四处理子单元,用于将embedding表和表情符号序列表进行映射,得到每一个表情符号对应的表情符号向量。
[0062]
可选地,所述第五处理模块包括:第四处理单元,用于分别根据每一个训练文本对应的文本概率值、表情符号概率值、原文概率值、文本真实值、表情符号真实值和原文真实值得到每一个训练文本中文字信息对应的文字损失函数值、表情符号信息对应的表情符号损失函数值和原文信息对应的原文损失函数值;第五处理单元,用于根据每一个训练文本对应的文字损失函数值、表情符号损失函数值和原文损失函数值分别得到每一个训练文本对应的融合损失函数值;第六处理单元,用于根据融合损失函数对文字损失函数值、表情符号损失函数值和原文损失函数值进行平滑处理,得到每一个训练文本对应的总损失函数。
[0063]
可选地,训练文本对应的总损失函数值的计算公式如下所示,
[0064]
loss
sum
=loss1 loss2 loss3[0065][0066]
其中,loss1为训练文本对应的文字损失函数值;loss2为训练文本对应的表情符号损失函数值;loss3为训练文本对应的原文损失函数;loss
sum
为训练文本对应的融合损失函数值;loss为训练文本对应的总损失函数。
[0067]
可选地,attention模型的计算公式如下所示,
[0068]
u
i
=tanh(w
u
*h
i
b
u
)
[0069][0070]
[0071]
s
t
=tanh(w
s
*s
t
‑1 w
v
*v
t
b
v
)
[0072]
其中,u
w
为初始化随机生成的注意力参数矩阵,后续用来学习的参数;tanh为双曲正切激活函数;h
i
为每个时刻隐状态矩阵,w
u
为学习参数;b
u
为偏置;s
t
‑1为t

1时刻输出的隐状态,s
t
为通过attention注意力机制后的隐状态,w
s
和w
v
为训练参数,b
v
为偏置参数。
[0073]
可选地,所述共享模型包括两层的bi

lstm和attention模型。
[0074]
根据第三方面,本发明实施例提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器执行上述第一方面任意一项描述的基于多任务学习的网民情绪识别方法。
[0075]
根据第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行上述第一方面任意一项描述的基于多任务学习的网民情绪识别方法。
[0076]
本发明实施例技术方案,具有如下优点:
[0077]
本发明实施例提供了一种基于多任务学习的网民情绪识别方法、系统、电子设备及存储介质,其中,该方法包括:获取训练集,所述训练集中包括多个训练文本;根据训练集得到每一个训练文本对应的文字信息、表情符号信息以及原文信息;分别对每一个训练文本对应的文字信息、表情符号信息以及原文信息进行向量化处理,得到文字信息对应的文字向量、表情符号信息对应的表情符号向量以及原文信息对应的原文向量;将每一个训练文本的文字信息对应的文字向量、表情符号信息对应的表情符号向量以及原文信息对应的原文向量分别输入到共享模型中,得到每一个训练文本的文字信息对应的文字特征矩阵、表情符号信息对应的表情符号特征矩阵以及原文信息对应的原文特征矩阵;所述共享模型包括bi

lstm和attention模型;分别将每一个训练文本的文字信息对应的文字特征矩阵、表情符号信息对应的表情符号特征矩阵以及原文信息对应的原文特征矩阵通过softmax计算生成每一个训练文本的文字信息对应的文字概率值、表情符号信息对应的表情符号概率值以及原文信息对应的原文概率值;分别根据每一个训练文本对应的文字概率值、表情符号概率值、原文概率值、文字真实值、表情符号真实值和原文真实值得到每一个训练文本对应的总损失函数值;根据每一个训练文本的总损失函数值进行误差反向传播更新模型参数得到多个情绪识别模型;获取测试集,所述测试集中包括多个测试文本;将多个测试文本分别输入到每一个情绪识别模型中,得到每一个情绪识别模型对应的acc和f1值;将最大acc和f1值对应的模型作为最优情绪识别模型;获取待识别文本;将待识别文本输入至最优情绪识别模型得到待识别文本对应的情绪预测类别,将所述情绪预测类别对应的情绪作为待识别文本对应的情绪。上述步骤,根据训练集中的每一个训练文本得到训练文本对应的文字信息、表情符号信息以及原文信息,分别对训练文本对应的文字信息、表情符号信息以及原文信息进行向量化处理,得到对应的文字向量、表情符号向量和原文向量;将上述三个向量分别输入到共享模型中进行特征学习,使模型参数能学习到三个任务的知识特征,通过共享模型后输出文字信息对应的文字特征矩阵、表情符号信息对应的表情符号特征矩阵以及原文信息对应的原文特征矩阵;再将这三个矩阵分别通过softmax计算生成每一个训练文本对应的文字概率值、表情符号概率值以及原文概率值;之后,根据这三个概率值和真实值之间的误差计算得到每一个训练文本对应的总损失函数,根据总损失函数进行误差反向
传播更新模型参数,根据测试集进行验证得到最大acc和f1值对应的模型,并将最大acc和f1值对应的模型作为最优情绪识别模型。最后,将待识别文本输入至最优情绪识别模型进行情绪预测得到情绪预测类别。通过对文本的文字数据、表情符号、原文文本分别建模,构建三种不同的学习任务,把相关的任务放在一起学习,通过在浅层的参数共享表示,来互相分享、互相补充学习到的相关的信息,互相促进学习,提升泛化的效果;提高了情绪识别的准确度。
附图说明
[0078]
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0079]
图1为本发明实施例的基于多任务学习的网民情绪识别方法的一个具体示例的流程图;
[0080]
图2为本发明实施例的基于多任务学习的网民情绪识别方法对应的训练模型的一个具体示例的示意图;
[0081]
图3为本发明实施例的基于多任务学习的网民情绪识别方法对应的情绪识别模型的一个具体示例的示意图;
[0082]
图4为本发明实施例的基于多任务学习的网民情绪识别系统的一个具体示例的框图;
[0083]
图5为本发明实施例的电子设备的示意图。
具体实施方式
[0084]
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0085]
本发明实施例中提供了一种基于多任务学习的网民情绪识别方法,如图1所示,包括步骤s1

s12。
[0086]
步骤s1:获取训练集,所述训练集中包括多个训练文本。
[0087]
本实施例中,对互联上包含用户情绪的多个文本数据进行文本标注,标注每一条文本数据对应的情绪类别,得到多个标注后的文本,并将多个标注后的文本进行划分,分为训练文本和测试文本;也就是将多个标注后的文本其中的部分作为训练文本,其余作为测试文本。用训练集中的训练文本进行模型训练,模型训练好后用测试集中的测试文本进行模型误差计算,选择泛化能力强的模型,验证模型的情绪识别效果。
[0088]
例如,标注文本共有10000条,训练集和测试集中的标注文本的比例可以是7:3,将其中的7000条标注文本作为训练集中的7000个训练文本,剩余的3000作为测试集中的3000个测试文本。本实施例中对此仅作示意性描述,不以此为限,在实际应用中根据实际需要合理设置训练集和测试集中的文本数量即可。具体的情绪类别可包括高兴、快乐、愤怒、悲伤、忧愁、惊讶、恐惧,本实施例中对此仅作示意性描述,不以此为限;当然,在其它实施例中,情
绪类别还可以包括其它情绪,如厌恶、喜悦等等,根据需要合理设置即可。
[0089]
步骤s2:根据训练集得到每一个训练文本对应的文字信息、表情符号信息以及原文信息。
[0090]
本实施例中,将每一个训练文本的原文进行文字和表情符号的拆分,得到每一个训练文本中的文字对应的文字信息,表情符号对应的表情符号信息。也就是,将训练文本的原文信息中所有文字部分作为文字信息,表情符号作为表情符号信息。
[0091]
通常文字是以字符串的形式进行存储,则将训练文本的原文信息进行字符串提取,提取到原文信息中文字部分对应的字符串,这些字符串便是训练文本中文字对应的文字信息;原文信息中除去字符串部分即为表情符号,便得到了训练文本对应的表情符号信息。
[0092]
步骤s3:分别对每一个训练文本对应的文字信息、表情符号信息以及原文信息进行向量化处理,得到文字信息对应的文字词向量、表情符号信息对应的表情符号向量以及原文信息对应的原文向量。
[0093]
本实施例中,通过预训练词向量模型对文字信息进行词向量化得到文字信息对应的文字向量。具体地,预训练词向量模型可以是word2vector模型,该模型是通过对历史海量文本数据进行无监督的训练学习得到的。通过jieba分词器对历史海量文本数据进行分词,把词当作最小的语义单元,通过对海量文本数据的上下文理解来学习到每个词的语义特征,并保存模型。当然,在其它实施例中,预训练词向量模型还可以是现有技术中的其它词向量模型,根据需要合理确定即可。
[0094]
本实施例中,先获取预设表情符号序列表,该预设表情符号序列表包括表情符号的编号和表情符号对应的iwf(inverse word frequency)分数。然后,利用正太分布,给定预设的均值和标准差,以及向量的维度随机生成embedding表;通过表的index(序列号)与预设表情符号序列表进行映射,这样每个表情符号就可以映射一个embedding,即一个表情向量,这样表情符号就向量化了。
[0095]
为了方便后续计算,将文字词向量和表情符号向量的维度设置为相同的维度,具体维度的数值根据需要合理设置即可。
[0096]
本实施例中,将文字信息向量化后得到的文字向量和表情符号信息向量化后得到的表情符号向量按照在原文信息中的位置先后顺序进行排列,得到原文信息对应的原文向量。
[0097]
步骤s4:将每一个训练文本的文字信息对应的文字向量、表情符号信息对应的表情符号向量以及原文信息对应的原文向量分别输入到共享模型中,得到每一个训练文本的文字信息对应的文字特征矩阵、表情符号信息对应的表情符号特征矩阵以及原文信息对应的原文特征矩阵;所述共享模型包括bi

lstm和attention模型。
[0098]
本实施例中,共享模型用了2层的bi

lstm加attention模型,单层的结构如图2所示,在此设置2层,是因为在本实施例中2层就能抽象出文本特征,在多层就过拟合了;当然,在其它实施例中,共享模型的层数还可以设置为其它值,如单层的bi

lstm加attention,或者3层的bi

lstm加attention等,根据需要合理设置即可。
[0099]
本实施例中,将训练文本中的文字向量输入到共享模型中,得到文字特征矩阵;然后,将表情符号向量输入到共享模型中,得到表情符号特征矩阵;之后,将原文向量输入到
共享模型中,得到原文特征矩阵。通过上述三个任务共享一个模型,来训练模型参数,使模型参数能学习到三个任务的知识特征。
[0100]
本实施例中,attention的计算公式如下所示:
[0101]
u
i
=tanh(w
u
*h
i
b
u
)
[0102][0103][0104]
s
t
=tanh(w
s
*s
t
‑1 w
v
*v
t
b
v
)
[0105]
其中,u
w
为初始化随机生成的注意力参数矩阵,后续用来学习的参数;tanh为双曲正切激活函数;h
i
为每个时刻隐状态矩阵,w
u
为学习参数;b
u
为偏置;s
t
‑1为t

1时刻输出的隐状态矩阵,s
t
为通过attention注意力机制后的隐状态矩阵,w
s
和w
v
为训练参数,b
v
为偏置参数。
[0106]
步骤s5:分别将每一个训练文本的文字信息对应的文字特征矩阵、表情符号信息对应的表情符号特征矩阵以及原文信息对应的原文特征矩阵通过softmax计算生成每一个训练文本的文字信息对应的文字概率值、表情符号信息对应的表情符号概率值以及原文信息对应的原文概率值。
[0107]
本实施例中,softmax生成分类输出的概率分布公式如下所示:
[0108][0109]
其中,s
t
为经过注意力机制输出的隐状态矩阵;n为情绪类别的分类数量。
[0110]
此部分是直接利用attention加权之后的隐状态序列s的最后一个时间步t的特征矩阵来做分类输出的。
[0111]
步骤s6:分别根据每一个训练文本对应的文字概率值、表情符号概率值、原文概率值、文字真实值、表情符号真实值和原文真实值得到每一个训练文本对应的总损失函数值。
[0112]
本实施例中,根据每一个训练文本对应的文字概率值和文字真实值得到每一个训练文本对应的文字损失函数值;根据每一个训练文本对应的表情符号概率值和表情符号真实值得到每一个训练文本对应的表情符号损失函数值;根据每一个训练文本对应的原文概率值和原文真实值得到每一个训练文本对应的原文损失函数值。之后,将文字损失函数值、表情符号损失函数值和原文损失函数值相加得到训练文本对应的融合损失函数值。根据融合损失函数值对三个任务得到的文字损失函数值、表情符号损失函数值和原文损失函数值这三个损失函数值做了一个平滑处理,得到最终的总损失函数值。平滑处理使得某个任务的loss越大最终的loss对其关注就越大;反之,某个任务的loss越小最终的loss对其关注就越小。综合考虑三个任务的loss,对loss取均值,通过平滑处理防止误差过大或者过小。
[0113]
步骤s7:根据每一个训练文本的总损失函数值进行误差反向传播更新模型参数得到多个情绪识别模型。
[0114]
本实施例中,通过总损失函数值的计算对模型进行误差反向传播,模型参数的更新,保存每次更新的模型参数,得到多个情绪识别模型。
[0115]
步骤s8:获取测试集,所述测试集中包括多个测试文本。
[0116]
本实施例中,测试集中包括多个标注好的测试文本,用测试文本对情绪识别模型的识别准确度进行验证,以确定模型的识别效果。
[0117]
步骤s9:将多个测试文本分别输入到每一个情绪识别模型中,得到每一个情绪识别模型对应的acc和f1值。
[0118]
本实施例中,将多个测试文本分别输入到每一个情绪识别模型中,得到每一个情绪识别模型对应每一个测试文本的情绪类别预测结果。分别将每一个情绪识别模型输出的预测结果与测试文本标注的情绪类别进行比较,统计得到每一个情绪识别模型对应的tp、tn、fp和fn文本数量。
[0119]
将预测正确的测试文本数量除以测试文本总数量得到每一个情绪识别模型的精确率,也就是acc值。
[0120]
多分类也可以看成2分类,就是某一类别的情绪,统计混淆矩阵的时候,可以构建是这一类和不是这一类的二分类,分别计算每个类别的f1值。
[0121]
步骤s10:将最大acc和f1值对应的模型作为最优情绪识别模型。
[0122]
本实施例中,对各个情绪识别模型对应的acc和f1值进行比较,找到最大acc和f1值对应的模型,并将该模型作为最优情绪识别模型,用于后续情绪预测。
[0123]
步骤s11:获取待识别文本。
[0124]
本实施例中,根据情绪预测需求确定待识别文本。
[0125]
步骤s12:将待识别文本输入至最优情绪识别模型得到待识别文本对应的情绪预测类别,将所述情绪预测类别对应的情绪作为待识别文本对应的情绪。
[0126]
本实施例中,将待识别文本输入至最优情绪识别模型中进行情绪预测,最优情绪识别模型输出待识别文本对应的情绪预测类别,情绪预测类别对应的情绪即为待识别文本对应的情绪。
[0127]
上述步骤,根据训练集中的每一个训练文本得到训练文本对应的文字信息、表情符号信息以及原文信息,分别对训练文本对应的文字信息、表情符号信息以及原文信息进行向量化处理,得到对应的文字向量、表情符号向量和原文向量;将上述三个向量分别输入到共享模型中进行特征学习,使模型参数能学习到三个任务的知识特征,通过共享模型后输出文字信息对应的文字特征矩阵、表情符号信息对应的表情符号特征矩阵以及原文信息对应的原文特征矩阵;再将这三个矩阵分别通过softmax计算生成每一个训练文本对应的文字概率值、表情符号概率值以及原文概率值;之后,根据这三个概率值和真实值之间的误差计算得到每一个训练文本对应的总损失函数,根据总损失函数进行误差反向传播更新模型参数,根据测试集进行验证得到最大acc和f1值对应的模型,并将最大acc和f1值对应的模型作为最优情绪识别模型。最后,将待识别文本输入至最优情绪识别模型进行情绪预测得到情绪预测类别。通过对文本的文字数据、表情符号、原文文本分别建模,构建三种不同的学习任务,把相关的任务放在一起学习,通过在浅层的参数共享表示,来互相分享、互相补充学习到的相关的信息,互相促进学习,提升泛化的效果;提高了情绪识别的准确度。
[0128]
作为示例性的实施例,步骤s3分别对每一个训练文本对应的文字信息、表情符号
信息以及原文信息进行向量化处理,得到文字信息对应的文本向量、表情符号信息对应的表情符号向量以及原文信息对应的原文向量的步骤中,包括步骤s31

s33。
[0129]
步骤s31:分别对每一个训练文本对应的文字信息进行词向量化得到文字信息中每一个单词对应的词向量,将词向量作为单词对应的文本向量。
[0130]
本实施例中,对训练文本的文字信息进行结巴分词,得到文字信息中包含的每一个单词,然后将这些单词输入到word2vector模型,通过该模型进行词向量化得到每一个单词对应的词向量,这些单词对应的词向量便是文字信息对应的文字向量。
[0131]
本实施例中,通过word2vector模型对海量数据进行预训练,获取富含丰富语义信息的词向量,并通过深度学习模型,对训练语料进行上下文特征抽取学习,理解上下文语义,捕获语义上的情绪。
[0132]
步骤s32:分别对每一个训练文本对应的表情符号信息进行表情符号向量化得到表情符号信息中每一个表情符号对应的表情符号向量。
[0133]
本实施例中,通过iwf(inverse word frequency)算法,对海量文本数据进行表情符号训练学习,得到每个表情符号的iwf分数。对表情符号的iwf值由大到小进行排序,上述排序就构成了一个表情符号序列表。利用正太分布,给定预设的均值、标准差以及向量维度随机生成embedding表,表的大小跟表情符号序列表一样。通过embedding表的index(序列号)与表情符号序列表进行映射,这样每个表情符号就可以映射一个embedding,即一个表情向量,这样表情符号就向量化了。
[0134]
步骤s33:分别根据每一个训练文本对应的文字信息中每一个单词对应的词向量和表情符号信息中每一个表情符号对应的表情符号向量得到每一个训练文本对应的原文向量。
[0135]
本实施例中,将文字信息向量化后得到的文字向量和表情符号信息向量化后得到的表情符号向量按照在原文信息中的位置先后顺序进行排序,得到原文信息对应的原文向量。
[0136]
上述步骤,通过预训练词向量模型得到文字信息中每一个单词对应的词向量;通过iwf(inverse word frequency)算法进行表情符号向量化得到表情符号信息中每一个表情符号对应的表情符号向量;之后,将词向量和表情符号向量按照原文本顺序排列后得到原文向量,以便后续根据三个向量分别进行模型训练,提高模型的识别准确度。
[0137]
作为示例性的实施例,步骤s32分别对每一个训练文本对应的表情符号信息进行表情符号向量化得到表情符号信息中每一个表情符号对应的表情符号向量的步骤中,包括步骤s321

s324。
[0138]
步骤s321:根据每一个训练文本对应的表情符号信息得到每一个表情符号的iwf(inverse word frequency)值。
[0139]
本实施例中,表情符号的iwf值的计算公式如下所示:
[0140][0141]
其中,iwf
i
指第i个表情符号的iwf值;指训练集中所有表情符号出现次数之和;n
wi
指第i个表情符号在训练集中出现的次数之和。
[0142]
步骤s322:对表情符号的iwf值进行排序,过滤掉iwf值小于预设分数阈值的表情符号,得到表情符号序列表。
[0143]
本实施例中,将所有表情符号的iwf值按照预设顺序进行排序,具体的预设顺序可以是升序,也可以是降序,本实施例中对此仅作示意性描述,不以此为限;根据预设分数阈值,过滤掉iwf值小于该阈值的表情符号,保留iwf值大于或者等于预设分数阈值的表情符号。根据上述排序就构成了一个表情符号序列表。表情符号序列表包括表情符号对应的序列号、表情符号对应的iwf值。序列号是表情符号的标识,每一个表情符号对应一个唯一的序列号,也就是序列号和表情符号是一一对应的关系。
[0144]
iwf是用来计算表情符号在一个文本集合中的重要性权值,根据iwf排序把重要性低的表情符号去掉,也就是把iwf数值小于预设分数阈值的表情符号去掉,保留重要性高的表情符号;然后根据iwf对保留下来的表情符号进行排序,生成一个表情符号序列表。然后这个序列表进行随机生成embedding,根据index索引进行一一对应。这样就完成了表情符号的embedding向量化。
[0145]
步骤s323:根据预设均值、预设标准差和预设向量维度将表情符号生成embedding表。
[0146]
本实施例中,预设均值是和预设标准差是基于经验值确定的,具体数值根据需要合理设置即可。
[0147]
预设向量维度与词向量维度相同;具体预设向量维度可以是256维,本实施例中对此仅作示意性描述,不以此为限。
[0148]
embedding表是一堆文本集计算出的表情符号的iwf值,具体iwf计算可以根据上面描述的公式进行计算,根据计算得到的iwf值按照由大到小的顺序进行排序,把iwf值小于预设分数阈值的表情符号去掉,得到一个iwf排序的表情符号表,表情符号表中表情符号对应的序号就是index;后续步骤则通过这个index和随机生成的embeddin表进行映射。
[0149]
步骤s324:将embedding表和表情符号序列表进行映射,得到每一个表情符号对应的表情符号向量。
[0150]
本实施例中,embedding表和表情符号序列表中均包含表情符号对应的序列号,故通过序列号将embedding表和表情符号序列表进行映射,得到每一个表情符号对应的表情符号向量。
[0151]
上述步骤,通过iwf(inverse word frequency)算法,对海量文本数据集,进行表情符号训练学习,得到表情符号对应的iwf分数;将表情符号的iwf值由大到小进行排序,根据预设分数阈值过滤掉小于阈值的部分表情符号,根据上述排序就构成了一个表情符号序列表;利用正太分布,给定预设的均值和标准差以及预设向量维度随机生成embedding表,表的大小跟表情符号表一样,通过表的index(序列号)与表情表情符号序列表进行映射,这样每个表情符号就可以映射一个embedding即一个表情向量。通过上述步骤过滤掉干扰性比较大的表情符号,然后根据iwf值排序后的次序映射embedding表情表,来构建表情符号向量,使得表情符号向量更加准确。
[0152]
作为示例性的实施例,步骤s6分别根据每一个训练文本对应的文字概率值、表情符号概率值、原文概率值、文字真实值、表情符号真实值和原文真实值得到每一个训练文本对应的总损失函数值的步骤中,包括步骤s61

s63。
[0153]
步骤s61:分别根据每一个训练文本对应的文字概率值、表情符号概率值、原文概率值、文字真实值、表情符号真实值和原文真实值得到每一个训练文本中文字信息对应的文字损失函数值、表情符号信息对应的表情符号损失函数值和原文信息对应的原文损失函数值。
[0154]
本实施例中,损失函数值的计算公式如下所示:
[0155][0156]
其中,c表示用于训练集中训练文本的个数;j为1、2和3,loss1为训练文本对应的文字损失函数值;loss2为训练文本对应的表情符号损失函数值;loss3为训练文本对应的原文损失函数;y
ij
为真实值;p
ij
为计算出的概率值。
[0157]
步骤s62:根据每一个训练文本对应的文字损失函数值、表情符号损失函数值和原文损失函数值分别得到每一个训练文本对应的融合损失函数值。
[0158]
本实施例中,将一个训练文本对应的文字损失函数值、表情符号损失函数值和原文损失函数值进行相加,将相加后的损失函数值作为该训练文本对应的融合损失函数值。
[0159]
融合损失函数值的计算公式如下所示:
[0160]
loss
sum
=loss1 loss2 loss3[0161]
其中,loss1为训练文本对应的文字损失函数值;loss2为训练文本对应的表情符号损失函数值;loss3为训练文本对应的原文损失函数;loss
sum
为训练文本对应的融合损失函数值。
[0162]
步骤s63:根据融合损失函数对文字损失函数值、表情符号损失函数值和原文损失函数值进行平滑处理,得到每一个训练文本对应的总损失函数。
[0163]
本实施例中,模型loss对三个任务的loss最大或最小做了一个平滑,使得某个任务的loss越大最终的loss对其关注就越大;反之,某个任务的loss越小最终的loss对其关注就越小。
[0164]
总损失函数的计算公式如下所示:
[0165][0166]
其中,loss为训练文本对应的融合损失函数。
[0167]
上述步骤,对三个任务的loss最大或最小做了一个平滑,如上述loss计算公式,某个任务的loss越大最终的loss对其关注就越大;反之,某个任务的loss越小最终的loss对其关注就越小,通过loss对模型进行误差反向传播来更新模型参数,提高模型的准确度。
[0168]
本实施例中,模型训练部分设计是通过三个任务(即输入和lable不一样)共享一个模型,来训练模型参数,使模型参数能学习到三个任务的知识特征,模型的具体结构如图2所示。
[0169]
其中,共享的模型部分用了2层的bi

lstm加attention模型,单层的结构如图2共享模型部分所示。本方法结合表情和文本语义的多任务学习方法以及表情向量化技术,来更好的识别网民情绪。
[0170]
训练好的情绪识别模型的一个具体示例的示意图如图3所示,对未知情绪类别的
自媒体数据进行情绪预测,具体模型架构如图3,输入为文本 标签数据,模型为训练好的bi

lstm attention,最后通过softmax生成情绪类别概率分布,对自媒体数据进行情绪预测,概率最大的情绪类别即最有可能为文本的情绪。
[0171]
在本实施例中还提供了一种基于多任务学习的网民情绪识别系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0172]
本实施例还提供一种基于多任务学习的网民情绪识别系统,如图4所示,包括:
[0173]
第一获取模块1,用于获取训练集,所述训练集中包括多个训练文本;
[0174]
第一处理模块2,用于根据训练集得到每一个训练文本对应的文字信息、表情符号信息以及原文信息;
[0175]
第二处理模块3,用于分别对每一个训练文本对应的文字信息、表情符号信息以及原文信息进行向量化处理,得到文字信息对应的文字向量、表情符号信息对应的表情符号向量以及原文信息对应的原文向量;
[0176]
第三处理模块4,用于将每一个训练文本的文字信息对应的文字向量、表情符号信息对应的表情符号向量以及原文信息对应的原文向量分别输入到共享模型中,得到每一个训练文本的文字信息对应的文字特征矩阵、表情符号信息对应的表情符号特征矩阵以及原文信息对应的原文特征矩阵;所述共享模型包括bi

lstm和attention模型;
[0177]
第四处理模块5,用于分别将每一个训练文本的文字信息对应的文字特征矩阵、表情符号信息对应的表情符号特征矩阵以及原文信息对应的原文特征矩阵通过softmax计算生成每一个训练文本的文字信息对应的文字概率值、表情符号信息对应的表情符号概率值以及原文信息对应的原文概率值;
[0178]
第五处理模块6,用于分别根据每一个训练文本对应的文字概率值、表情符号概率值、原文概率值、文字真实值、表情符号真实值和原文真实值得到每一个训练文本对应的总损失函数值;
[0179]
第六处理模块7,用于根据每一个训练文本的总损失函数值进行误差反向传播更新模型参数得到多个情绪识别模型;
[0180]
第二获取模块8,用于获取测试集,所述测试集中包括多个测试文本;
[0181]
第七处理模块9,用于将多个测试文本分别输入到每一个情绪识别模型中,得到每一个情绪识别模型对应的acc和f1值;
[0182]
第八处理模块10,用于将最大acc和f1值对应的模型作为最优情绪识别模型;
[0183]
第三获取模块11,用于获取待识别文本;
[0184]
第九处理模块12,用于将待识别文本输入至最优情绪识别模型得到待识别文本对应的情绪预测类别,将所述情绪预测类别对应的情绪作为待识别文本对应的情绪。
[0185]
作为示例性的实施例,所述第二处理模块包括:第一处理单元,用于分别对每一个训练文本对应的文字信息进行词向量化得到文字信息中每一个单词对应的词向量,将词向量作为单词对应的文字向量;第二处理单元,用于分别对每一个训练文本对应的表情符号信息进行表情符号向量化得到表情符号信息中每一个表情符号对应的表情符号向量;第三处理单元,用于分别根据每一个训练文本对应的文字信息中每一个单词对应的词向量和表
情符号信息中每一个表情符号对应的表情符号向量得到每一个训练文本对应的原文向量。
[0186]
作为示例性的实施例,所述第二处理单元包括:第一处理子单元,用于根据每一个训练文本对应的表情符号信息得到每一个表情符号的iwf值;第二处理子单元,用于对表情符号的iwf值进行排序,过滤掉iwf值小于预设分数阈值的表情符号,得到表情符号序列表;第三处理子单元,用于根据预设均值、预设标准差和预设向量维度将表情符号生成embedding表;第四处理子单元,用于将embedding表和表情符号序列表进行映射,得到每一个表情符号对应的表情符号向量。
[0187]
作为示例性的实施例,所述第五处理模块包括:第四处理单元,用于分别根据每一个训练文本对应的文本概率值、表情符号概率值、原文概率值、文本真实值、表情符号真实值和原文真实值得到每一个训练文本中文字信息对应的文字损失函数值、表情符号信息对应的表情符号损失函数值和原文信息对应的原文损失函数值;第五处理单元,用于根据每一个训练文本对应的文字损失函数值、表情符号损失函数值和原文损失函数值分别得到每一个训练文本对应的融合损失函数值;第六处理单元,用于根据融合损失函数对文字损失函数值、表情符号损失函数值和原文损失函数值进行平滑处理,得到每一个训练文本对应的总损失函数。
[0188]
作为示例性的实施例,训练文本对应的总损失函数值的计算公式如下所示,
[0189]
loss
sum
=loss1 loss2 loss3[0190][0191]
其中,loss1为训练文本对应的文字损失函数值;loss2为训练文本对应的表情符号损失函数值;loss3为训练文本对应的原文损失函数;loss
sum
为训练文本对应的融合损失函数;loss为训练文本对应的总损失函数。
[0192]
作为示例性的实施例,attention模型的计算公式如下所示,
[0193]
u
i
=tanh(w
u
*h
i
b
u
)
[0194][0195][0196]
s
t
=tanh(w
s
*s
t
‑1 w
v
*v
t
b
v
)
[0197]
其中,u
w
为初始化随机生成的注意力参数矩阵,后续用来学习的参数;tanh为双曲正切激活函数;h
i
为每个时刻隐状态矩阵,w
u
为学习参数;b
u
为偏置;s
t
‑1为t

1时刻输出的隐状态,s
t
为通过attention注意力机制后的隐状态,w
s
和w
v
为训练参数,b
v
为偏置参数。
[0198]
作为示例性的实施例,所述共享模型包括两层的bi

lstm和attention模型。
[0199]
本实施例中的基于多任务学习的网民情绪识别系统是以功能单元的形式来呈现,这里的单元是指asic电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
[0200]
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
[0201]
本发明实施例还提供了一种电子设备,如图5所示,该电子设备包括一个或多个处
理器71以及存储器72,图5中以一个处理器71为例。
[0202]
该控制器还可以包括:输入装置73和输出装置74。
[0203]
处理器71、存储器72、输入装置73和输出装置74可以通过总线或者其他方式连接,图5中以通过总线连接为例。
[0204]
处理器71可以为中央处理器(central processing unit,cpu)。处理器71还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者是任何常规的处理器等。
[0205]
存储器72作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本技术实施例中的基于多任务学习的网民情绪识别方法对应的程序指令/模块。处理器71通过运行存储在存储器72中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的基于多任务学习的网民情绪识别方法。
[0206]
存储器72可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器72可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器72可选包括相对于处理器71远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0207]
输入装置73可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置74可包括显示屏等显示设备。
[0208]
一个或者多个模块存储在存储器72中,当被一个或者多个处理器71执行时,执行如图1所示的方法。
[0209]
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指示相关的硬件来完成,被执行的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述基于多任务学习的网民情绪识别方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read

only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid

state drive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
[0210]
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献