首页> 中国专利> 一种基于深度学习的图片情感极性分析方法

一种基于深度学习的图片情感极性分析方法

摘要

一种基于深度学习的图片情感极性分析方法涉及图像内容理解和大数据分析技术领域。传统方法图片情感分析方法由于模型和特征简单使得最终预测精度不理想。目前使用深度学习的方法在大规模训练集中进行训练,但是训练集的噪音过大,使得最终的性能受限。本发明采用直接从网络中获取数据的方式,从数据规模大。只有在数据准备时需要得到的一个常用词语的情感极性信息可能需要人工标注。之后在整个的图像获取和清洗工作全都可以自动完成,需要的人工成本很低。在数据获取阶段,引入了两次数据清洗过程,可以清除很大一部分图片与标签不一致的噪音。本发明将先验知识用于训练集对训练集进行过滤,使得训练集的噪音减少,并辅以改进的网络结构,使图片情感预测准确率得到提升。

著录项

  • 公开/公告号CN106886580A

    专利类型发明专利

  • 公开/公告日2017-06-23

    原文格式PDF

  • 申请/专利权人 北京工业大学;

    申请/专利号CN201710059051.5

  • 发明设计人 毋立芳;刘爽;祁铭超;张磊;简萌;

    申请日2017-01-23

  • 分类号G06F17/30(20060101);G06F17/27(20060101);

  • 代理机构11203 北京思海天达知识产权代理有限公司;

  • 代理人刘萍

  • 地址 100124 北京市朝阳区平乐园100号

  • 入库时间 2023-06-19 02:37:14

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-01-17

    授权

    授权

  • 2017-07-18

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20170123

    实质审查的生效

  • 2017-06-23

    公开

    公开

说明书

技术领域

本发明涉及图像内容理解和大数据分析技术领域,特别是涉及一种图片情感分析方法。

背景技术

随着互联网的发展和智能手机的普及,社交网络在人的日常生活中有着不可替代的地位。越来越多的人开始通过社交网络平台表达自己观点,大量的用户生成数据也因此而生成。

用户生成数据(User Generated Content,UGC),是指由用户上传的原创内容,这些内容来源于用户,最终又服务于用户。在web2.0时代,用户不在被动的接受互联网内容,而是作为主体参与其中,在充当使用者的角色之外,也成为了生产者和传播者。

面对庞大的用户生成数据,如何有效利用就成了现在急需解决的问题。针对于这些数据,意见挖掘和情感分析的相关研究开始成为研究热点。它们分析UGC数据去做舆情分析,分析民众对于某个事件的反应,预测票房、预测股票走势等等。

但是目前这些研究和方法普遍基于文本信息。而在社交网络中,用户数据是多元的,不但包括文字,还包括图片,视频等。

对于文字,不同地域不同背景的人可能有不同的理解,但是对于图片,人们的反应往往具有一致性。而且现在用于图形计算的设备越来越便宜而且性能也越来越强,这使得做大规模的图形计算变得可能。

目前对于图片的情感分析问题,目前普遍采用监督学习的方法。即先收集一个带标注的图片集,然后利用机器学习方法训练模型,最后利用训练好的模型对新图片进行情感分析。

早期的方法利用手工收集的图片集并使用简单分类器进行分类,例如:JianboYuan在2013年发表的文章“Sentribute:image sentiment analysis from a mid-levelperspective”中使用了SUN这一手工标注数据集,其中包括14340张手工标注图像,利用SVM作为学习工具并辅以人脸表情识别对图像进行情感分析。

随着机器学习模型的复杂,小规模数据集已经不能满足训练要求。所以在最新的工作中普遍采用网络收集数据集的方式获取数据集。例如:Stefan Siersdorfer在2010年发表的文章“Analyzing and Predicting Sentiment of Images on the Social Web”中使用SentiWordNet情感词典中正负情感强度前1000的词语作为检索词在Flickr中检索得到了586000图像用于情感分析模型的训练;Damian Borth在2013年发表的文章“Large-scale Visual Sentiment Ontology and Detectors Using Adjective Noun Pairs”中利用1200形容词名词对作为检索词在Flickr中进行检索并整理形成一个大规模情感分析数据集Sentibank。Sentibank是目前使用比较广泛的情感分析数据集,但是由于其中的图片是直接从网络中获取然后保存,所以噪音很大,严重制约着后续的情感分析精度。

最新的方法有一些是利用深度学习的方法。例如:Quanzeng You在2015年发表的文章“Robust Image Sentiment Analysis Using Progressively Trained and DomainTransferred Deep Networks”中利用Sentibank数据集并利用自学习的思想改进深度学习网络,构建了PCNN网络,可以在一定程度上抵抗网络数据集中的噪音问题,但是由于自学习理论的内在限制,所以其性能提升有限。

综上所述,传统的图片情感分析方法需要的数据集较小,但是由于模型和特征简单使得最终预测精度不理想。目前的一些使用深度学习的方法在大规模训练集中进行训练,但是由于训练集的噪音过大,使得最终的性能受限。本发明提出一种基于深度学习的图片情感极性分析方法,将先验知识用于训练集对训练集进行过滤,使得训练集的噪音减少,并辅以改进的网络结构,使图片情感预测准确率得到提升。

发明内容

本发明的目的是提供一种基于深度学习的图片情感极性分析方法,其框架如图1所示。

该方法分为三个阶段,数据获取,深度学习模型训练以及图片情感极性分析阶段。

该方法首先利用一些情感词汇作为检索词来从图片网站获取相关图片,然后将情感词汇对应情感极性作为图片标签得到初始数据集。接着利用检索词的情感极性,图片标签,图片描述文字的情感一致性对数据集进行过滤从而得到一个更纯净的数据集。接着利用深度学习方法,使用得到的数据集对CNN模型进行训练得到情感极性分类模型。最后利用上一步训练好的CNN模型对图片进行情感极性分析。

上述的图片情感分析方法具体步骤如下:

1、数据获取

本方法可以应用于大多数带有图片搜索功能的图片社交网站。由于这类网站普遍存在检索数量最大值限制,而且为了保证数据的丰富度和均衡度,所以在本方法中我们使用大量检索词进行检索来获取图片。

1.1.先验知识准备

为了对检索词的情感极性准确度有足够的保证,所以在进行数据获取之前,要准备一个词语情感极性的情感字典。在本方法中,我们使用情感词汇主要情感极性情感字典,可以提供常用词汇的主要情感极性。所谓一个词语的主要情感极性就是该词语在常用语境下所表达的情感极性。这一情感字典需要通过手工标注的方式来构建或者使用现有的公开字典,情感字典中的词以(词,情感强度)的方式构建,其中情感强度的取值范围为[-1,1],情感强度越接近1代表该词语的情感极性越积极,反之如果情感极性越接近-1,则代表该词语的情感极性越消极,一些具体的例子如:

悔恨-0.9

暴怒-0.9

从容0.7

千刀万剐-0.7

乐滋滋0.5

五体投地0.5

1.2.检索词选取

为了从网络获取数据,首先需要准备的就是检索词,在本方法中,我们选择从网络收集检索词的策略。具体步骤如下:

1.2.1使用包含明确情感极性的词语(如:高兴,伤心)作为初始检索词去图片网站中检索,收集检索结果并提取其中的描述文字,描述文字是指有关于图片的描述信息,可以是图片的标签,介绍,上下文文本信息。

1.2.2利用分词工具将描述文字进行分词处理并去除停用词,对其中的独立词进行词性分析,提取其中的名词和形容词。并将名词和形容词进行一一配对(取笛卡尔积)。将配对后的结果按照(形容词,名词)的方式存放来作为初始的检索词库。

1.2.3把1.2.2中得到的初始的检索词库进行一次数据清洗,本次清洗的目标是去除检索词库中那些形容词和名词情感极性有冲突的部分。利用1.1得到的情感字典,分析每一个检索词库中的形容词名词的极性关系,并将其中发生冲突的去除,对于检索词库中的任一个(形容词,名词)对,该规则的形式化表示如下:

f1(A,N)=Sen(A)+Sen(N)(1)

其中A代表词对中的形容词,N代表词对中的名词。Sen(x)函数表示从情感字典(在1.1中得到)中获取词语x的情感极性,即如果情感强度在(0,1] 则Sen()函数返回1,如果情感强度在[-1,0)则Sen()函数返回-1,如果情感字典中不存在词语x则认为x不包含情感,函数返回0。如果f1为0,则说明这对形容词名词间存在冲突或者不包含情感,应该去除。如果f1非0则说明不存在冲突,应该予以保留。

1.2.4利用1.1得到的情感字典对筛选后的检索词库进行情感标注并生成最终的检索词库。检索词库中每个(形容词,名词)对的情感标签由形容词和名词的情感强度相加得到。具体的例子如:

形容词:绝望-0.9

名词:呻吟-0.5

情感标签:-0.9+(-0.5)=-1.4

1.3.利用检索词进行检索

利用1.2.4得到的检索词库进行图像检索,具体的步骤如下:

(1)从检索词库中取出一对情感词。

(2)在网站中进行检索得到检索结果。

(3)从检索结果中提取图片以及对应的描述文字,描述文字是指有关于图片的描述信息,可以是图片的标签,介绍,上下文文本信息。

(4)利用分词工具将描述文字进行分词处理并去除停用词,将其中的独立词作为描述信息。

(5)将用于此次检索的情感词对应的情感标注信息作为提取得到图片的标签。

(6)将(图片,描述信息,标签)作为三元组存放在数据库中。

(7)重复步骤(1)-(6)直到检索词库中所有词都被使用过。

至此我们得到了一个情感图片数据库。

1.4.数据集清洗

由于互联网数据的噪音很大,所以数据清洗工作就显得尤为重要。在本方法中我们利用图片的描述信息词语的情感极性和图片的标签的一致性来去除可能存在的噪音图像。具体步骤如下:

(1)从1.3中得到的情感图片数据库中取出一个三元组元素。

(2)利用1.1中得到的情感字典对其中的描述信息词语一一进行极性判断。

(3)将(2)得到的极性与三元组的标签项的极性进行一致性分析,如果,两者的极性发生冲突则认为该三元组元素为噪声元素,从数据库中进行删除处理,对于情感图片数据库中的任一个(图片,描述信息,标签)对,该规则的形式化表示如下:

f2(Label,Tag)=∑(not(sgn(Label)+Sen(Tagi)))(1)

其中Label代表三元组中的标签,Tag代表三元组中的描述信息,Tagi代表描述信息中的第i个独立词语。sgn(x)为符号函数,其函数表达式如(3)所示。not(x)函数为逻辑取反函数,如果x等于0,则not(x)为1,反之,如果x不等于0则,not(x)为0。如果f2的结果大于0,则说明图片的标签与对应的描述信息之间存在冲突,应该从数据库中删除此三元组。反正如果f2结果为0则说明不存在冲突,应该予以保留。

(4)重复(1)-(3)直到数据库中所有图片都被分析过。

2、深度学习模型训练

在得到数据集之后,便可以进行模型训练。在本方法中我们采用了改进的CNN模型,在传统的CNN的模型基础上,加入了辅助的损失层,使得其具有更好的性能。

2.1.设计深度卷积神经网络(CNN)

图2展示了本方法中使用的CNN模型框架。网络由5个卷积层,3个全连接层和1个softmax层组成,其中神经元的激活函数选用ReLU函数,前两层卷积层和第5个卷积层后加pooling层,卷积层,pooling层以及全连接层的前两层的参数与AlexNet的配置完全一致,最后一个全连接层修改大小为2,并命名为fc8_s。softmax层的输出为图片的情感极性(积极,消极)。在模型训练时额外添加了一个Euclidean loss层以及对应的一个全连接层fc8_e,输出为图片的情感强度,用于度量实数级别的预测误差。图像在输入CNN网络时需要归一化成256*256的RGB图像。

2.2.训练CNN模型

使用1得到的数据集对CNN模型做训练,首先将数据集的每个元素重新存储为(图片,实数值标签,二值化标签)的三元组形式。二值化的方式为(0,1]量化为1,[-1,0]量化为0。使用三元组中的图片作为输入;标签作为实数级别的监督信号,用作Euclidean Loss的度量;二值化之后的标签用作情感极性的监督信号,用作Softmax Loss的度量。

3、对图片进行情感分析

使用2中训练好的CNN模型作为情感分类器,首先将图片归一化到256*256尺寸大小,然后输入模型,便可产生情感极性预测输出。

与现有方法相比,本发明具有以下优势:

1.可获得的数据规模大

本发明采用直接从网络中获取数据的方式,和原始的手工收集数据集相比,从数据规模上要大很多。

2.人工成本低

在本发明中,只有在数据准备时需要得到的一个常用词语的情感极性信息可能需要人工标注。之后在整个的图像获取和清洗工作全都可以自动完成,需要的人工成本很低。

3.数据噪声小

在数据获取阶段,引入了两次数据清洗过程,可以清除很大一部分图片与标签不一致的噪音,与传统的直接获取网络数据集相比,有着更低的数据噪音。

4.预测精度高

在使用同样的数据集进行训练时,使用本发明提出的模型可以比传统的CNN模型在正确率上有所提升。

附图说明

图1为本发明所设计的图片情感分析框架;

图2为本发明所使用的CNN模型框架;

图3为本发明实施过程中使用的情感词的例子;

图4为实施本发明后去除的检索词的例子;

图5为实施本发明后去除的结果图的例子;

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。本发明的目的是提供一种基于深度学习的图片情感极性分析方法,其框架如图1所示。下面结合附图和实例对本发明做进一步的详细说明。

该发明的实现步骤如下:

1、数据获取

本方法可以应用于大多数带有图片搜索功能的图片社交网站。在具体实施的过程中,我们选择Flickr这一图片社交网站来收集数据。对于一次检索请求,Flickr目前允许返回峰值图片数目为2000。

1.1.先验知识准备

在实施过程中,我们选择英文的情感字典,为了方便实现,我们使用了一个现有的词汇字典,该词汇字典由Zhou Zhixin在2014年的文章“Sentiment analysis on twitterthrough topic-based lexicon expansion”中提出,其中包括了21000个独立词汇,每个词汇都有对应的主要情感标注,其中强度的取值范围为[-1,1],情感强度越接近1代表该词语的情感极性越积极,反之如果情感极性越接近-1。图3列举出了一些从该字典中随机选取的词语以及对应标注信息。

1.2.检索词选取

为了从网络获取数据,首先需要准备的就是检索词,在这里我们选择从网络收集检索词的策略。具体步骤如下:

1.2.1我们使用包含明确情感极性的词语作为初始检索词去Flickr网站中检索,收集检索结果并提取其中每个图片的描述文字(description以及tag信息),在具体实现中我们选用anger,disgust,fear,sadness,happy,excitement,awe,amusement作为初始检索词。

1.2.2利用分词工具将描述文字进行分词处理并去除停用词,对其中的独立词进行词性分析,提取其中的名词和形容词。并将名词和形容词进行一一配对(取笛卡尔积)。将配对后的结果按照(形容词,名词)的方式存放来作为初始的检索词库。

1.2.3把1.2.2中得到的初始的检索词库进行一次数据清洗,本次清洗的目标是去除检索词库中那些形容词和名词情感极性有冲突的部分。利用1.1得到的情感字典,分析每一个检索词库中的形容词名词的极性关系,并将其中发生冲突的去除,对于检索词库中的任一个(形容词,名词)对,该规则的形式化表示如下:

f1(A,N)=Sen(A)+Sen(N)>

其中A代表词对中的形容词,N代表词对中的名词。Sen(x)函数表示从情感字典(在1.1中得到)中获取词语x的情感极性,即如果情感强度在(0,1]则Sen()函数返回1,如果情感强度在[-1,0)则Sen()函数返回-1,如果情感字典中不存在词语x则认为x不包含情感,函数返回0。如果为0,则说明这对形容词名词间存在冲突或者不包含情感,应该去除。如果非0则说明不存在冲突,应该予以保留。

1.2.4利用1.1得到的情感字典对筛选后的检索词库进行情感标注并生成最终的检索词库。检索词库中每个(形容词,名词)对的情感标签由形容词和名词的情感强度相加得到。

1.3.利用检索词进行检索

利用1.2.4得到的检索词库进行图像检索,具体的步骤如下:

(1)从检索词库中取出一对情感词。

(2)在网站中进行检索得到检索结果。

(3)从检索结果中提取图片以及对应的描述文字,描述文字是指有关于图片的描述信息,可以是图片的标签,介绍,上下文文本信息。

(4)利用分词工具将描述文字进行分词处理并去除停用词,将其中的独立词作为描述信息。

(5)将用于此次检索的情感词对应的情感标注信息作为提取得到图片的标签。

(6)将(图片,描述信息,标签)作为三元组存放在数据库中。

(7)重复步骤(1)-(6)直到检索词库中所有词都被使用过。

至此我们得到了一个情感图片数据库。

1.4.数据集清洗

由于互联网数据的噪音很大,所以数据清洗工作就显得尤为重要。在本方法中我们利用图片的描述信息词语的情感极性和图片的标签的一致性来去除可能存在的噪音图像。具体步骤如下:

(1)从1.3中得到的情感图片数据库中取出一个三元组元素

(2)利用1.1中得到的情感字典对其中的描述信息词语一一进行极性判断。

(3)将(2)得到的极性与三元组的标签项的极性进行一致性分析,如果,两者的极性发生冲突则认为该三元组元素为噪声元素,从数据库中进行删除处理,对于情感图片数据库中的任一个(图片,描述信息,标签)对,该规则的形式化表示如下:

f2(Label,Tag)=∑(not(sgn(Label)+Sen(Tagi)))(1)

其中Label代表三元组中的标签,Tag代表三元组中的描述信息,Tagi代表描述信息中的第i个独立词语。sgn(x)为符号函数,其函数表达式如(3)所示。not(x)函数为逻辑取反函数,如果x等于0,则not(x)为1,反之,如果x不等于0则,not(x)为0。如果f2的结果大于0,则说明图片的标签与对应的描述信息之间存在冲突,应该从数据库中删除此三元组。反正如果f2结果为0则说明不存在冲突,应该予以保留。

(4)重复(1)-(3)直到数据库中所有图片都被分析过。

图5列出了一些使用该规则去除的噪音图像。

2、深度学习模型训练阶段

在得到数据集之后,便可以进行模型训练。在本方法中我们采用了改进的CNN模型,在传统的CNN的模型基础上,加入了辅助的损失层,使得其具有更好的性能。

2.1.设计深度卷积神经网络(CNN)

图2展示了本方法中使用的CNN模型框架。网络由5个卷积层,3个全连接层和1个softmax层组成,其中神经元的激活函数选用ReLU函数,前两层卷积层和第5个卷积层后加pooling层,卷积层,pooling层以及全连接层的前两层的参数与AlexNet的配置完全一致,最后一个全连接层修改大小为2,并命名为fc8_s。softmax层的输出为图片的情感极性(积极,消极)。在模型训练时额外添加了一个Euclidean loss层以及对应的一个全连接层(命名为fc8_e),输出为图片的情感强度,用于度量实数级别的预测误差。图像在输入CNN网络时需要归一化成256*256的RGB图像。

2.2.训练CNN模型

使用1得到的数据集对CNN模型做训练,首先将数据集的每个元素重新存储为(图片,实数值标签,二值化标签)的三元组形式。二值化的方式为(0,1]量化为1,[-1,0]量化为0。使用三元组中的图片作为输入;标签作为实数级别的监督信号,用作Euclidean Loss的度量;二值化之后的标签用作情感极性的监督信号,用作Softmax Loss的度量。

深度学习模型训练可以在Caffe框架下进行,由于本发明使用的CNN网络与AlexNet的前7层参数完全一致,所以在训练时可以借用AlexNet在ImageNet上训练好的模型在我们得到的数据集中进行微调。将前7层的学习比率设置为1,fc8_s,fc8_e两个全连接层的学习比率设置为10。基础学习率和迭代次数可以根据数据规模和模型的学习情况进行确定。

3、对图片进行情感分析

使用2中训练好的CNN模型作为情感分类器,首先将图片归一化到256*256尺寸大小,然后输入模型,便可产生情感极性预测输出。

4、模型评价

利用本发明提出的数据清洗方法对SentiBank图像库中进行数据清理,并利用清洗后的数据集对本发明提出的深度学习模型进行训练,之后在Twitter图片情感数据集(由Quanzeng You在2015年发表的文章“Robust Image Sentiment Analysis UsingProgressively Trained and Domain Transferred Deep Networks”中公布,这里使用5-agree子集)上进行测试可以达到81.95%的预测正确率,相比于传统深度学习方法提升4%以上。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号