一种情感分析方法、设备及系统、计算机可读存储介质与流程

文档序号:15999244发布日期:2018-11-20 19:14阅读:189来源:国知局
本发明涉及一种情感分析方法、设备及系统、计算机可读存储介质。
背景技术
:21世纪是信息技术飞速发展的时代,人们的生活与计算机、互联网息息相关,人与人之间的交流和沟通方式也已渗透到网络中。以微博、微信为代表的社会化媒体平台的出现,更加使得移动互联深入人心。以微博为例,微博,即微博客的简称,是一个基于用户关系的信息分享、传播以及获取平台,用户可以通过web(网页)、WAP(WirelessApplicationProtocol,无线应用协议)以及各种客户端组件,以140字左右的文字发表信息,并实现即时分享。微博的简短、精辟吸引了大量的公众人物的使用,这些公众人物所带动的粉丝数以万计。每个人无论何时何地都可以自由而方便地记录生活的点滴、与朋友互动、表达观点等等。每一个微博传递的信息包含发布者的个人立场和感情,有必要对微博承载的参与者的感情进行挖掘分析。技术实现要素:本发明至少一实施例提供了一种情感分析方法、设备及系统、计算机可读存储介质。为了达到本发明目的,本发明至少一实施例提供了一种情感分析方法,包括:根据语料生成词向量;根据所述语料生成特征向量,将所述词向量输入预先建立的第一长短记忆网络模型,将所述第一长短记忆网络模型输出的第一信息和所述特征向量输入预先建立的第二长短记忆网络模型;根据所述第二长短记忆网络模型输出的第二信息确定所述语料的情感倾向。本发明至少一实施例提供一种情感分析系统,包括:数据处理模块、存储模块和算法分析模块,其中:所述数据处理模块用于,获取语料;所述存储模块用于,存储所述语料;所述算法分析模块用于,根据所述语料生成特征向量,将所述词向量输入预先建立的第一长短记忆网络模型,将所述第一长短记忆网络模型输出的第一信息和所述特征向量输入预先建立的第二长短记忆网络模型;根据所述第二长短记忆网络模型输出的第二信息确定所述语料的情感倾向。本发明至少一实施例一种情感分析设备,包括存储器和处理器,所述存储器存储有程序,所述程序在被所述处理器读取执行时,实现任一实施例所述的情感分析方法。本发明至少一实施例一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现任一实施例所述的情感分析方法。本实施例提供的方案,使用两层LSTM,而且加入了特征信息,相比只使用词向量作为输入的单层LSTM,单层LSTM只考虑了词语之间的关联(长关联和短关联),并不能完全考虑句子信息之间的长程关联,本实施例提供的方案,使用两层LSTM,考虑了句子信息之间的长程关联,能更准确的进行情感分析。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。图1为本发明一实施例提供的情感分析方法流程图;图2为本发明一实施例提供的第一LSTM细胞图;图3为本发明一实施例提供的第二LSTM细胞图;图4为本发明一实施例提供的情感分析示意图;图5为本发明一实施例提供的双向情感分析示意图;图6为本发明一实施例提供的情感分析系统框图;图7为本发明一实施例提供的情感分析方法流程图;图8为本发明一实施例提供的训练方法流程图;图9为本发明一实施例提供的情感分析方法流程图;图10为本发明一实施例提供的情感分析方法流程图;图11为本发明一实施例提供的情感分析方法流程图;图12为本发明一实施例提供的情感分析设备框图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本申请中,通过两层长短记忆网络(LongShort-TermMemory,简称LSTM)进行情感分析。如图1所示,本发明一实施例提供一种情感分析方法,包括:步骤101,根据语料生成词向量;步骤102,根据所述语料生成特征向量,将所述词向量输入预先建立的第一LSTM模型,将所述第一LSTM模型输出的第一信息和所述特征向量输入预先建立的第二LSTM模型;步骤103,根据所述第二LSTM模型输出的第二信息确定所述语料的情感倾向。本实施例提供的方案,使用两层LSTM(第一LSTM和第二LSTM),相比只使用词向量的单层LSTM,单层LSTM只考虑了词语之间的关联(长关联和短关联),并不能完全考虑句子信息之间的长程关联,本实施例提供的方案,考虑了句子信息之间的长程关联,能更准确的进行情感分析。其中,所述步骤101之前还包括:步骤100,将待分析的目标信息预处理成预设格式的数据作为所述语料。所述目标信息比如互联网数据,所述互联网数据比如微博正文,微博评论、微信公众号正文、微信评论、商品评价、新闻正文、新闻评论等等。在一实施例中,步骤100中,将待分析的目标信息预处理成预设格式的数据包括:清洗所述目标信息中包含的预设信息,所述预设信息比如为图片、语音等,将清洗后的目标信息规整为预设格式的结构化数据,每个结构化数据作为一个语料。需要清洗掉的信息可以预先定义。当然,也可以不进行清洗,直接从目标信息中提取信息生成结构化数据。其中,可以先判断目标信息中是否存在预设信息,如果存在,则清洗预设信息;或者,不作判断,直接对目标信息进行清洗。一种结构化数据的格式如表1所示,可包括如下字段:标识(id),该字段为语料的序列号;语料内容,该字段为语料的内容,语料的内容包括表情符号等信息。语料内容与目标信息可能存在差别,比如,语料内容中去除了目标信息中的图片(非表情符号)、语音等等。语料类型,指示该语料包含以下至少之一:正文、正文的评论和评论的回复;属主,指语料的发布者,该字段为可选字段;时间,指语料的发布时间,该字段为可选字段。表1结构化数据字段说明以微博为例,一个微博正文经过预处理后可以作为一条语料,该微博正文的每条评论经过预处理后可以作为一个语料,评论的回复经过预处理后可以作为一个语料。当然,也可以将微博正文及其评论作为一个语料,或者,将微博评论及评论的回复作为一个语料,等等。其中,语料可以存储在数据库中,多条关联的语料可以按预设方式存储。比如,正文对应的语料,正文的评论对应的语料,评论的回复对应的语料依次存储在连续的地址中。或者,在评论对应的语料中增加指示字段,该指示字段可以携带与该评论关联的正文对应的语料的ID,表示该评论为该语料ID指示的语料对应的正文的评论,在评论的回复对应的语料中增加指示字段,该指示字段可以携带与该评论的回复关联的评论对应的语料的ID,表示该评论的回复为该语料ID指示的语料对应的评论的回复。需要说明的是,上述结构化数据仅为示例,可以根据需要为其他结构,比如只包括语料内容和语料类型。生成词向量是指将词转化为计算机能理解的向量。在一实施例中,所述步骤101中,根据语料生成词向量包括:将所述语料分词后生成一个或多个第一词向量,将所述第一词向量作为所述词向量;或,将所述语料分词后生成一个或多个第一词向量,基于所述语料所属的话题或分类生成第二词向量,将第一词向量和所述第二词向量组合得到所述词向量。其中,将第一词向量和所述第二词向量组合得到所述词向量的组合方式可以是将二者进行拼接,语料所属的话题或分类可以预先进行存储。比如,使用word2vec,GloVe等生成词向量;例如,我不相信分词后为“我”“不”“相信”,“我”的词向量为[0.59,…,0.70,…],“不”的词向量为[0.32,…,0.60,…],“相信”的词向量为[0.19,…,0.55,…]。语料分词即将语料(通常为句子)分成独立的一个个词语。例如,语料“我不相信”其所属的话题为“社会”,分词后为“我”“不”“相信”,则将“我”的词向量和“社会”的词向量进行拼接,即拼接得到的词向量[我的词向量,社会的词向量]作为第一LSTM的输入,将“不”的词向量和“社会”的词向量进行拼接作为第一LSTM的输入,将“相信”的词向量和“社会”的词向量进行拼接作为第一LSTM的输入。在一实施例中,步骤102中,所述特征信息包括以下至少之一:提取社交评论特征、情感表征特征和宏观社会特征,所述社交评论特征指示该语料的评论信息中是否存在该语料发布者的回复,所述情感表征特征指示所述语料及其评论信息中的第一类情感符号和第二类情感符号数量关系;所述宏观社会特征指示所述语料中是否出现提示其他用户查看该语料的提示用户信息。其中,语料的评论信息即该语料对应的目标信息的评论信息;以微博为例,由正文处理得到的语料,其评论信息即针对该正文的评论信息。其中,可以对情感符号(比如表情符号)进行分类,第一类情感符号和第二类情感符号,第一类比如为积极的情感符号,第二类比如为消极的情感符号,具体哪些情感符号为积极情感符号,哪些情感符号为消极情感符号可预先定义。以微博为例:社交评论特征为:分析微博正文及其回复评论信息,在评论信息中是否存在微博正文发布者的回复。一般情况下,正文发布者会坚持他一贯的情感倾向。如果存在微博正文发布者的回复,则该社交评论特征为1,如果不存在微博正文发布者的回复则该社交评论特征为0。情感表征特征为:分析微博正文及其评论信息,收集这些信息中的表情符号,参照表情分类组(比如将表情符号分为两类,积极表情符号和消极表情符号),如果积极表情符号数量多于消极表情符号数量,则该特征为1,相反则为0。特别地,如果没有表情符号,可以设置该特征为0。宏观社会特征:分析微博正文序列,如果在分析长度阈值内,不同微博正文中出现微博特定的提示用户信息“@用户名”,提示微博发布者用户关注,那么该特征为1,相反则为0。根据特征信息构造特征向量,比如,比如社交评论特征为1,情感表征特征为1,宏观社会特征为0,则特征向量为[1,1,0]。当然,社交评论特征、情感表征特征和宏观社会特征也可以按其他顺序构造特征向量,本申请对此不作限定。需要说明的是,本申请中,特征的取值为1或0仅为示例,可以根据需要取为其他值。另外,可以根据需要提取更多或更少特征。另外,上述特征信息的提取仅为示例,可以根据其他与情感倾向相关的信息生成特征信息。在一实施例中,所述词向量包括词向量x1(0)~x1(N-1);步骤102中,将所述词向量输入预先建立的第一长短记忆网络模型,将所述第一长短记忆网络模型输出的第一信息和所述特征向量输入预先建立的第二长短记忆网络模型包括:将词向量x1(0)输入所述第一长短记忆网络模型,将所述第一长短记忆网络模型输出的第一信息和所述特征向量输入所述第二长短记忆网络模型;将词向量x1(0)输入所述第一长短记忆网络模型,将所述第一长短记忆网络模型输出的第一信息和所述特征向量输入所述第二长短记忆网络模型;依次类推,将词向量x1(N-1)输入所述第一长短记忆网络模型,将所述第一长短记忆网络模型输出的第一信息和所述特征向量输入所述第二长短记忆网络模型,获取所述第二长短记忆网络模型输出的第二信息。具体的,假设根据语料生成的词向量为N个,依次为x1(0)~x1(N-1),语料的特征信息为d;将x1(0)输入所述第一LSTM模型,输出h10,将h10和d输入所述第一LSTM模型,输出h20;将x1(1)和h10输入所述第一LSTM模型,输出h11,将h11、d、h20输入所述第二LSTM模型,输出h21;以此类推,将x1(N-1)和h1N-2输入所述第一LSTM模型,输出h1N-1,将h1N-1、d、h2N-2输入所述第二LSTM模型,输出h2N-1;所述步骤103中,根据所述第二LSTM模型输出的第二信息确定所述语料的情感倾向包括:根据所述h2N-1确定所述语料的情感倾向。在一实施例中,第一LSTM模型的细胞状态图如图2所示,第一LSTM模型如下:其中,所述为所述第一LSTM模型的遗忘门t时刻的状态向量f1(t)的第i个元素,所述σ为sigmod单元函数,所述为权重向量b1f的第i个元素、所述为权重矩阵U1f第i行、第j列的元素,所述为权重矩阵W1f的第i行、第j列的元素,所述为所述第一LSTM模型的t时刻的输入向量x1(t)的第j个元素,即t时刻输入的所述词向量第j个元素;所述为所述第一LSTM模型t-1时刻的输出向量h1(t-1)的第j个元素;所述为所述第一LSTM模型的输入门t时刻的状态向量g1(t)的第i个元素,所述为权重向量b1g的第i个元素,所述为权重矩阵U1g第i行、第j列的元素,所述为权重矩阵W1g的第i行、第j列的元素;所述为所述第一LSTM模型的输出门t时刻的状态向量q1(t)的第i个元素,所述为权重向量b1q的第i个元素,所述为权重矩阵U1q第i行、第j列的元素,所述为权重矩阵W1q的第i行、第j列的元素;所述为所述第一LSTM模型t时刻的中间状态向量(即LSTM模型的cell(细胞)状态)s1(t)的第i个元素,所述为所述第一LSTM模型t-1时刻的中间状态向量s1(t-1)的第i个元素,所述b1i为权重向量b1的第i个元素,所述U1i,j为权重矩阵U1第i行、第j列的元素,所述W1i,j为权重矩阵W1的第i行、第j列的元素;s1(t-1)未在图2中示出。所述为所述第一LSTM模型t时刻的输出向量h1(t)的第i个元素;所述第一信息即为所述第一LSTM模型的t时刻输出的h1(t),tanh为双曲正切函数。图3为第二LSTM模型的细胞状态图,第二LSTM模型如下:其中,所述为所述第二LSTM模型的遗忘门t时刻的状态向量f2(t)的第i个元素,所述σ为sigmod单元函数,所述为权重向量b2f的第i个元素、所述为权重矩阵U2f第i行、第j列的元素,所述为权重矩阵W2f的第i行、第j列的元素,所述为权重矩阵V2f的第i行、第j列的元素,所述为所述第二LSTM模型的t时刻的输入向量x2(t)的第j个元素,即t时刻输入到所述第二LSTM模型的所述第一信息的第j个元素;所述为所述第二LSTM模型t-1时刻的输出向量h2(t-1)的第j个元素;所述为t时刻输入到所述第二LSTM模型的所述特征向量d(t)的第j个元素;所述为所述第二LSTM模型的输入门t时刻的状态向量g2(t)的第i个元素,所述为权重向量b2g的第i个元素、所述为权重矩阵U2g第i行、第j列的元素,所述为权重矩阵W2g的第i行、第j列的元素;所述为权重矩阵V2g的第i行、第j列的元素;所述为所述第二LSTM模型的输出门t时刻的状态向量q2(t)的第i个元素,所述为权重向量b2q的第i个元素,所述为权重矩阵U2q第i行、第j列的元素,所述为权重矩阵W2q的第i行、第j列的元素,所述为权重矩阵V2q的第i行、第j列的元素;所述为所述第二LSTM模型t时刻的中间状态向量s2(t)的第i个元素,所述为所述第二LSTM模型t-1时刻的中间状态向量s2(t-1)的第i个元素,所述b2i为权重向量b2的第i个元素,所述U2i,j为权重矩阵U2第i行、第j列的元素,所述W2i,j为权重矩阵W2的第i行、第j列的元素,所述V2i,j为权重矩阵V2的第i行、第j列的元素;所述为所述第二LSTM模型t时刻的输出向量h2(t)的第i个元素;所述第二信息即为所述第二LSTM模型t时刻输出的h2(t),tanh为双曲正切函数。需要说明的是,上述公式所示的第一LSTM模型和第二LSTM模型仅为示例,可以将其他构造的LSTM模型应用到本申请中。在一实施例中,所述第一LSTM模型和第二LSTM模型基于如下方式建立:获取训练语料,对所述训练语料进行情感倾向标注后,基于所述训练语料对第一初始LSTM模型和第二初始LSTM模型进行训练,得到所述第一LSTM模型和所述第二LSTM模型。其中,步骤103中输出的情感倾向分可以为积极和消极两类,当然,也可以分为更多类,比如非常积极、一般积极、一般消极、非常消极等等,又比如积极,消极,乐观,悲伤等,或者,采取打分制,从消极到积极为0-10分,分数越高,代表越积极,等等。一种训练方式如下:按照公式(1)-公式(5)构建第一LSTM初始模型(也称词语级LSTM),按照公式(6)-公式(10)构建第二LSTM初始模型(也称句子级LSTM);初始时,b1,b1f,b1g,b1q可取值为0,U1,U1f,U1g,U1q,W1,W1f,W1g,W1q可以利用正态分布随机取值,构成参数矩阵。b2,b2f,b2g,b2q可取值为0,U2,U2f,U2g,U2q,W2,W2f,W2g,W2q,V2,V2f,V2g,V2q可以利用正态分布随机取值,构成参数矩阵。需要说明的是,上述初始值仅为示例,可以根据需要取其他值,比如根据经验取初始值,或者,将一个场景下已训练好的值作为另一个场景下的初始值,等等。设定算法超参数,超参数如表2所示,超参数的取值可根据需要设定。表2训练超参数组字段说明将训练语料分词转化为词向量,得到第一词向量,将训练语料所属的话题或分类信息转化为词向量,得到第二词向量,将第一词向量和第二词向量组合后作为第一LSTM模型的输入量;比如,可以运用word2vec算法将词语转化为词向量;提取特征信息(比如前面提到的社交评论特征、情感表征特征、宏观社会特征),根据特征信息构造特征向量d;进行训练时,需要输入的信息如表3所示,包括含训练语料和表情分类组,其中,表情分类组是指对表情符号进行分类,一类为积极表情符号,一类为消极表情符号,提取情感表征特征时,可以根据表情分类组中的分类来提取。表3训练语料输入说明训练的损失函数采用交叉熵,可以定义为其中为语料i标注的情感倾向的分布。当然,也可以采用其他损失函数,本申请对此不作限定。将训练语料按照预设比例划分为训练集,验证集和测试集(比如训练集80%,验证集10%,测试集10%),使用训练语料对上述LSTM模型进行训练,对模型中的参数进行优化,直到训练结束,保存此时得到的第一LSTM模型和第二LSTM模型。参数优化训练方法可以采用AdaDelta算法、AdaGrad算法,Adam算法等。具体的,将训练语料的词向量(直接根据语料得到的词向量,或者语料的词向量和话题的词向量组合得到的词向量)输入第一LSTM初始模型,输出第一信息,将第一信息和特征向量输入第二LSTM初始模型,输出第二信息,根据第二信息确定情感倾向,优化参数,直到输出的情感倾向与预先标注的情感倾向一致。输出情感倾向P(i)=Softmax(h2i),输出的情感倾向为预定义的情感倾向类别(例如积极,消极,乐观,悲伤等)。模型训练完毕后,输入待分析的语料,输出情感倾向(情感倾向为预先定义好的情感倾向种类)。输入的待分析语料的格式可以如表4所示:表4待分析的语料的格式说明在一实施例中,步骤103中,根据所述第二信息确定所述语料的情感倾向包括:将所述第二信息输入Softmax函数或RELU函数,由所述Softmax函数或RELU函数的输出所述语料的情感倾向。需要说的是,Softmax函数或RELU函数仅为示例,可以根据需要使用其他分类器。图4为情感分析的流程图。如图4所示,词向量401输入到第一LSTM,第一LSTM输出第一信息402,第一信息402和特征向量d输入到第二LSTM,第二LSTM输出第二信息403,将第二信息403输入Softmax函数,Softmax函数的输出即为情感倾向。需要说明的是,图4中,对一条语料,其特征信息只有一个,因此,图中的d(t-1),d(t),d(t+1)相同,均为该语料的特征信息。h1(t-2)和h2(t-2)可以设置一初始值。举例来说,比如语料内容为“我不相信”,不考虑语料所属的话题的情况下,则:A:在第一LSTM模型中输入“我”的词向量,第一LSTM模型输出h1(0),将h1(0)和“我不相信”的特征信息输入到第二LSTM模型,第二LSTM模型输出h2(0);B:输入“不”的词向量和h1(0)至第一LSTM模型,第一LSTM模型输出h1(1),将h2(0)、h1(1)和“我不相信”的特征信息输入到第二LSTM模型,第二LSTM模型输出h2(1);C:输入“相信”的词向量和h1(1)至第一LSTM模型,第一LSTM模型输出h1(2),将h2(1)、h1(2)和“我不相信”的特征信息输入到第二LSTM模型,第二LSTM模型输出h2(2);D:将h2(2)输入到Softmax函数,Softmax函数的输出即为“我不相信”的情感倾向。考虑语料所属的话题的情况下,假设该语料所属的话题为:“社会”,则:A:将“我”的词向量和“社会”的词向量组合得到的词向量输入第一LSTM模型,第一LSTM模型输出h1(0),将h1(0)和“我不相信”的特征信息输入到第二LSTM模型,第二LSTM模型输出h2(0);B:将“不”的词向量和“社会”的词向量进行组合所述的词向量,以及h1(0)输入至第一LSTM模型,第一LSTM模型输出h1(1),将h2(0)、h1(1)和“我不相信”的特征信息输入到第二LSTM模型,第二LSTM模型输出h2(1);C:将“相信”的词向量和“社会”的词向量进行组合所述的词向量,以及h1(1)输入至第一LSTM模型,第一LSTM模型输出h1(2),将h2(1)、h1(2)和“我不相信”的特征信息输入到第二LSTM模型,第二LSTM模型输出h2(2);D:将h2(2)输入到Softmax函数,Softmax函数的输出即为“我不相信”的情感倾向。需要说明的是,LSTM模型需要使用前一次的输出作为本次的输入(比如步骤B中,需要h1(0)作为第一LSTM模型的输入),如果本次是第一次,则前一次的输出使用一初始值,该初始值可以根据需要设置。本实施例提供的方案,相对于只使用词向量的单层LSTM,除了考虑词之间的关联,还考虑了句子之间的关联,比如,在步骤C中,第二LSTM模型根据h1(2)(基于词“我”“不”“相信”作出的分析)和h2(1)(基于词“我”“不”作出的分析)进行后续分析。而如果只使用单层LSTM,步骤C中,根据h1(1)(基于词“我”“不”作出的分析)和“相信”的词向量进行后续分析,只考虑了词之间的关联,本申请提供的方案,考虑了句子之间的关联,另外,通过提取特征信息加入了多媒体信息(比如表情符号)所表示的情感倾向,能更准确的反映情感倾向。需要说明的是,图中仅示出了三层(每个时刻的LSTM模型代表一层),实际的层数由输入的语料的词数决定。在一实施例中,所述将所述词向量输入预先建立的第一长短记忆网络模型,将所述第一长短记忆网络模型输出的第一信息和所述特征向量输入预先建立的第二长短记忆网络模型包括:将所述词向量x1(0)~x1(N-1)从x1(0)至x1(N-1)依次输入所述第一长短记忆网络模型,将所述第一长短记忆网络模型输出的第一信息和所述特征向量输入所述第二长短记忆网络模型;获取词向量x1(N-1)输入所述第一长短记忆网络模型后,所述第二长短记忆网络模型输出的第二正向信息;将所述词向量x1(0)~x1(N-1)从x1(N-1)至x1(0)依次输入所述第一长短记忆网络模型,将所述第一长短记忆网络模型输出的第一信息和所述特征向量输入所述第二长短记忆网络模型;获取词向量x1(0)输入所述第一长短记忆网络模型后,所述第二长短记忆网络模型输出的第二反向信息;所述根据所述第二长短记忆网络模型输出的第二信息确定所述语料的情感倾向包括:将第二正向信息和第二反向信息组合获得所述组合信息,根据所述组合信息确定所述语料的情感倾向。如图5所示,区域501为从语料中按照正序提取词向量,依次输入到第一LSTM模型,区域502中为从语料中按照倒序提取词向量,依次输入到第一LSTM模型,将区域501中的第二LSTM模型的输出和区域502中第二LSTM的输出组合后得到第二信息,将第二信息输入到Softmax函数,Softmax函数的输出即为情感倾向。组合方式比如为将区域501中的第二LSTM模型的输出和区域502中第二LSTM的输出进行拼接。举例来说,比如语料内容为“我不相信”,在区域501中的第一LSTM模型中依次输入“我”“不”“相信”的词向量,在区域502中的第一LSTM模型中则按反序,依次输入“相信”“不”“我”的词向量,将区域501的第二LSTM模型的输出和区域502的第二LSTM模型的输出进行组合得到第二信息,将第二信息输入到Softmax函数,Softmax函数的输出即为“我不相信”的情感倾向。如果考虑语料所属的话题或分类,则在区域501中的第一LSTM模型中依次输入“我”的词向量与该语料所属的话题的词向量的组合,“不”的词向量与该语料所属的话题的词向量的组合,“相信”的词向量与该语料所属的话题的词向量的组合,在区域502中的第一LSTM模型中则按反序,依次输入“相信”的词向量与该语料所属的话题的词向量的组合,“不”的词向量与该语料所属的话题的词向量的组合,“我”的词向量与该语料所属的话题的词向量的组合。在一实施例中,还基于话题或分类对情感倾向进行统计,并输出每个话题或分类的综合情感倾向占比。当然,也可以不进行统计,直接输出每个语料的情感倾向。本发明一实施例提供一种情感分析系统,如图6所示,所述情感分析系统包括:数据处理模块601、存储模块602和算法分析模块603,其中:所述数据处理模块601用于,根据语料生成词向量;所述存储模块602用于,存储所述语料;该存储模块可以是分布式文件系统;如HDFS(HadoopDistributedFileSystem,Hadoop分布式文件系统),MongoDB等;所述算法分析模块603用于,根据语料生成词向量,根据所述语料生成特征向量,将所述词向量输入预先建立的第一LSTM模型,将所述第一LSTM模型输出的第一信息和所述特征向量输入预先建立的第二LSTM模型,根据所述第二LSTM模型输出的第二信息确定所述语料的情感倾向。在一实施例中,所述算法分析模块603包括训练单元6031和分析单元6032,其中:所述数据处理模块602还用于,对所述语料进行情感倾向标注,作为训练语料;所述训练单元6031用于,基于所述训练语料对预设的第一初始LSTM模型和第二初始LSTM模型进行训练,得到所述第一LSTM模型和所述第二LSTM模型;可以定时进行训练;所述分析单元6032用于,根据所述语料生成特征向量,将所述词向量输入所述第一LSTM模型,将所述第一LSTM模型输出的第一信息和所述特征向量输入所述第二LSTM模型。在一实施例中,所述分析单元6032还用于,统计每个话题或分类下各语料的情感倾向。在一实施例中,所述系统还包括展示模块604,用于显示所述语料的情感倾向,或者,显示话题或分类的情感倾向,比如,对话题下的所有语料的情感倾向进行统计,输出不同情感倾向的占比等。具体如何进行训练和具体如何获得情感倾向请参考方法实施例,此处不再赘述。在一实施例中,所述数据处理模块包括数据抓取单元6011和数据预处理单元6012,其中:所述数据抓取单元6011用于,获取目标信息;该模块可以分布式布置,即可以分别配置在多个位置。所述数据预处理单元6012用于,将目标信息预处理成预设格式的数据作为所述语料,存储在所述存储模块;存储模块可以是分布式文件系统。定时启动情感分析任务(当然,也可以非定时启动,比如,接收到启动指令后启动,或者,满足触发条件后启动,等等),载入算法训练后所得的模型文件,输入语料数据,得到每条语料的情感倾向,以话题为单元统计情感倾向,并进行展示。下面通过具体实例进一步说明本申请。实例一在大众日常生活中使用的微博,微信朋友圈和互联网网站当中会产生丰富的互联网资料。为了实现网络上的社会治安监督和社会舆论引导有效执行,实时分析和追踪大众关注点和社会实时舆论动态是非常必要的。如图7所示,本实施例提供一种情感分析方法,包括:步骤701,使用分布式爬虫抓取微博内容以及微博下的评论,微信朋友圈内容以及评论;步骤702,对抓取到的数据进行预处理,将预处理后的数据结构化存储在HDFS中,每个结构化数据作为一个语料。一种存储的格式如表5所示。步骤703,对部分语料进行情感倾向标注,作为训练语料。一种标注方式如下表6所示。需要说明的是,表6中的标注方式仅为示例,可以根据需要标注为更多情感倾向。步骤704,建立第一LSTM初始模型,第二LSTM初始模型,将训练语料输入第一LSTM初始模型和第二LSTM初始模型,进行训练,得到第一LSTM模型和第二LSTM模型,模型的超参数如表7所示。在一实施例中,语料所属的主题可由直接由微博分类信息获取,例如明星,科技,社会等。输入的表情信息可根据微博自带的表情进行预分类。损失函数为交叉熵,训练平台选用Caffe2。表5数据存储格式表6情感倾向标注表7实例一超参数设置表参数类型描述dropout_ratedouble设置为0.5batch_sizeint设置为3word_embedding_dimint设置为256length_training_textint设置为5需要说明的是,上述超参数取值仅为示例,可以根据需要设为其他值。步骤705,将待分析的语料输入,调用步骤704中得到的第一LSTM模型和第二LSTM模型进行情感分析,呈现分析结果;举例如下表8。表8分析结果内容情感倾向优惠买:看之前新闻评论说她在作秀不知道大家怎么看负向波杰克马克:好暖的姐姐,亲情的力量正向在一实施例中,步骤705中可以针对话题进行统计,统计某个话题下各微博及其评论的情感倾向。在一实施例中,如图8所示,步骤704中的训练过程包括:步骤801:将语料内容句子分词,将词语转化为词向量;并与语料所属的话题的词向量进行拼接,形成输入向量。需要说明的是,在另一实施例中,也可以直接使用语料内容分词的词向量,不使用话题的词向量;比如,可以运用word2vec算法将词语转化为词向量;步骤802:利用上述公式(1)(2)(3)(4)(5)构建第一LSTM,其中的参数b1、b1f、b1g、b1q初始化为所有元素为0的向量,U1,U1f,U1g,U1q,W1,W1f,W1g,W1q可以利用正态分布随机取值,构成参数矩阵;输出第一信息;步骤803:提取特征,按照所述的三种特征(社交评论特征,情感表征特征,宏观社会特征),提取特征构造特征向量d;步骤804:利用公式(6)(7)(8)(9)(10)构建第二LSTM,其中所述的输入量X2为步骤802输出的第一信息,d为步骤803中的特征向量。参数b2,b2f,b2g,b2q初始化为所有元素为0的向量,U2,U2f,U2g,U2q,W2,W2f,W2g,W2q,V2,V2f,V2g,V2q利用正态分布随机取值,构成参数矩阵;步骤805,定义超参数取值如表7所示,训练的损失函数如公式(11)所示,将训练语料按照预设比例分为训练集,验证集和测试集进行训练,根据训练方法迭代指定步数后输出算法模型,所述指定步数比如为1000步,当然,此处仅为示例,可以根据需要迭代其他步数。本实施例提供的方案,能够准确分析网民对话题的态度,追踪社会实时舆论动态。实例二电子商务的发挥推动着越来越多的商品生产者直接将其生产的商品在网上进行售卖,例如汽车、家电及食品等。消费者购买商品后,会直接在商品页发表评论。如图9所示,包括:步骤901:针对特定的商品,分别收集其在不同电商平台(例如淘宝,京东,苏宁电商,当当等)的买家评论;步骤902:由于数据量巨大,可以采用分布式部署数据处理模块,分别预处理数据,将数据规整存储于分布式数据库HBase。本实施例中,可以根据用户的打分情况对评论进行情感倾向标注,比如,大于等于三星则为喜欢,反之,则为不喜欢;步骤903:针对电商数据资料,将算法部署于分布式的tensorflow平台上,用GPU加载计算,进行离线训练;分别建立第一初始LSTM模型和第二初始LSTM模型,本实施例中,超参数设置如表9所示,损失函数为交叉熵。在tensorflow平台上训练得到第一LSTM模型和第二LSTM模型。表9实例二超参数取值参数类型描述dropout_ratedouble设置为0.5batch_sizeint设置为5word_embedding_dimint设置为256length_training_textint设置为5步骤904:将待分析的语料按照表4的格式输入,调用步骤903中所得的第一LSTM模型和第二LSTM,分析语料的情感倾向,分类统计分析结果(比如,按照商品种类统计),生成报告。需要说明的是,在另一实施例中,也可以不进行统计,直接输出每个商品的评论的情感倾向。在一实施例中,所述步骤903包括:步骤9031:将语料内容句子分词,运用word2vec算法做计算,将词语转化为词向量,称为内容词向量;将评论对应的商品种类作为所属的话题,例如洗衣机、手机、微波炉等,根据话题生成话题词向量;将内容词向量与话题词向量拼接作为第一LSTM的输入;需要说明的是,在另一实施例中,也可以只使用内容词向量,不使用话题词向量;步骤9032:利用公式(1)(2)(3)(4)(5)构建第一LSTM,其中的参数b1,b1f,b1g,b1q初始化为所有元素为0的向量,U1,U1f,U1g,U1q,W1,W1f,W1g,W1q利用正态分布随机取值,构成参数矩阵;将词向量输入该词语级LSTM;当然,上述初始值仅为示例,可以根据需要取其他值,比如可以将其他场景下已训练好的第一LSTM模型的值作为本场景下的初始值。步骤9033:提取特征,比如前面提到的三种特征(社交评论特征,情感表征特征,宏观社会特征),构造特征向量d。需要说明的是,京东商城的评论回复中存在许多系统回复,或者客服标准化回复,可以在进行特征提取时过滤这些内容。对于社交评论特征,可将原文作者的追加评论视为作者的回复内容;商品评论中不存在表情信息时,可先自定义一个情感词典,将其中出现的情感词汇作为表情信息提取;步骤9034:利用上述公式(6)(7)(8)(9)(10)构建第二LSTM,其中输入量x2为步骤9032所述第一LSTM的输出,d为步骤9033所述的特征向量。其中的参数b2,b2f,b2g,b2q初始化为所有元素为0的向量,U2,U2f,U2g,U2q,W2,W2f,W2g,W2q,V2,V2f,V2g,V2q利用正态分布随机取值,构成参数矩阵;当然,上述初始值仅为示例,可以根据需要取其他值,比如可以将其他场景下已训练好的第二LSTM模型的值作为本场景下的初始值。步骤9035:定义超参数取值如表9所示,训练的损失函数如公式(11);步骤9036:将训练语料按照预设比例分为训练集,验证集和测试集对第一LSTM和第二LSTM进行训练,根据训练方法迭代指定步数后输出算法模型;比如,迭代1000步。本实施例可以针对特定商品进行消费者情感分析,以便更精确地确认消费者对产品的喜好,调整产品品质和销售策略。实例三智慧城市系统中,政府发布的政策信息时刻影响着社会大众的生产经营生活。本实例中,定向分析特定主题政策发布后,百姓对其的情感倾向,有助于政府调整完善其政策策略。如图10所示,包括:步骤1001:收集政府政策信息的调查问卷,包括网络在线调查问卷和走访调查问卷;步骤1002:将所述调查问卷录入系统;步骤1003:数据预处理模块预处理录入的调查问卷的数据,将数据规整存入数据库MySQL;需要说明的是,此处数据库MySQL仅为示例,可以根据需要使用其他数据库。步骤1004:启动算法训练建立第一LSTM模型和第二LSTM模型。本实施例中,在pyTorch平台构建第一的LSTM模型和第二的LSTM模型,损失函数为交叉熵,超参数取值如表10所示。需要说明的是,超参数取值仅为示例,可以根据需要取其他值。步骤1005:对待分析的语料进行情感分析,统计情感倾向,并反馈给相关政策发布部门。表10实例三超参数取值参数类型描述dropout_ratedouble设置为0.5batch_sizeint设置为3word_embedding_dimint设置为128length_training_textint设置为3在一实施例中,所述步骤1004包括:步骤10041:将语料内容句子分词,运用word2vec将词语转化为词向量;本实施例中,话题为政务信息分类,例如林业、卫生、医疗、住房等等,将话题的词向量与内容词向量进行拼接后作为第一LSTM的输入量;需要说明的是,在另一实施例中,也可以只使用内容词向量,不使用话题词向量;步骤10042:利用公式(1)(2)(3)(4)(5)构建第一初始LSTM模型,b1、b1f、b1g、b1q初始化为所有元素为0的向量,U1,U1f,U1g,U1q,W1,W1f,W1g,W1q可以利用正态分布随机取值,构成参数矩阵;其输入为上述词向量;步骤10043:提取特征信息,比如,提取三种特征(社交评论特征,情感表征特征,宏观社会特征),根据特征信息构造特征向量d;步骤10044:利用公式(6)(7)(8)(9)(10)构建第二LSTM,其中输入量X2为步骤10042第一LSTM的输出,d为步骤10043中的特征向量。参数b2,b2f,b2g,b2q初始化为所有元素为0的向量,U2,U2f,U2g,U2q,W2,W2f,W2g,W2q,V2,V2f,V2g,V2q利用正态分布随机取值,构成参数矩阵;步骤10045:定义超参数取值如表10所示,训练的损失函数如公式(11)所示。步骤10046:将训练语料按照预设比例分为训练集,验证集和测试集进行训练,根据训练方法迭代指定步数后输出第一LSTM模型和第二LSTM模型。实例四互联网新闻情报往往是社会舆论的引爆点,因此关注特定新闻所产生的社会影响变得极其重要。本实施例中,对新闻及新闻评论进行有效地情感分析,过滤和重点监测造成重大社会反响的新闻情报。如图11所示,包括:步骤1101:收集特定新闻的内容及评论信息;步骤1102:进行预处理,针对新闻的内容进行摘要提取,将长文本新闻转化为短文本信息;步骤1103:整合新闻摘要和评论;即,将新闻评论与新闻摘要进行对应;步骤1104:进行算法训练。本实施例中,在tensorflow平台构建第一初始LSTM和第二初始LSTM,损失函数为交叉熵,超参数设置如表11所示。表11实例四超参数设置参数类型描述dropout_ratedouble设置为0.5batch_sizeint设置为5word_embedding_dimint设置为256length_training_textint设置为5步骤1105:使用第一LSTM模型和第二LSTM模型对待分析的语料进行情感分析,分类统计分析结果,生成报告。在一实施例中,所述步骤1104包括:步骤11041:将语料(此处为新闻摘要)句子分词,运用word2vec算法计算,得到内容词向量;新闻对应的内容分类作为所属的话题,例如体育、财经、科技、社会、旅游等等,将话题转换为话题词向量,并与内容词向量进行拼接后,作为第一LSTM的输入量;需要说明的是,在另一实施例中,也可以只使用内容词向量,不使用话题词向量;步骤11042:利用公式(1)(2)(3)(4)(5)构建第一LSTM,其中的参数b1、b1f、b1g、b1q初始化为所有元素为0的向量,U1,U1f,U1g,U1q,W1,W1f,W1g,W1q可以利用正态分布随机取值,构成参数矩阵;步骤11043:提取特征信息,比如提取三种特征(社交评论特征,情感表征特征,宏观社会特征),基于所提取的特征信息构造特征向量d;步骤11044:利用公式(6)(7)(8)(9)(10)构建第二LSTM,其输入量X2为步骤11042所述的第一LSTM的输出,d为步骤11043中的特征向量。参数b2,b2f,b2g,b2q初始化为所有元素为0的向量,U2,U2f,U2g,U2q,W2,W2f,W2g,W2q,V2,V2f,V2g,V2q利用正态分布随机取值,构成参数矩阵;步骤11045:定义超参数取值如表11所示,训练的损失函数如公式(11)所示;步骤11046:将训练语料按照预设比例分为训练集,验证集和测试集进行训练,输出算法模型,即输出第一LSTM模型和第二LSTM模型。上面给出了多种场景下应用本申请进行情感分析的实现方案,需要说明的是,本申请不限于此,也可以用于其他场景下的情感分析,比如用于对APP的使用体验进行情感分析,等等。另外,也可以不对每个场景都进行算法训练,可以多个场景共用同一模型。本发明一实施例提供一种情感分析设备,包括存储器和处理器,所述存储器存储有程序,所述程序在被所述处理器读取执行时,实现上述任一实施例所述的情感分析方法。本发明一实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一实施例所述的情感分析方法。所述计算机可读存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1