近年来,微博已经成为全球最受欢迎的网络应用之一,微博的快速发展使其显示出了巨大的社会价值和商业价值,人们逐渐习惯在以微博为代表的社交网络上获取、交流信息与表达情感。文本情感倾向性分析主要关注以文本方式存在的信息中的情感倾向,当庞大的数据量使得它无法手动对它们进行分析时,情感分析就开始发挥作用了。情感分析在英文世界一直是一个被广泛研究的领域,而中文情感分析的研究仍处于起步阶段,大部分工作已通过尝试被证明是适用于英文的。 首先,本文总结分析了文本倾向性分析的基本概念与算法模型,在此基础上,将心理学中的PAD情感模型引入,结合知网提供的语义相似度计算方法,提出了一种使用给定基础情感词汇与其对应PAD值计算词汇的PAD值的方法,并以此构建了一个基于PAD情感模型的情感词典。其次,本文将问题扩展到中文的文本倾向性分析研究中,提出了一种结合统计信息与语义信息的权重计算方法,通过该方法,在一定程度上消除特征歧义对于分类器的影响,使得特征的权重更贴合文本的语义,分类的效果更好。最后,本文综合中文微博文本分析研究现状,分析了现有的文本表示模型,结合机器学习中的支持向量机算法,提出了基于PAD情感语义特征的支持向量机分类方法。 实验结果表明,基于支持向量机的分类算法的效果好于k最近邻节点算法的效果。同时,本文提出的基于PAD情感语义特征的支持向量机分类方法都能够取得比较实用的效果,并对普通的支持向量机方法效果有着显著的改进。
本文可以学习到以下内容:
数据及源码地址: https://giteecom/myrensheng/data_analysis
小凡,用户对耳机商品的评论信息,你有没有什么好的办法分析一下?经理来向小凡请教问题。
嗯,小凡想了一会儿
我想到了两种分析方法:
经理听完,甚是欣慰,便让小凡着手分析用户的评论数据。
数据解释:
小凡使用百度飞浆(paddlepaddle)模型库中的情感分析模型,将评论数据(content)转化为情感类别积极1,消极0
一、window10+anaconda3的安装命令:
二、安装预训练模型应用工具 PaddleHub
可以看到,大约 60% 的用户给出好评
用户的评论内容多集中在配置、音质等主题上
这里使用百度飞浆的LAC分词模型
分析结束后,小凡总结出以下结论:
小凡将结论汇报给经理,和经理一起想出一个可行的方案解决目前存在的问题。
监督学习
目前,基于监督学习的情感分析仍然是主流,除了(Li et al,2009)基于非负矩阵三分解(Non-negative Matrix Tri-factorization),(Abbasi et al,2008)基于遗传算法(Genetic Algorithm)的情感分析之外,使用的最多的监督学习算法是朴素贝叶斯,k最近邻(k-Nearest Neighbor,k-NN),最大熵和支持向量机的。而对于算法的改进主要在对文本的预处理阶段。
基于规则/无监督学习
和基于监督学习的情感分析相比,基于规则和无监督学习方面的研究不是很多。除了(Turney,2002)之外,(朱嫣岚 et al,2002)利用HowNet对中文词语语义的进行了情感倾向计算。(娄德成 et al,2006)利用句法结构和依存关系对中文句子语义进行了情感分析,(Hiroshi et al,2004)通过改造一个基于规则的机器翻译器实现日文短语级情感分析,(Zagibalov et al,2008)在(Turney,2002)的SO-PMI算法的基础上通过对于中文文本特征的深入分析以及引入迭代机制从而在很大程度上提高了无监督学习情感分析的准确率。
跨领域情感分析
跨领域情感分析在情感分析中是一个新兴的领域,目前在这方面的研究不是很多,主要原因是目前的研究还没有很好的解决如何寻找两个领域之间的一种映射关系,或者说如何寻找两个领域之间特征权值之间的平衡关系。对于跨领域情感分析的研究开始于(Blitzer et al,2007)将结构对应学习(Structural Correspondence Learning,SCL)引入跨领域情感分析,SCL是一种应用范围很广的跨领域文本分析算法,SCL的目的是将训练集上的特征尽量对应到测试集中。(Tan et al,2009)将SCL引入了中文跨领域情感分析中。(Tan2 et al,2009)提出将朴素贝叶斯和EM算法的一种半监督学习方法应用到了跨领域的情感分析中。(Wu et al,2009)将基于EM的思想将图排序(Graph Ranking)算法应用到跨领域的情感分析中,图排序算法可以认为是一种迭代的k-NN
由于语料缺乏,前期若使用到情感分析,建议暂时使用SnowNLP(此模块主要使用淘宝评论语料)做情感挖掘,但不仅仅为单纯调用,需要优化,下面是一些实践思考:
可在此基础上优化,比如文本需要特别处理,除了平常的去停用词外,还可以需要对输入的文本结合词性等进行处理。
下面是一些常识:
一)无情感的词语(如去停用词,去掉语气词,无词性标签的词语)
二)对于文本过长,则可以考虑提取关键词或抽取文本摘要后再提取关键词
对于后者实践结果差异明显:
以"发布了头条文章: 《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显 "为例子, 显然该文本为“积极”文本。
1)s = SnowNLP("发布了头条文章:《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显")
得分为05,明显不符合
2)s = SnowNLP(“ ”join(jiebaanalysetextrank("发布了头条文章:《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显")))
而对于文本特别长的,则可以先抽取摘要,再对摘要提取关键词。
这主要由于此SnowNLP主要用贝叶斯机器学习方法进行训练文本,机器学习在语料覆盖上不够,特征上工程处理不当会减分,也没考虑语义等。
为何要考虑语义层面:
以“ 苏宁易购,是谁给你们下架OV的勇气” 中的“ 下架”其实才是中心词(为表达愤怒的文本),但“ 勇气 ”为下架的宾语(其为积极的文本),此句应该结果小于05,但实际为088,去掉“苏宁易购”则为06>
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)