您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 绩效管理 > 情感分析:基于词典的分析方法
情感分析:基于词典的分析方法好主意值得扩散,激发我们创造的动力所有的数据挖掘方法和思路基本上很久之前都已经形成了,只是现代计算机的普及让这些创新的想法拥有了看似可行的技术支撑,给了他们起死回生的机会,从历史的故纸堆里摇身一变,成了高大上的现代挖掘感念。情感分析的历史也可以追溯到1950年,没错你真的没有看错,那时的情感分析用于研究论文评述的态度。如今,广阔的社交媒体为情感分析提供了用武之地,文本数据源源不断地从微博、博客、微信、社交平台、新闻评论、百度知道等等交互平台抓取下来,而情感分析被广泛的应用于挖掘互联网上的主观信息。从基础上讲,情感分析能够帮助企业掌握文本所表达的情感倾向:正向、负向、还是中性,给予企业分析特定人群特别是消费者对某一固定话题、产品、方法持有的态度。企业可以使用挖掘出来的情感信息寻找新的营销机会,改善营销方式,针对人群采取精准营销等等,美国总统奥观海团队就使用情感分析方法监控大众对其政策的态度和反应。1.情感分析及其应用:这里是老生常谈在企业内,所有的数据挖掘工作归根结底要解决业务问题,这一点认识的越深刻越能脚踏实地的解决问题,而不是制造虚假问题然后解决或者是答非所问,结果不能对问题实现有效的干预。1.1.情感分析的用途情感分析也一样要寻找自己的业务用途。当然情感分析有很多用途,网络社交越来越火,名博或意见领袖越来越多,可以对商品和服务打分、评价的站点更是如雨后春笋,用户的评价和建议可以全网传播,这些数据毫无疑问是精准营销的动力来源。企业也可以根据情感分析建立自己的数字形象,识别新的市场机会,做好市场细分,进而推动产品成功上市,但抓住这些评论的价值部分也是企业的巨大挑战。上述正是情感分析的应用背景,但其主要用途包括:监控社交媒体社交媒体监控可以非常有效的管理品牌的影响力或识别对品牌有影响力的意见领袖,比如你想知道自己品牌负面评论的来源,你可以监控50个行业意见领袖的微博、博客,分析他们微博或文章下面的用户评论,从而确定谁会引导负向评论,之后就可以和这些意见领袖合作,从而转化他们的负面影响。公共关系情感分析同时能帮助企业改善或重塑公共关系策略,例如情感分析可以探索销售热点和行业的流行趋势,同样就像上一步表述的一样,通过情感分析找到社会上对品牌有好感的意见领袖,建立并维持合作的关系,这种方式显然是一种行之有效的公共关系管理策略。市场营销情感分析正在逐步替代传统市场研究的内容,比如情感需求调研、使用习惯及态度研究等等,例如,三星想知道客户对他们的新机型的评价,在社交媒体和数据挖掘兴起之前他们只能通过市场调研的方式解决。而数据分析则可以抓取消费者在各大消费网站如亚马孙、京东、天猫、社交媒体留下的评论数据,分析这些文本内容。从而获知消费者对某个新机型的情感倾向,或者获得消费者对某个新机型的了解程度以及消费者对机型的哪些属性比较赞赏而对另外某些方面并不感冒。政策分析分析微博上的评论可以非常准确的了解大众对政策的理解和情感倾向,慕尼黑大学的研究表明推特上的信息能够非常准确的反映选民的政治倾向,通过分析2009年德国大选期间选民涉及政党和政客的10万条推特,结论是推特的信息能够预示大选的结果,其准确性不亚于传统的民意调研。数据挖掘情感分析作为一种数据挖掘的方式,可以用于采集竞争对手的竞争优势,企业可以轻易地跟踪社交媒体的情感倾向和社交媒体对竞争对手的情感倾向,了解消费者对竞争品牌的印象及对其产品的情感倾向,这是非常优秀的竞争优势分析策略。更重要的是,情感分析的结果和情感指数还可以作为变量应用到其他数据挖掘项目,例如预测用户流失的概率时就可以关联用户的情感指数作为变量。1.2.情感分析的方法论受制于人们表达态度的方式异常复杂,情感分析面临很多挑战,简单的方法难以识别真正的情感倾向。但常见的分析方法大致可以梳理为两个常见的方向:基于词典的情感分析法和基于监督算法的情感分析方法。1.2.1.基于词典的情感分析法基于词典的情感分析法起源于基于语法规则的文本分析,方法比较简单纯朴,首先需要具有语法敏感性的专业人士构建情感分析的词典:正向情感词典和负向情感词典,即将某语言中用于表达情感的词汇分为两个类别,然后比对文本中正负情感词的个数之类的方法,评估文本的情感倾向,这种方法非常容易理解。情感词也分轻重缓急,比如喜欢和爱虽然都是正向,但其程度上不一样,因此根据语言专家的分析,给予情感词不同的情感级别或权重算是对上述分析方法的改进,毫无疑问种方法包含一定的语法分析的成分,大家不要忘了谷歌翻译的早期版本就是基于语法的方式,其效果可见一斑。1.2.2.基于监督算法的情感分析方法基于监督算法的情感分析过程首先制作一个规模庞大的训练集,由人工识别文本的正负向,然后通过机器学习或算法(SVM、随机森林、朴素贝叶斯等等)等方式训练模型,得出模型后再用来识别新文本的情感倾向,比较像垃圾邮件的分类方法,首先精挑一些垃圾邮件和正常邮件,让模型学习,然后再将模型用于垃圾邮件的分选。1.2.3.一种准确率几达87%的新方法本书介绍一种新方法,准确率高于常见的分析方式,而且仍有提升空间。1.2.4.情感分析一些积累知识和方向首先我们应感感谢一些前辈的积累工作,就词典方面中国知网的研究者整理出了知网情感hownet词典,更新地址:,另外还有台湾大学整理的台湾大学情感NTUSD,还有富士通公司的情感词典、程度词典等等。除了情感词典以外,情感分析语料库方面也有不错的工作积累,比如清华大学李军标注的情感分析语料库等等,以及Tang先生等人另辟蹊径根据表情符号标注微博情感语料库类别的方法。以上都是非常优秀的工作,本书将大量采用前人的研究成果,但站在巨人的肩上能不能看得更远就另是一说啦。基于多年从事文本挖掘和自然语言分析工作的经验,在情感分析方案设计和评价时我觉得应该考虑一下几点:1.是否需要词典2.是否具有跨行业分析的功能3.使用什么算法,是分类任务还是分值预测,这关系到情感分析的细腻细腻度问题4.是否需要使用规则及其与程序速度的平衡关系5.是否关注情感归属问题,即主体词和情感的归属关系,是整体层次还是单个文本的个体层次6.准确率和速度以上算是情感分析的几个基本问题,本章尽量从这些方面探索实现。2.文本分析的基本武器:工欲善其事工欲善其事,必先利其器,R和python都是数据挖掘的利器,虽然我们选择了使用R做情感分析,但我个人认为python更具后发优势,如果你搜索自然语言处理的话,会发现很多内容和python有关,至于其他方面的比较,个人认为没有必要,只看这一点就ok了。2.1.Rjava包配置既然选择了R语言,就需要将R语言打造一番,首先RJava包需要安装,它是R语言和Java的通信接口,允许在R中直接调用Java的对象和方法,恰恰能满足很多包的需要,比如Rwordseg。Linux环境下只要R与Java的版本对应即可使用常规方法安装RJava,而windows环境下就比较麻烦,首先要安装java,去oracle官网下载JDK版安装包,注意,这里是jdk不是jre,是64位还是32位要和R版本相同。然后需要安装Rtools,下载地址,当然要选择和R匹配的Rtools。完成以上工作以后需要配置环境,win7右键我的电脑——高级系统设置——环境变量,在环境变量中分别新建或添加相应的环境路径。第一个classpath,新建classpath添加下面代码classpath.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;C:\ProgramFiles\R\R-3.2.1\library\rJava\jri这里最后一个值有时需要指定到jri的版本是x64还是i386,如果是64,那么需要C:\ProgramFiles\R\R-3.2.1\library\rJava\jri\x64,有时又不需要这么指定,真是一件神奇的事情。第二个JAVA_HOME,新建,然后把下面的内容添加进去JAVA_HOMEC:\ProgramFiles\Java\jdk1.8.0_51第三个Path,新建path,注意一下所有的软件都要区分i386或x64PathC:\Rtools\bin;C:\Rtools\gcc-4.6.3\bin;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;C:\ProgramFiles\R\R-3.2.1\bin\i386;C:\ProgramFiles\R\R-3.2.1\bin\x64;C:\ProgramFiles\Java\jdk1.8.0_51\jre\bin\server第四个R_HOME,添加R_HOMEC:\ProgramFiles\R\R-3.2.1以上所有路径均是你的软件安装路径,其他不需要修改。安装rJava包if(!suppressWarnings(require(rJava))){install.packages(rJava)require(rJava)}.jinit()s-.jnew(java/lang/String,HelloWorld!)s#[1]Java-Object{HelloWorld!}如果s正常返回Java-Object{HelloWorld!}则RJava已经成功了。只有RJava配置成功了,Rwordseg安装才可能成功,前者是后者的依赖包。2.2.Rwordseg包安装如果返回不正常说明你的RJava还没安装好,需要重新安装,Rwordseg是我接触最早的中文分词包,所以情有独钟,并不是因为它多么优秀,而是觉得分词是文本分析的基础工作,就其准确性而言,各种方法之间实在没有实质性的差别,因此也就没有养成换来换去的坏毛病。其实,有一点很奇怪,大家口口声声玩大数据,但往往在某些细节问题上止步不前,比如为了分词准确性提高一个千分点,花费大量的时间、财力和精力,我请问,这些改变对数亿级的文本分析结果能有多大的影响呢。另外,数据量巨大的分析保证我们在群体上的精确性,这也是统计的本质,而有些人在评价结果时可能纠结于极个别的个体,这本就是一种本末倒置的思维。如果我们的自变量是由个体组成的,必然需要从群体上评价准确性,而不是纠结于黑天鹅事件。至于防止黑天鹅事件,自然可以设计一套风险管理措施,比如可以分化赌注,多玩几次。扯远了,继续安装Rwordseg。安装Rwordseginstall.packages(Rwordseg,repos=)#这一步要完成需要安装Rtoolslibrary(rJava)library(Rwordseg)segmentCN(在此对原作者孙健表示强烈的敬意!)如果在线安装不成功,可以下载本地安装。下载=1054本地安装很简单,如果你使用Rstudio编辑器,点击tools,选install.packages就可以安装。如果segmentCN函数分词成功就ok了,报错就自求多福吧!2.3.jieba分词包安装虽然我比较执着于Rwordseg,并不代表各位看管执着于我的执着,推荐结巴分词包,小巧玲珑,没有那么多幺蛾子,而且R版本和python版本都有,除了词性标注等分词包必备功能以外,jiebaR还加入了一些基础的文本分析算法,比如提取关键字(TFIDF)、分析文本相似性等等,真是老少咸宜。安装jiebaRlibrary(devtools)if(!suppressWarnings(require(Rcpp))){install.packages(Rcpp)require(Rcpp)}install_github(qinwf/jiebaR)library(jiebaR)seg-worker()seg=江州市长江大桥,参加了
本文标题:情感分析:基于词典的分析方法
链接地址:https://www.777doc.com/doc-4107309 .html