一种基于深度学习的民航微博安保舆情情感分析方法与流程

文档序号:15445960发布日期:2018-09-14 23:22阅读:345来源:国知局

本发明属于自然语言处理中的文本情感分析技术领域,尤其涉及一种基于深度学习的民航微博安保舆情情感分析方法。



背景技术:

近年来,互联网上各类航班、机场炸弹威胁以及虚假恐怖信息呈高发势头。某些群众因对社会不满,往往在网上发布虚假威胁言论、谣言以及偏激语言等,面临恐怖威胁时,相比其它行业,民航业通常遭受更大伤害。微博因具有传播速度快、信息开放、影响广泛且发布者身份不易泄露的特点,是一种常见的恐怖信息传播途径。

情感分析是对带有情感色彩的文本进行处理、分析和应用的过程,它可以从文本数据中获取用户观点和情感倾向,有着重要的实用价值。情感分析的研究方法与技术手段通常与研究目标有关,总体来讲,现有研究成果多应用于产品领域或舆情分析领域,如公众对产品或事件的评价和意见。用于民航恐怖信息的情感分析方法极为少见,通过对与民航有关的微博文本进行情感分析,可以过滤出对民航安全有威胁的微博,从而锁定有犯罪倾向的重点用户。

目前,中文文本情感分析方法主要有基于语义理解和基于传统机器学习两类方法。但这两种方法应用于微博情感分析中主要存在以下问题:①基于语义理解的方法用构建基准褒贬词语库和定义表达规则的方法对语料进行模式匹配,对于表达方式复杂、不规则的微博文本处理上有很大的局限性。②基于传统机器学习的方法需要复杂的特征工程,耗费大量的人工成本。



技术实现要素:

为了解决上述问题,本发明的目的在于提供一种基于深度学习的民航微博安保舆情情感分析方法。

为了达到上述目的,本发明提供的基于深度学习的民航安保舆情情感分析方法包括按顺序进行的下列步骤:

(1)从网上大量的文本中筛选出与民航安保舆情相关的关键词,由这些关键词和对应的威胁强度值构成关键词库;

(2)将根据民航安保舆情关键词筛选出的微博文本以及对应的标签作为训练集,对训练集中的微博文本进行预处理操作和分词处理;每一微博文本由至少一个微博子句构成,标签分为威胁和无威胁两种;

(3)对由步骤(2)得到的分词后的微博文本进行词向量训练,得到词向量模型;

(4)构建卷积神经网络和长短时记忆网络的组合深度学习网络,并在组合深度学习网络后加入全连接层以及softmax层,共同构成组合深度学习分类模型;

(5)将训练集中分词后的微博文本输入到步骤(3)得到的词向量模型中,将微博文本向量化;

(6)将步骤(5)中获得的向量化后的微博文本以及对应的标签输入到组合深度学习模型中,训练组合深度学习分类模型的组合深度学习网络中的有无威胁文本分类器并保存

(7)将待分析的微博文本按照步骤(2)的方法进行预处理操作和分词处理后,通过步骤(3)获得的词向量模型进行微博文本向量化,然后输入到上述步骤(6)获得的有无威胁分类器中进行分类,最后针对判定为有威胁的微博文本进一步根据情感词典和规则计算威胁度分值;

(8)根据上述威胁度分值判定威胁度等级。

在步骤(1)中,所述的关键词分为地点词语和行为词语两类;其中行为词语有两个属性,第一个属性为威胁强度值,用于衡量该词语对民航安保的威胁程度,度量标准分为1,3,5,7,9五种强度;第二个属性为词语类型,词语类型分为两类,一类为直接型,即只出现这一个词语就能判定为对民航有威胁;另一类为间接型,即必须与地点词语同时出现才能判定出是否对民航安保有威胁。

在步骤(2)中,所述的对训练集中的微博文本进行预处理操作和分词处理的方法是:预处理操作包括去除微博文本中的网页链接、转发、回复微博时的用户昵称、特殊字符在内的噪声信息,保留无威胁微博文本中的话题标签,作为区分包含民航舆情关键词的微博文本是主观威胁言论还是新闻话题的重要特征;然后利用分词工具对上述预处理后的微博文本进行分词。

在步骤(3)中,所述的词向量训练采用word2vec算法中的skip_gram方法,保存用该方法训练得到的词向量模型。

在步骤(4)中,构建卷积神经网络和长短时记忆网络的组合深度学习网络,并在组合深度学习网络后加入全连接层以及softmax层,共同构成组合深度学习分类模型的方法是:利用不同的卷积核与输入层中的句子矩阵进行卷积操作;将同一尺寸卷积核下的特征值按时间顺序拼接起来,作为长短时记忆网络的输入,通过长短时记忆网络进一步获取微博文本的上下文关系特征;全连接层经过非线性变换后得到标签的得分向量;当标签的得分向量经过softmax层后,会计算出分类概率,最终得到分类的类别。

在步骤(5)中,所述的将微博文本向量化的方法是:在词向量模型中找到微博文本每个词语对应的词向量,然后将词向量拼接为句子矩阵。

在步骤(6)中,所述的将步骤(5)中获得的向量化后的微博文本以及对应的标签输入到步骤(4)获得的组合深度学习分类模型中进行训练,将训练好的模型称为有无威胁文本分类器的方法是:组合深度学习分类模型采用sgd优化技术并通过最小化交叉熵函数不断更新训练权重,对全连接层中的参数执行dropout操作以防止模型过拟合,根据训练集的规模选择合适的mini-batch大小,最终将训练得到的分类模型保存下来,用于直接对输入的微博文本进行分类。

在步骤(7)中,所述的计算威胁度得分的方法是:

1)提取出有威胁微博文本中的情感词,计算出每一微博子句的情感得分;

2)提取出有威胁微博文本中的表情符号,计算出每一微博子句的表情符号得分;并将上述情感得分和表情符号得分进行加权求和,得到每一微博子句的情感分值;

3)根据民航安保舆情关键词库,计算出微博文本的行为威胁得分;

4)将上述微博文本的情感分值和行为威胁得分进行加权求和,最终得到微博文本的威胁度得分。

在步骤(8)中,所述的根据威胁度分值判定威胁度等级的方法是:根据步骤(7)获得的威胁度分值,采用阈值法将有威胁的微博文本划分为高、中、低威胁等级。

本发明提供的基于深度学习的民航微博安保舆情情感分析方法具有以下优点:(1)本发明先利用文本分类器粗略过滤出有威胁的微博文本,然后利用民航舆情关键词库和句法规则计算出威胁度分值,提高了效率和准确率。(2)训练文本分类器时采用cnn和lstm组合的神经网络,避免了大量的人工特征工程并使得文本特征提取的更全面,分类准确率更高。

附图说明

图1为本发明提供的基于深度学习的民航微博安保舆情情感分析方法流程图。

图2为本发明中组合深度学习模型整体结构图。

具体实施方式

下面结合附图和具体实施例对本发明提供的基于深度学习的民航微博安保舆情情感分析方法进行详细说明。

如图1和图2所示,本发明提供的民航安保微博舆情情感分析方法包括按顺序进行的下列步骤:

(1)从网上大量的文本中筛选出与民航安保舆情相关的关键词,由这些关键词和对应的威胁强度值构成关键词库;

关键词分为地点词语和行为词语两类。其中地点词语包括机场、跑道、航站楼、航班等,行为词语包括炸机、劫机、霸机、空闹、斗殴、抗议、抽烟等;其中行为词语有两个属性,第一个属性为威胁强度值,用于衡量该词语对民航安保的威胁程度,度量标准分为1,3,5,7,9五种强度。第二个属性为词语类型,词语类型分为两类,一类为直接型,即只出现这一个词语就能判定为对民航有威胁,例如炸机、劫机、霸机、空闹等;另一类为间接型,即必须与地点词语同时出现才能判定出是否对民航安保有威胁,例如斗殴、抗议、抽烟等。只存在间接型行为词语时,不足以判断其对民航安保有威胁。

(2)将根据民航安保舆情关键词库筛选出的微博文本以及对应的标签作为训练集,对训练集中的微博文本进行预处理操作和分词处理;每一微博文本由至少一个微博子句构成,标签分为威胁和无威胁两种;

对训练集中的微博文本进行预处理操作,以去除微博文本中与情感表达无关的噪声信息,例如:1)网页链接,形如“http://t.cn/ecj0wn”等,由于不包含有用信息,因此在预处理时去除。2)转发、回复微博时的用户昵称、特殊字符等,形如“@李琼子:回复@草图匠老王:这事儿归精神病院管警察叔叔不管”,其中@符号后的微博用户名需要去除。注意保留无威胁文本中的话题标签,以作为训练有无威胁微博文本分类器的重要特征。之后利用分词工具对上述经过预处理后的微博文本中的每一微博子句进行分词而获得n个词语,分词工具使用python开源分词工具jieba。微博文本的对应标签采用人工标注的方式。

(3)对由步骤(2)得到的分词后的微博文本进行词向量训练,得到词向量模型;

应用深度学习的方法进行微博文本情感分析时,计算机不能直接识别中文字符,因此需要将微博文本进行向量化之后再作为训练数据送入组合深度学习网络中进行训练。word2vec算法可以在捕捉语境信息的同时压缩数据规模。谷歌提供的word2vec工具包含了cbow和skip_gram两种语言模型,这两种模型均包含输入层、投影层和输出层。cbow模型通过上下文来预测当前词语;skip_gram模型则通过当前词语来预测其上下文窗口内侧词语。本发明采用python工具包中gensim下的word2vec工具,采用skip_gram模型。设置训练词向量窗口尺寸为5,词向量维度为300。

(4)构建卷积神经网络和长短时记忆网络的组合深度学习网络,并在组合深度学习网络后加入全连接层以及softmax层,共同构成组合深度学习分类模型;

组合深度学习网络(c-lstm)中的卷积神经网络(cnn)可以有效获取词语与词语之间的关系,具有抽象局部特征的功能;长短时记忆网络(lstm)可以学习到长期依赖的信息,获取与语序有关的句法特征。具体操作是:当卷积核与句子矩阵卷积操作后,将同一尺寸卷积核下的特征按时间顺序拼接起来,作为lstm的输入。卷积核窗口尺寸分别为3、4、5,每种尺寸卷积核设定各100个,c-lstm的结构图如图2所示。全连接层将组合深度学习网络输出的向量进行非线性变换,这里非线性函数采用relu函数。softmax层将组合深度学习网络的输出映射到(0,1)区间内从而进行分类,该层的激活函数采用sigmoid。

(5)将训练集中分词后的微博文本输入到步骤(3)得到的词向量模型中,将微博文本向量化;

假设某一微博子句经过分词后包含有n个词语,每个词语的词向量维度为d,则整个微博子句表示为:

其中,表示行向量方向的拼接操作。因此,词向量拼接后得到句子矩阵x∈rd×n,作为组合深度学习网络的输入层。

(6)将步骤(5)中获得的向量化后的微博文本以及对应的标签输入到组合深度学习模型中,训练组合深度学习分类模型中的组合深度学习网络中的有无威胁文本分类器并保存;

c-lstm可分为词语特征获取以及句法特征获取两部分。词语特征获取是由cnn的卷积层完成的,通过设定三个不同尺寸的卷积核与微博文本的词向量矩阵进行一维卷积操作来提取特征,经过卷积操作后得到多组不同的特征图。卷积操作可以表示为:

其中,cij表示第i个卷积核在第j个词语处产生的特征图;f是一个非线性变换函数,本发明选用relu函数;xj表示维度从j到卷积窗口大小处的矩阵;xj表示句子矩阵x的第j个词语的词向量;表示矩阵的内积操作;表示在窗口dwin的范围内的参数矩阵;bi表示第i个卷积核的偏置值;h表示卷积核中参数的个数,是cnn的重要超参数之一,本方法选用100。根据对特征两端卷积操作方式的不同,卷积窗口有窄型和宽型两种不同的方式,对应卷积结果的维度分别为dm-dwin+1和dm+dwin+1,本发明所有卷积操作均采用宽卷积。若每种尺寸卷积核各选取n个特征图,则某尺寸下的总特征图可被表示为:

其中,w是由n个卷积核在位置j处卷积产生的新的特征向量,即将每次卷积操作得到的数值按顺序拼接起来,这些由cnn产生的新的特征向量已获得了词语的高层特征,将这些特征按顺序拼接起来依然保留着原子句的语序,作为lstm的输入。

rnn是一种时间递归神经网络,其可以描述动态时间行为,将状态在自身网络中循环递归,可以接受更广泛的时间序列结构输入。但是单纯的rnn因为无法处理随着递归、权重指数级爆炸或消失的问题,难以捕捉长期时间关联,而lstm使用一个记忆单元(memorycell)来代替rnn中的隐含层,可以很好地解决该问题。一个子句中各个词语按顺序进入网络可看作是不同时间序列的输入,lstm可捕捉长期的时间关联,即相距较远的词语之间的句法关联,获得句法特征。

lstm由输入门it、输出门ot、遗忘门ft以及记忆细胞ct组成,这些门用来决定如何更新当前的记忆细胞ct和当前隐层向量ht,当前隐层向量ht中包含所有lstm细胞的输出,利用形式化的语言描述lstm:

it=σ(wi·[ht-1,xt]+bi)(5)

ft=σ(wf·[ht-1,xt]+bf)(6)

qt=tanh(wq·[ht-1,xt]+bq)(7)

ot=σ(wo·[ht-1,xt]+bo)(8)

其中,ht-1为上一时刻隐层向量;xt为当前时刻输入向量;σ为logisticsigmoid函数,该函数使目标函数的输出值在[0,1]之间;tanh使目标函数的输出值在[-1,1]之间;是点乘操作。

(7)将待分析的微博文本按照步骤(2)的方法进行预处理操作和分词处理后,通过步骤(3)的词向量模型进行文本向量化,然后输入到上述的有无威胁分类器中进行分类,最后针对判定为有威胁的微博文本进一步根据情感词典和规则计算威胁度得分;

1)提取出有威胁微博文本中的情感词语,计算每一微博子句的情感得分;

将有威胁的微博文本经过分词后得到的词语与情感词典进行匹配,若存在,则选取为情感词语;如果词语没有出现在情感词典中,则用语义相似度的方法确定出情感词语。为了降低运算量,只保留了名词、动词和形容词作为备选情感词语。本发明利用知网语义相似度算法作为基准算法,其在衡量两个词语相似度上具有很好的效果。具体方法是对于两个词语w1和w2,如果词语w1有n个义项或概念:x1,x2…,xn,词语w2有m个义项或概念:y1,y2…,ym,规定词语w1和w2的相似度是各个义项或概念相似度的最大值,即:

两个义原的相似度计算公式为:

其中,λ是正的可变参数;d(x1,y2)表示义原x1和义原y2在层次树中的距离。

对于任意一个词语,可以通过计算该词语和情感词典中种子词语之间的相似度获得其情感倾向值,计算方法是:将词语w与正面情感词典中每个种子词语按式(11)及式(12)进行相似度计算得到该词语与正面种子词语的相似度,再将词语w与负面情感词典中每个种子词语进行相似度计算得到该词语与负面种子词语的相似度,通过比较它们之间的均差值,最终得到词语w的情感倾向值,计算公式如下:

其中,pi表示某一正面情感种子词语,nj表示某一负面情感种子词语;情感倾向值sw的取值范围为(-1,1)。设定阈值t,将计算出的情感倾向值sw与阈值t进行比较,以判定词语w是否属于情感词语。当|sw|>t时,判定词语w为情感词语。该情感词语的强度定为10·sw,从而与情感词典中的强度量级保持一致。

若微博子句中包含情感词语,且在其之前出现属于否定词典中的否定词语或修饰词典中的修饰词语时,按以下几种情况计算该微博子句的情感得分sa:

a)程度副词+情感词,情感词强度随程度副词强度改变,情感得分为:

sa=ma·ps·pa(14)

b)否定词+情感词,情感词的极性按照否定词的个数而改变,情感得分为:

sa=(-1)n·ps·pa(15)

c)程度副词+否定词+情感词,情感词极性反转,并且强度随程度副词强度改变,情感得分为:

sa=(-1)·ma·ps·pa(16)

d)否定词+程度副词+情感词,由于否定出现在程度副词之前,情感词极性反转后,情感词强度较直接否定有所减弱,引入第一权重因子z1=0.5,情感得分为:

sa=(-1)·ma·ps·pa·z1(17)

其中,ps表示情感词的强度,pa表示情感词极性,ma表示程度副词的强度。

若微博子句中包含连词词典中的转折连词,该微博子句属于复合句,考虑到句间的情感极性转移,按以下几种情况计算该微博子句的情感得分:

a)转折关系:当微博子句中出现“但是”、“然而”等语义反转词汇时,前一微博子句的极性将会发生改变,这两个微博子句的整体极性将与后一个微博子句相同,引入第二权重因子z2=-1,情感得分为:

sen=z2sen1+sen2(18)

b)递进关系:前后两个微博子句极性相同,强度增强,引入第三权重因子z3=1.5,情感得分为:

sen=z3(sen1+sen2)(19)

c)让步关系:后一个微博子句的极性会发生反转,整句的极性与前一微博子句相同,引入第四权重因子z4=-1,情感得分为:

sen=sen1+z4sen2(20)

其中,sen1表示前一微博子句的情感得分,sen2表示后一微博子句的情感得分;

2)提取有威胁微博文本中的表情符号,计算每一微博子句的表情符号得分;

新浪微博中提供了大量的表情符号,通过在微博中使用表情符号可以鲜明地表示出该微博文本的情感倾向。将表情符号作为情感分值的一项加权项,对于整条微博文本的情感倾向判定具有一定的修正作用。根据表情符号词典,查出该微博文本中所有表情符号的极性及强度,并记录每个表情符号的个数;令ni为第i个表情符号的个数,ei为该表情符号的强度,pi为该表情符号的极性,则微博文本中的表情符号得分的计算公式为:

将上述微博文本的情感得分和表情符号得分进行加权求和,即可得到每一微博文本的情感分值,公式如下:

s1=α·scoreemo+β·scoretext(22)

其中,α、β为可调权值,取值范围是(0,1),α+β=1,通过交叉测试集验证能够选择正确分类概率最大时的可调权值α、β;scoretext为该微博文本的情感得分,为各微博子句的情感得分的平均值。

3)根据上述步骤(1)构建的与民航安保舆情相关的关键词库,计算微博文本的行为威胁得分;

如上所述,关键词库中的关键词分为地点词语和行为词语两类。其中地点词语包括机场、跑道、航站楼、航班等,行为词语包括炸机、劫机、霸机、空闹、斗殴、抗议、抽烟等;其中行为词语有两个属性,第一个属性为威胁强度值,衡量了该词语对民航安保的威胁程度,度量标准分为1,3,5,7,9五种强度,与情感词语的强度度量一致。第二个属性为词语类型,词语类型分为两类,一类为直接型,即只出现这一个词语就能判定为对民航有威胁,例如炸机、劫机、霸机、空闹等;另一类为间接型,即必须与地点词语同时出现才能判定出是否对民航安保有威胁,例如斗殴、抗议、抽烟等。只存在间接型行为词语时,不足以判断其对民航安保有威胁。

行为威胁得分s2<l,b>的计算过程如下:查找微博文本中的行为词语b,然后根据关键词库判断该行为词语的类型;当该行为词语为直接型时,行为威胁得分s2<l,b>的值取该行为词语的强度;当该行为词语为间接型时,判断该微博文本中是否同时存在地点词语,如果同时存在,则行为威胁得分s2<l,b>的值取该行为词语的强度,如果不同时存在,行为威胁得分s2<l,b>为0。

4)将上述微博文本的情感分值以及行为威胁得分进行加权求和,最终得到微博文本的威胁度分值;

威胁度分值的计算公式如式(23)所示:

其中,d表示威胁度分值,范围在[-10,10]之间;s1表示微博文本的情感分值;s2<l,b>为行为威胁得分,l表示地点词语,b表示行为词语;

(8)根据上述威胁度分值判定威胁度等级;

采用阈值法将有威胁的微博文本划分为高、中、低威胁等级,具体如下:

1)-4.5≤d≤0时为低等威胁度。

2)-7≤d<-4.5时为中等威胁度。

3)-10≤d<-7时为高等威胁度。

表1列出了按照本发明方法对某些微博文本进行处理后得到的威胁度分值及威胁度等级。从表中可以看出,本发明方法能够较准确地判别出微博文本是否对民航安全具有威胁。

表1微博文本的威胁度判定结果

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1