声明

原文来自: http://news.ifeng.com/a/20170628/51337227_0.shtml

因原文格式比较乱,所以我按照自己的方式进行了整理。结果整理完之后才发现王树义老师的简书里面也同样有这篇文章,附上地址 https://www.jianshu.com/p/d50a14541d01 。若本文侵犯了您的权益,请随时与我联系,给您带来的不便还请谅解!

定义

文本情感分析(sentiment analysis)也称为意见挖掘,是指用自然语言处理、文本挖掘以及计算机语言学等方法来识别和提取原素材中的主观信息。

适用场景

商品评论挖掘、电影推荐、股市预测……

早在2010年,Jonhan Bollen 等人就在《Twitter mood predicts the stock market》一文中提出利用 Twitter 中的公开信息进行情感分析,以此来对股市的涨落做预测,准确率高达87.6%!并且他们认为,只要能获得大量实时社交媒体文本数据,并进行相应的情感分析就能保证得到较好预测效果。

当前,随着电子商务的飞速发展,我们可以获得的文本数据非常多,例如大众点评、豆瓣和亚马逊等等。

NLTK

Natural Language Toolkit,自然语言处理工具包,在NLP领域中,最常使用的一个Python库。NLTK由Steven Bird和Edward Loper在宾夕法尼亚大学计算机和信息科学系开发。

系统环境说明

本文的实验环境是 Python 3.6.1 |Anaconda 4.4.0 (64-bit),Win10

英文情感分析例子

工具

TextBlob

安装依赖包

pip install textblob
python -m textblob.download_corpora

代码

from textblob import TextBlob

text = "I am happy today. I feel sad today."
blob = TextBlob(text)

# 拆分句子
blob.sentences  # [Sentence("I am happy today."), Sentence("I feel sad today.")]

# polarity代表情感极性,取值范围是[-1, 1],-1代表完全负面,1代表完全正面
# subjectivity代表主观性程度
blob.sentences[0].sentiment  # Sentiment(polarity=0.8, subjectivity=1.0)
blob.sentences[1].sentiment  # Sentiment(polarity=-0.5, subjectivity=1.0)

# 对整段话进行情感分析
blob.sentiment  # Sentiment(polarity=0.15000000000000002, subjectivity=1.0)

中文情感分析例子

工具

SnowNLP

安装依赖包

pip install snownlp

代码

from snownlp import SnowNLP

text = u"我今天很快乐。我今天很愤怒。"  # 使用Unicode编码
s = SnowNLP(text)
s.sentences  # ['我今天很快乐', '我今天很愤怒']

SnowNLP(s.sentences[0]).sentiments  # 0.971889316039116
SnowNLP(s.sentences[1]).sentiments  # 0.07763913772213482
s.sentiments  # 0.7237619924203508

说明
SnowNLPTextBlob 的计分方法不同。SnowNLP 的情感分析取值,表达的是“这句话代表正面情感的概率”。也就是说,对“我今天很愤怒”一句,SnowNLP 认为,它表达正面情感的概率很低很低。

本站以现代、古代情诗为主,情诗网创办于2013年,以原创爱情诗歌、经典情诗、现代情诗、古代情诗、英文情诗、情诗绝句为主并收集古诗、古诗词、诗歌大全、诗词名句的文学门户。方便您下次继续阅读;可以放在浏览器的收藏夹中(快捷键Ctrl+D);或者看到喜欢或者有趣的诗词可以通过分享按钮给你的好友分享;情诗网是目前最全情诗大全网站之一。并欢迎广大诗歌爱好者阅览投稿!喜欢本站的话请大家把本站告诉给你朋友哦!地址是 www.qingshiwang.com !