APP下载

基于CNN与BP神经网络的交互式情感分析

2018-10-20徐积微

数码设计 2018年6期
关键词:卷积神经网络BP神经网络

徐积微

摘要:为了让机器在人机交互中更好地理解人类感情,减少人机交互的障碍,我通过文献研究、实证研究、实验等研究方法对于一种在Python和MATLAB环境下用CNN与BP神经网络进行交互式情感分析的可行性进行阐述并论证。在论文中我首先分析研究了他人对该领域的研究现状、提出研究对象目前存在的问题,然后通过搭建模型,训练模型,实验验证,观察分析等反复研究来分析问题,探究影响因素,找出原因,最后提出解决方案。研究结果显示:在Python和MATLAB环境下基于CNN与BP神经网络的交互式情感分析,是可行的。研究创新点,在Python和MATLAB环境下用CNN与BP神经网络不仅能对单句进行文本和声音两方面的情感分析,还能整体把握对话的情感走向;另一方面,因为CNN更适合用于图像识别,而句子在一定意义上是与图片等价的,因此该方案可以达到更高的分析效率。

关键词:Python;MATLAB;卷积神经网络(CNN);BP神经网络;交互式情感分析

中图分类号:TN911文献标识码:A文章编号:1672-9129(2018)06-0035-03

Interactive Emotional Analysis Based on CNN and BP Neural Network

XU Jiwei*

(Nanyang No. 1 Middle School in Henan Province, Henan Nanyang, 473400, China)

Abstractin order to make the machine better understand the human feelings in human-computer interaction and reduce the obstacles of human-computer interaction, Through literature research, empirical research, experiments and other research methods, I elaborated and demonstrated the feasibility of interactive emotional analysis using CNN and BP neural networks in Python and MATLAB environments. In the paper, I first analyzed and studied the current situation of other people's research in this field and put forward the problems existing in the research subjects. Then I analyzed the problems through repeated studies such as model construction, training model, experimental verification, observation and analysis, and explored the influencing factors. Find out why and finally propose a solution. The results show that interactive emotional analysis based on CNN and BP neural network is feasible in Python and MATLAB environments. Research innovation points, in the Python and MATLAB environment, CNN and BP neural networks can not only analyze the emotion of a single sentence in terms of text and sound, but also grasp the emotional direction of the dialogue as a whole; On the other hand, because CNN is more suitable for image recognition and sentences are equivalent to pictures in a certain sense, the scheme can achieve higher analysis efficiency.

KeywordsPython; MATLAB; Convolution neural network(CNN); BP neural network; Interactive Emotional Analysis

引用:徐積微. 基于CNN与BP神经网络的交互式情感分析[J]. 数码设计, 2018, 7(6): 35-37.

CiteXU Jiwei. Interactive Emotional Analysis Based on CNN and BP Neural Network[J]. Peak Data Science, 2018, 7(6): 35-37.

引言

人机交互类似于人类交流,机器与人类在人机交互中表达情感的一个重要的作用也是通过情感告知对方其现在的状态,并让对方能推断出其之前交互的状态及接下来行动的倾向性,由此可知情感也是人机交互的核心。有研究显示“人类交流中80%的信息都是情感性的信息”,情感性的信息在人机交互中也有相当重要的作用。所以我们在人机交互中做好交互式情感分析对于机器很好地理解人类情感和意图、进而做“情感表達”、“需求分析”、“深度用户建模”“人性化交互体验”有重要意义。同时,MATLAB高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;它完备的图形处理功能,能够实现计算结果和编程的可视化;它友好的用户界面及接近数学表达式的自然化语言,使得学者易于学习和掌握;它功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,能够为用户提供大量方便实用的处理工具。而Python语言简单易学,速度快,功能强大,方便使用,性能稳定且免费、开源等优点。这些都使得在Python和MATLAB环境下用CNN和BP神经网络进行交互式情感分析的研究具有可行性。

1  相关概念

人机交互是指人与计算机之间使用某种对话语言,以一定的交互方式,为完成确定任务的人与计算机之间的信息交换过程。(MBA智能百库)

Python[1](英国发音:/?pa?θ?n/ 美国发音:/?pa?θɑ?n/), 是一种面向对象的解释型计算机程序设计语言。Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。(搜狗百科)

MATLAB [1] 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案。(百度百科)

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。它包括卷积层(convolutional layer)和池化层(pooling layer)。卷积神经网络包括一维卷积神经网络、二维卷积神经网络以及三维卷积神经网络。一维卷积神经网络常应用于序列类的数据处理;二维卷积神经网络常应用于图像类文本的识别;三维卷积神经网络主要应用于医学图像以及视频类数据识别。一般地,CNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。(百度百科)

BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络。BP网络是在输入层与输出层之间增加若干层(一层或多层)神经元,这些神经元称为隐单元,它们与外界没有直接的联系,但其状态的改变,则能影响输入与输出之间的关系,每一层可以有若干个节点。(搜狗百科)

本文在Python和MATLAB环境下用CNN和BP神经网络进行交互式情感分析是指使用数学软件MATLAB中的DeepLearnToolbox-master工具包建立两个CNN,并使用相关的文本语料库或相关的语谱图图库对其进行训练和测试,使用Python语言搭建BP神经网络并对其进行训练和测试,使用BP神经网络对前两个CNN分析所得向量进行进一步的分析,从而得出交互式情感分析的结果(结果不仅要包含聊天对象的情绪信息,还要包含由对话历史推导出的情绪走向)。

2  研究现状

在当今的“大数据+深度模型”时代,人类对于深度学习在情感分析方面有着多种方法的综合创新,例如有人使用卷积神经网络(CNN)和支持向量机进行情感分析,有人使用BP神经网络进行情感分析,有人使用LSTM结合句法分析树进行情感分析,还有人把多模态情感分析技术(文字、语音、图像)加入到基于自然语言理解技术的人机交互系统中进行情感分析。与此同时,人类在人机交互中语音及图像的智能识别和理解方面取得了惊人的进展,这有效推动了人机交互的发展。在基于深度学习的算法CNN和BP神经网络的交互式情感分析的现有研究方面,国内外许多专家学者已经做了一些深入的探索,在一些权威的网站上有相关的论文,例如Xiang Zhang和Yann LeCun在《Text Understanding from Scratch》中,证明了CNN可以在没有词汇、短语、句子和其它任何人类语言知识的情况下,也能在文本理解上取得出色的表现。Yoon Kim在《Convolutional Neural Networks for Sentence Classification》中描述了将CNN用于文本分类任务的过程和结果,展示了卷积神经网络在自然语言处理方面的成绩;同时也有研究显示,CNN还可以用于语义分析、释义检测、语音识别等领域;3D CNN可以用于视频分类,动作识别等领域;另外,还有一些研究者研究了基于BP神经网络情感分析及不同池化模型的卷积神经网络学习性能等等。这都为基于CNN和BP神经网络的交互式情感分析的研究提供了科学依据,也同样是本研究的灵感来源。

3  目前存在的问题

虽然机器在理解人类语言方面有所突破,但是机器在整体把握对方的情感以及应对强烈情感所造成的语序混乱两方面依然存在障碍。为了解决这个问题,我通过听专题课,文献研究,实证研究、实验等研究方法确定研究方向——基于CNN与BP神经网络的交互式情感分析,并对其可行性进行阐述并论证。提出论文研究中目前存在的问题——如何在Python和MATLAB环境下用CNN和BP神经网络进行交互式情感分析,从而在人机交互中,使机器能进一步读懂、听懂人类,以期达到更好的人机交互效果?

4  研究过程

为了尝试解决情感分析目前存在的问题,验证在Python和MATLAB环境下用CNN与BP神经网络进行交互式情感分析的设想的可行性,我先反复认真复习创新教育实验室里的相关课程,同时使用万方数据,TensorFlow Playground等网站对CNN、Python、BP神经网络和MATLAB进行学习;然后在电脑上安装相关软件;然后学习使用MATLAB搭建CNN,使用Python搭建BP神经网络。继而通过实验验证,观察分析等反复研究来探索人机交互中的单句情感分析及其整体情感趋势分析来探究影响因素,找出原因,最后提出解决方案。探索如何让机器在人机交互中更好地理解人类感情,减少人机交互的障碍。

假设有MessNum次对话。

第一步,使用Python语言搭建一个BP神经网络,使用MATLAB搭建第一个CNN并使用相关的文本语料库对其进行训练,使得该CNN能够通过不同词语的搭配来识别用户的情绪,如语气词,否定词的搭配等。这一CNN会输出一个实数TextEmo∈(0, 1)。对n次对话会输出n个这样的实数,这些实数构成一个n维向量:

本向量将作为BP神经网络的输入。

第二步,使用MATLAB建立另外一个CNN并使用相关的语谱图图库对其进行训练,使得该CNN能够抽取语谱图的局部特征,对语谱图的每个部分根据情绪 赋上权值(0~1),最终得到一个一元函数f(t)。

对于一句时间为t0的话,得出结果。

最后对于第n次对话,同样创建一个多维向量

本向量同样作为BP神经网络的输入。

第三步,将以上两步得到的两个向量分别作为矩阵SingleSen的两个列

输入到使用Python搭建的BP神经网络中,得到最终结果

a,b的意义如下(横轴为a,纵轴为b)

技术细节:在第一步中,通过中文切词将句子分成小块,以此类比图像识别中的像素。卷积层使用的fliter是一个1*m矩阵,其中m根据要处理的句子长度的平均值确定。卷积层的输出是句子成分关系(如主-谓,谓-宾,宾-宾补等)。切词直接得到的结果是语义特征。将句子成分关系输入一个BP神经网络直接得到一个打分,同时对语义特征进行池化,除去不必要的虚词,介词等句子成分再将池化后的语义特征输入BP神经网络得到打分,两个打分的加权合即为最终结果。

在第二步和第三步中,先使用相关的API接口将音频转化为语谱图,直接将语谱图输入CNN,通过多层的卷积和池化得到能概括语谱图特征的片段,分析这些片段的情感特征。进而得到最终结果。

例如,我们对人机交互中“我的钱包被偷了”这句話进行情感分析,过程如下:

第一步:使用Python语言搭建一个BP神经网络并对其进行训练和测试。

使用MATLAB搭建两个CNN模型并使用相关的文本语料库或相关的语谱图图库分别对它们进行训练和测试。

把含有“我的钱包被偷了”这句话的人机交互对话输入两个CNN,其中使用相关的文本语料库对其进行训练测试的CNN能够通过不同词语的搭配来识别用户的情绪,这一CNN

会输出一个实数TextEmo∈(0, 1)。对n次对话会输出n个这样的实数,这些实数构成一个n维向量:

(本向量将作为BP神经网络的输入。)

第二步其中使用相关的语谱图图库对其进行训练测试的CNN能够抽取语谱图的局部特征,对语谱图的每个部分根据情绪 赋上权值(0~1),最终得到一个一元函数f(t)。假设“我的钱包被偷了”这句话时间为t0的话,得出结果。

最后对于第n次对话,同样创建一个多维向量

(本向量同样作为BP神经网络的输入。)

第三步,将以上两部得到的两个向量分别作为矩阵SingleSen的两个列

输入到使用Python搭建的BP神经网络中,得到最终结果

由以上研究可知,最终的输出不仅包含聊天对象的情绪信息,还包含由对话历史推导出的情绪走向,所以在Python和MATLAB环境下用CNN和BP神经网络指导机器,利用已知数据得出适当的模型对交互式情感做出较为正确的分析,从而达到更好的人机交互效果。

5  影响因素及原因

由于深度学习发展历程缓慢艰辛,基于CNN和BP神经网络的交互式情感分析的研究仍然处于〃襁褓〃阶段,研究中我们仍然面临诸如程序设计、理论、建模等一系列难题;而且要实现人性化交互体验,需要一整套的情感系统;而作为高中生的我来说,由于受知识面的限制,研究起来尤其障碍重重。鉴于以上三个方面的原因,我在研究实验中深切体会到:

CNN和Bp神经网络模型的训练和测试,文本的中文词切,语音语谱图的生成研究中困难很多,极大地影响实验效果

6  解决方案

对于人机交互中的单句情感分析及其整体情感趋势分析,我使用数学软件MATLAB中的DeepLearnToolbox-master工具包建立CNN,并使用相关的文本语料库或相关的语谱图图库对其进行训练,使用Python语言搭建BP神经网络,对前两个CNN分析所得向量进行进一步的分析得出结果。

本解决方案的创新之处在于将传统的BP神经网络在模式识别方面的优势与前沿的CNN“局部权值共享”的特点结合起来,并将问题分为两个层次(单句情感分析,整体情感趋势分析),采用两种神经网络分别解决。本方案可以充分发挥两种神经网络的优势,达到质量与效率的最优化。

参考文献:

[1]      谢梁?鲁颖?劳虹岚.Keras快速上手[M]:基于Python的深度学习实战. 电子工业出版社2017年8月出版,978-7-121-31872-6

[2]      Mengchen Liu, Jiaxin Shi, Zhen Li, Chongxuan Li, Jun Zhu, Shixia Liu?Towards Better Analysis of Deep Convolutional Neural Networks[J].IEEE Transactions on Visualization and Computer Graphics,2017,23(1):91-100

[3]      王盛玉;曾碧卿;胡翩翩;基于卷积神经网络参数优化的中文情感分析[J].计算机工程,2017,08

[4]      Shira0905.情感分析进阶-CNN[OL].(2017-12-08)[2018-08-05]简书  - https://www.jianshu.com

[5]      鄧霖等竹间智能 自然语言与深度学习小组.深度学习在情感分析中的应用.(2017-07-13)[2018-08-05]搜狐科技- https://it.sohu.com

[6]      魏秀参.解析卷积神经网络-深度学习实践[OL].(2018-04-07 上传)[2018- 08-05]中国软件开发网- https://www.csdn.net

[7]      Coursera吴恩达 卷积神经网络[OL](2018-7-23) [2018-08-05]知乎专栏 - https://zhuanlan.zhihu.com/... -

[8]      邓霖等竹间智能 自然语言与深度学习小组.聊天中的情感分析有多难?[OL].(2017-06-06)[2018-08-05]知乎- https://www.zhihu.com

[9]      颜才炳 基于BP神经网络的语音情感识别算法的研究[D].武汉:武汉理工大学,2009.

猜你喜欢

卷积神经网络BP神经网络
基于深度卷积神经网络的物体识别算法
复杂背景下的手势识别方法
深度学习算法应用于岩石图像处理的可行性研究
BP神经网络在软件质量评价中的应用研究 
基于深度卷积网络的人脸年龄分析算法与实现
BP神经网络算法在数值预报产品释用中的应用
基于卷积神经网络的树叶识别的算法的研究