本发明属于深度学习技术领域,涉及利用深度学习算法进行影评文本情感分析的方法。
背景技术:
在当今时代,互联网上存在着大量可作为情感语料数据原型的评论。如何高效精确地获取基于这些语料的情感信息,并依次进行相关研究成为当前信息科学与技术领域面临的重大挑战。情感分析,又称意见挖掘(opinionmining),是用于分析人对特定对象及其相关属性的观点、态度以及其他主观感情的技术。文本情感分析是指分析文本的情感极性。在互联网时代,大量带有情感倾向的文本数据对人们的决策具有重要的作用。例如,消费者在观看电影之前,希望根据电影已有的评论来选择。电影院也可以通过消费者对电影的评论信息,对电影的排片或相关服务进行改进。
技术实现要素:
本发明的目的在于提供一种基于深度学习的文本情感分析方法,本发明的有益效果是能较为客观的进行影评文本情感分析,分析较为准确。
本发明所采用的技术方案是按照以下步骤进行:
step1.数据准备。准备电影评论数据集,这里使用imdb的大型电影评论数据集,imdb数据集包含了50000条从imdb标注获得的二分类评论,这些评论在训练过程中将会被1:1分成训练集和测试集。准备停用词词典,这里使用中科院计算所中文自然语言处理开放平台发布的包含1208个停用词的中文停用词典;
step2.数据预处理,对数据集进行预处理,使用结巴分词对数据集进行分词,即将句子拆分为词语集合,例如,这样/的/电影/很/好看。遍历数据集中的所有语句,删除其中的停用词,上述例子删除停用词后结果为:电影/很/好看。
模型的输入需要为数据元组,因此需要将词语组合转化为一个数值向量——词向量。用融合情感信息的word2vec-ps模型训练词向量,将词语组合转化为数值向量,同时降低维度得到词向量语义信息;
用融合情感信息的word2vec-ps模型训练词向量方法如下:
选用word2vec中的cbow模型进行改进,提出融合情感信息的词向量模型,cbow模型包括输入层、投影层和输出层三部分,在已知当前词wt-2、wt-1、wt+1、wt+2的前提下预测wt,神经网络的语言模型的目标函数l通常取如下对数似然函数:
其中:context(w)由词w前后各c个词组成,c为自然数,d为数据集,w∈d。融合事先收集数据中的能反应情感的标点符号组合及标点符号连用信息来得到word2vec-ps模型,模型目标函数如下:
其中:context(w)由词w前后各c个词组成,puncs(w)为事先收集的数据中的标点符号组合及标点符号连用信息。
输入层中context(w)中2c个词的词向量v(context(w)1),v(context(w)2),…,v(context(w)2c)∈rm,投影层将输入层的2c个向量作求和累加基础上融合情感信息的向量如下:
其中:xw为融合情感信息的向量,v(puns(w))为puncs(w)的向量表示。
在模型输出层中,语料库不仅包含了所有句子中出现的词,并且将句子中出现的能反应情感的标点符号组合及连用信息作为频繁词向量化,这样融合情感信息的概率模型如下:
其中:模型的输出层对应一个以数据集中出现过的词及能反应情感的标点符号组合及连用信息当做叶子结点,以对应词在数据中出现的次数当权值构造的huffman树。在huffman树中为每一个非叶子结点的左右孩子指定了一个类别,约定将huffman编码为1的节点定义为正类,编码为0的节点定义为负类。这样对于数据d中的任意词w,huffman树中必然存在且唯一存在一条从根节点到词w的路径pw。路径pw上存在lw-1个分支,每个分支对应的二分类就产生了一个概率,将这个概率连乘就是所需的p(w|context(w)+puncs(w))。xw为融合情感信息的向量,pw为从根节点出发到达w对应叶子结点的路径,lw为路径pw中包含结点的个数,
step3.构建循环神经网络模型,将训练好的词向量按不同时刻输入到循环神经网络模型中,提高电影评论文本情感分类的准确性;
构建循环神经网络模型方法如下:
定义初始激活量a<0>为零向量开始计算,公式如下:
a<t>=g1(waaa<t-1>+waxx<t>+ba)
wax下标的含义:x表示wax要乘以一个x类型的量,a表示wax是用来计算某个a类型的量。ba是偏置值。通常选择tanh(双曲正切函数)作为激活函数,有时候也会使用relu(修正线性单元)作为激活函数。然后计算输出
输出y的激活函数由输出的类型决定:(1)如果输出y是一个二分问题,通常选用sigmoid作为激活函数;(2)如果是k类别分类问题,可以选用softmax作为激活函数。对于情感文本分析来说,这里的g2可以是sigmoid激活函数。通过反向传播计算,使用梯度下降方法来更新rnn的参数,本发明中使用标准logistics回归损失函数(交叉熵损失函数)。关于某个时间步t上预测值的损失函数如下:
y<t>表示样本的输出,
反向传播算法按照前向传播相反的方向进行导数计算,来对参数进行更新,最终训练出准确度较高的模型。
step4.进行电影评论文本情感分析。用数据集训练得到融合情感信息的词向量,将词向量输入到构建的循环神经网络模型进行模型训练,训练好模型后用测试集对模型进行验证,模型的输出结果设置为好,差2个类别,验证结果准确度可观。
附图说明
图1为本发明文本情感分析的流程图;
图2为cbow模型;
图3为改进后融合情感信息的word2vec-ps模型;
图4为本发明的循环神经网络简略模型图。
具体实施方式
下面结合具体实施方式对本发明进行详细说明。
本发明如图1所示将影评文本情感分析分为数据准备、数据预处理、构建模型、情感分析4个模块。在进行数据准备时,需要准备语料库、停用词表以及验证集。语料库这里使用康奈尔大学提供的影评数据集,停用词这里使用的是中科院计算所中文自然语言处理开放平台发布的包含1208个停用词的中文停用词表,验证集使用爬虫技术爬取豆瓣电影网影评进行验证。
图2为cbow模型,在进行数据预处理时,首先要进行分词,这里采用jieba进行分词。去除停用词,要遍历所有语料中的所有词语,删除其中的停用词,便于后续训练词向量。然后用融合情感信息的word2vec-ps模型训练词向量(如图3所示),将词语组合转化为数值向量,同时降低维度得到词向量语义信息。在电影评论中,经常会出现标点符号组合使用或标点符号连用的情况。这种用法虽然不符合语法规则,但在影评中却往往被用来表达一些单个符号难以表达的情感。例如“~”在文本中往往表达一种感情的起伏和延伸。如“真的特别好看啊~~~!”。为了在电影评论文本处理中能够反映出表达者的语气和强度,将标点符号组合及连用信息作为频繁词向量化,得到融合情感信息的word2vec-ps模型。
图4为本发明的循环神经网络简略模型图,将训练好的词向量按不同时刻输入到循环神经网络模型中。
在进行情感分析时,用数据集训练构建的循环神经网络模型,并用测试集对模型进行验证,模型的输出结果为好,差4个类别,验证结果准确度可观,能较为客观的进行影评文本情感分析。
以上所述仅是对本发明的较佳实施方式而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施方式所做的任何简单修改,等同变化与修饰,均属于本发明技术方案的范围内。