SnowNLP是国人开发的python类库,能够方便的处理中文文本内容,是受到了TextBlob的启发而写的,因为如今大部分的天然语言处理库基本都是针对英文的,因而写了一个方便处理中文的类库,而且和TextBlob不一样的是,这里没有用NLTK,全部的算法都是本身实现的,而且自带了一些训练好的字典。注意本程序都是处理的unicode编码,因此使用时请自行decode成unicode。MIT许可下发行。

其 github 主页

我本身修改了上文连接中的python代码并加入些许注释,以方便你的理解:html

from snownlp importSnowNLP#SnowNLP库:#words:分词#tags:关键词#sentiments:情感度#pinyin:拼音#keywords(limit):关键词#summary:关键句子#sentences:语序#tf:tf值#idf:idf值
s = SnowNLP(u'这个东西真心很赞')#s.words # [u'这个', u'东西', u'真心', u'很', u'赞']
print(s.words)
s.tags#[(u'这个', u'r'), (u'东西', u'n'), (u'真心', u'd')#, (u'很', u'd'), (u'赞', u'Vg')]
print(s.sentiments)#s.sentiments # 0.9769663402895832 positive的几率#s.pinyin # [u'zhe', u'ge', u'dong', u'xi', # u'zhen', u'xin', u'hen',#u'zan']4
s = SnowNLP(u'「繁體字」「繁體中文」的叫法在臺灣亦很常見。')#s.han # u'「繁体字」「繁体中文」的叫法在台湾亦很常见。'
print(s.han)
from snownlp importSnowNLP

text= u'''天然语言处理是计算机科学领域与人工智能领域中的一个重要方向。

它研究能实现人与计算机之间用天然语言进行有效通讯的各类理论和方法。

天然语言处理是一门融语言学、计算机科学、数学于一体的科学。

所以,这一领域的研究将涉及天然语言,即人们平常使用的语言,

因此它与语言学的研究有着密切的联系,但又有重要的区别。

天然语言处理并非通常地研究天然语言,

而在于研制能有效地实现天然语言通讯的计算机系统,

特别是其中的软件系统。于是它是计算机科学的一部分。'''s=SnowNLP(text)print(s.keywords(6)) #[u'语言', u'天然', u'计算机'] 不能用tags输出关键字.

s.summary(3) #[u'于是它是计算机科学的一部分', u'天然语言处理是一门融语言学、计算机科学、#数学于一体的科学', u'天然语言处理是计算机科学领域与人工智能领域中的一个重要方向']s.sentences#print(s.sentences)
print(s.sentiments) #1.0
s = SnowNLP([[u'这篇', u'文章'],
[u'那篇', u'论文'],
[u'这个']])#print(s.tf)#print(s.idf)#print(s.sim([u'文章'])) # [0.3756070762985226, 0, 0]

在编译运行以前,先得安装snownlp包,后续还有pylab,pandas模块:

在VS Code终端(查看->集成终端)里面输入:

pip install snownlppython

pip install pylabgit

pip install pandas

前提是你安装了pip,如果pip没有安装能够查看我以前的 文章github

在VS Code中咱们能够右键模块名查看定义,便能看到模块的实现了.不得不说VS Code很强大,但愿微软能这么一直走下去,走向开源走向跨平台!!

而后我随便提取了《心灵捕手》豆瓣网评,放在了txt中:算法

其实大多数状况下,大陆的译名比港译要更有味道。

It is not ur fault!

我是在电视上偶尔才看到这个电影的,当时看的时候真的很感人。 为何会有这么天才的人,却有着这样子曲折的人生。

是认为剧本很好却没有被彻底拍出来:) 对演员的表演仍是心存质疑一点点~ 呵呵

好评

前几日刚刚看过,一部触动心灵的电影,寻找真正的人生

这篇影评写的很棒,个人眼睛湿润了

很好的片子app

最后就是处理的程序了:编码

from snownlp importSnowNLPimportpandas as pdimportpylab as pl
txt= open('F:/_analyse_Emotion.txt')
text=txt.readlines()
txt.close()print('读入成功')
sentences=[]
senti_score=[]for i intext:
a1=SnowNLP(i)
a2=a1.sentiments
sentences.append(i)#语序...
senti_score.append(a2)print('doing')
table=pd.DataFrame(sentences, senti_score)#table.to_excel('F:/_analyse_Emotion.xlsx', sheet_name='Sheet1')#ts = pd.Series(sentences, senti_score)#ts = ts.cumsum()#print(table)
x = [1, 2, 3, 4, 5, 6, 7, 8]
pl.mpl.rcParams['font.sans-serif'] = ['SimHei']
pl.plot(x, senti_score)
pl.title(u'心 灵 捕 手 网 评')
pl.xlabel(u'评 论 用 户')
pl.ylabel(u'情 感 程 度')
pl.show()

最后的效果:人工智能

python情感分析如何分积极和消极 python snownlp情感分析_python snownlp评论分析

可能有些不许确,我也是随便提取的数据,不过snownlp仍是号称情感分析准确很高的!spa