今天,小兔与大家继续探索东野圭吾畅销之谜。昨天的文章中,小兔实现了《解忧杂货铺》整篇小说的全文分词。那么,接下来的步骤就是针对文中每个句子进行情感分析,判断句子的情感倾向并量化情感倾向。小兔今天仍旧按照从原理到实践的步骤为大家进行梳理,和大家一起看看文章中的男默女泪。
情感分析
原理
情感分析主要研究如何识别、分类、标注和提取主观文本及其所表达的情感、情绪和观点。它也被称为意见挖掘(Opinion Mining)、意见分析/倾向性分析(Opinion Analysis)、情感分类(SentimentClassification)、或者主观性分析(Subjectivity Analysis)。
受到应用的驱动,情感分析技术已经成为文本挖掘领域中一项重要的研究内容。在斯坦福CS224N的自然语言处理课程中,针对情感分析的应用场景进行了较为集中的介绍,主要包含以下集中场景:
(1)识别用户评价中的褒贬,可以应用在电影评论、产品性能评估等场景,如 Google Product Search、Bing Shopping等
(2)行为预测:用户情感与调查、投票等结果可能具有较高的一致性,这一成果往往应用于政治选举结果预测之中。这一成果详见论文:Brendan O'Connor, Ramnath Balasubramanyan, Bryan R. Routledge, and Noah A. Smith. 2010. From Tweets to Polls: Linking Text Sentiment to Public Opinion Time Series. In ICWSM-2010,对于这一成果,小兔只想说:真twitter治国!
情感分析方法
(1)基于词典:这一方法起源于基于语法规则的文本分析,方法比较简单纯朴。首先需要具有语法敏感性的专业人士构建情感分析的词典:正向情感词典和负向情感词典,即将某语言中用于表达情感的词汇分为两个类别,然后比对文本中正负情感词的个数之类的方法,评估文本的情感倾向,方法比较容易理解。
情感词的程度深浅在基于词典的方法之下也需要进一步量化,举个例子,小岳岳的“臭不要脸”与丞相的“厚颜无耻”的负向程度,有着显著的不同,因而也需对应不同的负向权重。
毫无疑问这种方法包含一定的语法分析的成分,同时也需要专业人士客观的量化打分。
(2)基于机器学习:首先制作一个规模庞大的训练集,由人工识别文本的正负向,然后通过机器学习或算法(SVM、随机森林、朴素贝叶斯等等)等方式训练模型,得出模型后再用来识别新文本的情感倾向。
(3)基于词典与机器学习:这种混合的思路有两种:1.将“词典+规则”视为简单的分类器,然后融合多种不同分类器进行情感分类;2.将词典信息作为一种特征与现有特征(句法特征、POS特征等)进行结合,然后选择最优的特征组合进行情感分类。
(4)基于弱标注信息的情感分类方法:从互联网用户产生的数据中挖掘有助于训练情感分类器的信息,但由于这类信息标注没有统一标准,具有较大的随意性,将这种标注信息称为弱标注信息。利用这类信息构建的情感分类方法即为基于弱标注信息的情感分类方法。
(5)基于深度学习的情感分类方法:针对情感分类问题的机器学习方法有两个步骤:1.从海量评论语料中学习出语义词向量;2.通过不同的语义合成方法用词向量得到所对应句子或文档的特征表达。
资源推荐
针对希望深入学习与应用文本情感分析的小伙伴,小兔在这里整理了一些资源,与君共勉:
资料:
教材:语音与语言处理
论文:Sentiment Analysis and Opinion Mining
词典资源:
(1)sentiwordnet:http://sentiwordnet.isti.cnr.it/
(2)知网:http://www.keenage.com/html/c_index.html
(3)中文情感极性词典:http://www.datatang.com/data/44317
(4)情感词汇本体库:http://ir.dlut.edu.cn/EmotionOntologyDownload
工具:
(1)武汉大学ROSTCM
(2)语料库在线
(3)百度AI开放平台:http://ai.baidu.com/tech/nlp/sentiment_classify
(4)腾讯文智:http://nlp.qq.com/
(5)衍数科技:http://www.acnlp.com/acnlp-demo
实践
小兔使用R软件实现《解忧杂货铺》的情感分析,采用的方法为最基本的基于词典的情感分析方法,这一过程分为以下几个步骤。
准备工作:词典
小兔首先选择使用大连理工大学提供的情感词汇本体库中的感情极性文档,由于这一文档提供了各个词汇的情感强度,因而,可以直接完成量化的步骤,但由于这一词库的数据含量较小,仅包含27467个词汇的情感倾向且词典来源多为古文和成语词汇,因而对于译制小说的解释能力较弱。
为弥补这一词典覆盖问题,小兔改选使用python调用百度NLP api的办法直接应用百度平台的数据分析基础对句子情感进行评价。
其他词典:汉语情感词极值表、中国台湾大学情感NTUSD、知网Hownet情感词、中文褒贬义词典v1.0(清华大学李军)等来源的情感极性结果也具有较高的接受度,希望大家尝试后,帮小兔对比出哪家的词典水平最为优质,获得对比成果的小伙伴可以私戳公众号助手,有惊喜哦~
准备工作:注册百度api
由于百度NLP api有100000次/天免费调用的便利,因而小兔在分析的最后选择应用百度平台的直接结果。
准备工作:装包
R:安装读取excel数据的包readxl
python:
安装AipNlp包,调取百度NLP api;
安装pandas,进行数据处理
实践R部分:调用已有词典完成分析
实践python部分:调用api并返回结果
结语
今天小兔为大家简述了情感分析的方法和如何实现,欢迎小伙伴们在平时多多实践,《解忧杂货铺》的情感分析任务完成了,但《嫌疑人X的献身》的还等你尝试。此外,如何实践其他方法进行文本情感分析也是未来研究的重点,感兴趣的小伙伴可以在公众平台留言与小兔一起讨论。希望大家持续关注将在新年后举办的大数据训练营,一起揭示数据的奥秘。
明天将是这一专题的最后一篇,通过情感曲线,欢迎大家与小兔一起解密东野圭吾小说畅销之谜。
领取专属 10元无门槛券
私享最新 技术干货