早在2010年「情感问题在线咨询」,Jonhan Bollen 等人就在《Twitter mood predicts the stock market》一文中强调运用 Twitter 中的公开信息进行情感剖析,以此来对股市的涨落做分析,准确率高达87.6%!并且它们觉得「情感问题在线咨询」,只要可获取长期实时社交媒体文本数据,并进行相应的情感剖析才能确保给与较好预测效果。
当前,随着电子商务的迅猛发展,我们可以获得的文本数据比较多,例如大众点评、豆瓣跟亚马逊等等。
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
说明
SnowNLP 和 TextBlob 的计分方法不同。SnowNLP 的情感剖析取值,表达的是“这句话代表正面情感的概率”。也就是说,对“我现在最愤怒”一句,SnowNLP 认为,它表达正面情感的概率最低更低。
广州及时雨私家侦探(广州本地私家侦探公司)
微信:185-2064-4544
电话:185-2064-4544
地址:广州市天河区