本发明涉及一种对微博表情符号的情感计算方法,具体是涉及一种基于点互信息的微博表情符号情感计算方法。
背景技术:
随着互联网技术的飞速发展,微博作为一种新型信息传播载体迅速融入人们的生活。人们通过各种终端登陆微博平台,即兴发布包括文字、图片、视频、表情符号等信息来表达思想和情感。表情符号简明生动,能直观地通过各种表情和动作反映情感,因此人们越来越多地在微博文本中穿插表情符号来表达情感。
目前对微博情感分析的主流方式仍只针对文本信息而忽略表情符号,主要有两种思路:基于情感知识的方法和基于机器学习的方法。基于情感知识的方法主要通过情感词典或领域情感词库来判断文本的情感极性;基于机器学习的方法将情感分析看作传统的分类来抽取特征并进行分类。由于去除了表情符号,单纯依赖文字的情感分析明显会损失大量的情感信息,造成分析不够准确。
当前对于微博表情符号的处理方法主要包括:基于情感词计算微博文本的情感值进而推断表情符号的情感值。首先,对于每条包含情感词和表情符号的微博,找出其中的情感词,将情感词对应的情感值简单相加来得到微博的情感值;然后对于每个表情符号,分别计算包含该表情符号的正向情感微博和负向情感微博的正负情感总值,最后取绝对值较大的情感总值为该表情符号的情感值。
上述通过情感词和微博文本简单叠加来计算表情符号情感值时,存在以下不足:
(1)只通过简单相加来计算情感值,没有考虑情感词与表情符号之间的相关性信息;
(2)通过比较正负情感总值的绝对值大小来决定表情符号的情感值,直接舍弃了绝对值小的情感总值,损失了这部分情感对表情符号情感计算的贡献信息;
(3)最终得到的表情符号的情感值没有标准化处理,无法进行综合比较。
技术实现要素:
本发明的目的在于针对目前微博表情符号的情感计算方面的不足,提供一种基于点互信息的微博表情符号情感计算方法,该方法利用微博中的情感词与表情符号的共现情况来计算两者的点互信息,以此来决定情感词对表情符号情感值的影响力,再根据情感词的情感值,来计算表情符号的情感值并进行标准化。
为了达到上述的目的,本发明的构思如下:爬取大规模微博数据作为基本语料库并进行过滤和预处理;由表情符号与情感词在语料库微博中的共现情况来计算它们之间的点互信息,进而决定情感词对表情符号情感值的影响力,并结合情感词的情感值来加权计算表情符号的情感值;最终对表情符号的情感值进行标准化处理。
根据上述的构思,本发明采用下述技术方案:
一种基于点互信息的微博表情符号情感计算方法,其具体步骤如下:
1)爬取大规模微博数据并进行过滤,只保留同时包含表情符号和情感词的微博;
2)对每篇微博进行分词、停用词过滤的预操作,并对前接否定词、程度词的情感词进行组合操作并计算其情感值;
3)对预处理后的微博数据,抽取出“表情符号-情感词”共现对并组成共现对集合;
4)对于每个表情符号,计算它在“表情符号-情感词”共现对集合中与每个共现情感词的点互信息;
5)利用表情符号与共现情感词的点互信息以及情感词的情感值,计算每个表情符号的初始情感值;
6)对所有表情符号的初始情感值进行标准化处理,使其归一化到[-1,1]区间。
所述步骤4)中的表情符号与共现情感词的点互信息,其点互信息计算式如下:
其中,e为表情符号,we为与e共现的情感词,PMI(e;we)为e与we的点互信息,p(e,we)、p(e)和p(we)分别表示“e-we”共现对、e和we在“表情符号-情感词”共现对集合中出现的概率。
所述步骤5)中的表情符号的初始情感值,其初始情感值计算式如下:
其中,e为表情符号,REV(e)为e的初始情感值,wei为与e共现的情感词,PMI(e;wei)为e与wei的点互信息,EV(wei)为wei的情感值,该值源于大连理工大学信息检索研究室本体情感词典及否定词、程度词与情感词的组合情感值计算。
所述步骤6)中的表情符号情感值标准化,其标准化计算式如下:
NEV(e)=arctan(REV(e))·2/π
其中,e为表情符号,NEV(e)为e的标准化情感值,REV(e)为e的初始情感值,该标准化方法当对新数据进行标准化时,其他已标准化数据不会受影响。
本发明与现有的技术相比较,具有如下突出特点和优点:
第一,认为微博中情感词对其共现的表情符号的情感值具有一定的影响力,且正比于两者的点互信息,充分利用了微博中的相关性结构特征;第二,保证了所有与表情符号共现的情感词都能根据相关性参与表情符号情感值的计算中,这样的结果更加准确;第三,对表情符号的初始情感值进行了标准化处理,便于综合比较与后期使用。
附图说明
图1是本发明的一种基于点互信息的微博表情符号情感计算方法的流程图。
具体实施方式
以下结合附图对本发明的实施例作进一步的说明。
如图1所示,一种基于点互信息的微博表情符号情感计算方法,其具体步骤如下:
1)爬取大规模微博数据并进行过滤,只保留同时包含表情符号和情感词的微博;
2)对每篇微博进行分词、停用词过滤的预操作,并对前接否定词、程度词的情感词进行组合操作并计算其情感值;
3)对预处理后的微博数据,抽取出“表情符号-情感词”共现对并组成共现对集合;
4)对于每个表情符号,计算它在“表情符号-情感词”共现对集合中与每个共现情感词的点互信息;
5)利用表情符号与共现情感词的点互信息以及情感词的情感值,计算每个表情符号的初始情感值;
6)对所有表情符号的初始情感值进行标准化处理,使其归一化到[-1,1]区间。
所述步骤4)中的表情符号与共现情感词的点互信息,其点互信息计算式如下:
其中,e为表情符号,we为与e共现的情感词,PMI(e;we)为e与we的点互信息,p(e,we)、p(e)和p(we)分别表示“e-we”共现对、e和we在“表情符号-情感词”共现对集合中出现的概率。
所述步骤5)中的表情符号的初始情感值,其初始情感值计算式如下:
其中,e为表情符号,REV(e)为e的初始情感值,wei为与e共现的情感词,PMI(e;wei)为e与wei的点互信息,EV(wei)为wei的情感值,该值源于大连理工大学信息检索研究室本体情感词典及否定词、程度词与情感词的组合情感值计算。
所述步骤6)中的表情符号情感值标准化,其标准化计算式如下:
NEV(e)=arctan(REV(e))·2/π
其中,e为表情符号,NEV(e)为e的标准化情感值,REV(e)为e的初始情感值,该标准化方法当对新数据进行标准化时,其他已标准化数据不会受影响。
实施例
本实施例从新浪微博网站爬取约500万条微博数据作为基本语料库。
一种基于点互信息的微博表情符号情感计算方法,其步骤如下:
S1.从新浪微博网站爬取约500万条微博数据作为基本语料库,对语料库中的微博数据进行过滤,只保留同时包含表情符号和情感词的微博,例如“[哈哈][哈哈]这吉祥物好可爱啊!”,过滤后还剩约52万条微博;
S2.对每篇微博进行分词、停用词过滤等预操作,并对前接否定词、程度词的情感词进行组合操作并计算其情感值。例如,微博“[哈哈][哈哈]这吉祥物好可爱啊!”经处理后为“[哈哈][哈哈]吉祥物好可爱”,组合情感词“好可爱”的情感值为1.8*5=9.0;
S3.对预处理后的微博数据,抽取出“表情符号-情感词”共现对并组成共现对集合。例如,“[哈哈][哈哈]吉祥物好可爱”中有2个“[哈哈]-好可爱”共现对,语料库中一共有234个“[哈哈]-好可爱”共现对;
S4.对于每个表情符号,计算它在“表情符号-情感词”共现对集合中与每一个共现情感词的点互信息。例如,语料库中有1898770个“表情符号-情感词”共现对,表情符号“[哈哈]”、组合情感词“好可爱”出现次数分别为38329、4691,“[哈哈]-好可爱”共现对共有234个,则“[哈哈]”与“好可爱”的点互信息计算为:
其中,PMI([哈哈];好可爱)为“[哈哈]”与“好可爱”的点互信息,p([哈哈],好可爱)、p([哈哈])和p(好可爱)分别表示“[哈哈]-好可爱”共现对、“[哈哈]”和“好可爱”在“表情符号-情感词”共现对集合中出现的概率;
S5.利用表情符号与共现情感词的点互信息以及情感词的情感值,计算每一个表情符号的初始情感值。例如,利用S4中计算得到的表情符号“[哈哈]”与其所有共现词的互信息,“[哈哈]”的初始情感值计算为:
其中,REV([哈哈])为“[哈哈]”的初始情感值,wei为与“[哈哈]”共现的情感词,PMI([哈哈];wei)为“[哈哈]”与wei的点互信息,EV(wei)为wei的情感值;
S6.对所有表情符号的初始情感值进行标准化处理,使其归一化到[-1,1]区间。例如,表情符号“[哈哈]”的标准化情感值计算为:
NEV([哈哈])=arctan(REV([哈哈]))·2/π=arctan(2.90218751753)×2/π=0.78875227095
其中,NEV([哈哈])为“[哈哈]”的标准化情感值,REV([哈哈])为“[哈哈]”的初始情感值。
本文中表情符号标准化情感值的范围为[-1,1],由此可见,表情符号“[哈哈]”的情感值处于较高的正向情感区间,说明在实际应用中,表情符号“[哈哈]”主要用于较为积极正向的情感表达中。