哈哈,我又来了!!!
惊不惊喜!!!
意不意外!!!
首先跟各位亲说句抱歉,原先是要开课直播的,但是工作繁忙,实在是对不住了。不过,今天给大家伙带来之前预告的“微博评论文本情感分析——分析评论中的喜怒哀乐”(其实就是分词,再匹配罢了,只不过分类较多)。其次,我们简单介绍下情感分析:情感分析是对一段文本分析其表达情感的技术。比较简单的情感分析,能够辨别文本内容是积极的还是消极的(褒/贬义);比较复杂的情感分析,能够知道这些文字是否流露出恐惧、生气、惊喜、开心等更细微的情感(也是本文即将探讨的,细粒度情感分析)。
情感分析方法主要分为两种:
.词法分析;2.机器学习。在此篇推文中,我们使用到疫情期间的,00,(一百多万条)微博用户发表的微博文本内容作为分析语料,再基于“大连理工大学中文情感词汇本体”词典进行情感细分类。在这里,先对所用的情感词典做下详细介绍:、词典简介:中文情感词汇本体库是大连理工大学信息检索研究室在林鸿飞教授的指导下经过全体教研室成员的努力整理和标注的一个中文本体资源。该资源从不同角度描述一个中文词汇或者短语,包括词语词性种类、情感类别、情感强度及极性等信息。中文情感词汇本体的情感分类体系是在国外比较有影响的Ekman的6大类情感分类体系的基础上构建的。在Ekman的基础上,词汇本体加入情感类别“好”对褒义情感进行了更细致的划分。最终词汇本体中的情感共分为7大类2小类。构造该资源的宗旨是在情感计算领域,为中文文本情感分析和倾向性分析提供一个便捷可靠的辅助手段。中文情感词汇本体可以用于解决多类别情感分类的问题(七种情绪:“快乐”“美好”“惊喜”“悲伤”“恐惧”“厌恶”“愤怒”),同时也可以用于解决一般的倾向性分析的问题(好与坏的问题,比如本文好于坏的分类规则为:Positive=快乐+美好+惊喜的分值表示;Negative=愤怒+悲伤+恐惧+厌恶的分值表示,最后以分值大者定义文本为积极的或是消极的)。2、文本格式介绍:
情感词汇本体中,一般的格式为:表情感词汇本体格式举例
词语
词性种类
词义数
词义序号
情感分类
强度
极性
辅助情感分类
强度
极性
无所畏惧
idiom
PH
7
手头紧
idiom
NE
7
0
周到
adj
PH
5
言过其实
idiom
NN
5
2
其中,一个情感词可能对应多个情感,情感分类用于刻画情感词的主要情感分类,辅助情感为该情感词在具有主要情感分类的同时含有的其他情感分类。
3、情感分类及情感强度:
情感分类按照论文《情感词汇本体的构造》所述,情感分为7大类2小类。情感强度分为,3,5,7,9五档,9表示强度最大,为强度最小。[]情感分类如下表所示:
编号情感大类情感类例词[]-乐快乐(PA)喜悦、欢喜、笑眯眯、欢天喜地2安心(PE)踏实、宽心、定心丸、问心无愧3[2]-好尊敬(PD)恭敬、敬爱、毕恭毕敬、肃然起敬4赞扬(PH)英俊、优秀、通情达理、实事求是5相信(PG)信任、信赖、可靠、毋庸置疑6喜爱(PB)倾慕、宝贝、一见钟情、爱不释手7祝愿(PK)渴望、保佑、福寿绵长、万寿无疆8[3]-怒愤怒(NA)气愤、恼火、大发雷霆、七窍生烟9[4]-哀悲伤(NB)忧伤、悲苦、心如刀割、悲痛欲绝0失望(NJ)憾事、绝望、灰心丧气、心灰意冷疚(NH)内疚、忏悔、过意不去、问心有愧2思(PF)思念、相思、牵肠挂肚、朝思暮想3[5]-惧慌(NI)慌张、心慌、不知所措、手忙脚乱4恐惧(NC)胆怯、害怕、担惊受怕、胆颤心惊5羞(NG)害羞、害臊、面红耳赤、无地自容6[6]-恶烦闷(NE)憋闷、烦躁、心烦意乱、自寻烦恼7憎恶(ND)反感、可耻、恨之入骨、深恶痛绝8贬责(NN)呆板、虚荣、杂乱无章、心狠手辣9妒忌(NK)眼红、吃醋、醋坛子、嫉贤妒能20怀疑(NL)多心、生疑、将信将疑、疑神疑鬼2[7]-惊惊奇(PC)奇怪、奇迹、大吃一惊、瞠目结舌4.词性种类:情感词汇本体中的词性种类一共分为7类,分别是名词(noun),动词(verb),形容词(adj),副词(adv),网络词语(nw),成语(idiom),介词短语(prep)。
5.极性标注:每个词在每一类情感下都对应了一个极性。其中,0代表中性,代表褒义,2代表贬义,3代表兼有褒贬两性。
注:褒贬标注时,通过词本身和情感共同确定,所以有些情感在一些词中可能极性,而其他的词中有可能极性为0。
6.存储格式及规模:中文情感本体以excel的格式进行存储,共含有情感词共计个,文件大小为.22M。
接下来,进入代码阶段!!!!
一、环境设置:
文本数据量较大,所以在载入前先释放R的空间:#-------------------------------[]环境设置:---------------------------------#rm(list=ls())#清除当前工作目录所有对象;gc()#释放空间;getwd()#获取当前工作目录setwd("D:/")#设定当前工作目录;getwd()
二、R包载入:
在进行分析前,先载入所需R包,如果有些包安装不了,可加下笔者