python snownlp情感分析简易demo(分享)


Posted in Python onJune 04, 2017

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

其 github 主页

我自己修改了上文链接中的python代码并加入些许注释,以方便你的理解:

from snownlp import SnowNLP
# 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'「繁?字」「繁?中文」的叫法在??骋嗪艹R?。')
# s.han      # u'「繁体字」「繁体中文」的叫法在台湾亦很常见。'
print(s.han)
from snownlp import SnowNLP
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 snownlp

pip install pylab

pip install pandas

前提是你安装了pip,若是pip没有安装可以查看我之前的 文章

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

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

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

It is not ur fault!

我是在电视上偶尔才看到这个电影的,当时看的时候真的很感人。 为什么会有这么天才的人,却有着这样子曲折的人生。
是认为剧本很好却没有被完全拍出来:) 对演员的表演还是心存质疑一点点~ 呵呵

好评

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

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

很好的片子

最后就是处理的程序了:

from snownlp import SnowNLP
import pandas as pd
import pylab as pl
txt = open('F:/_analyse_Emotion.txt')
text = txt.readlines()
txt.close()
print('读入成功')
sentences = []
senti_score = []
for i in text:
  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 snownlp情感分析简易demo(分享)

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

以上这篇python snownlp情感分析简易demo(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python Django连接MySQL数据库做增删改查
Nov 07 Python
python实现简单ftp客户端的方法
Jun 28 Python
python机器人运动范围问题的解答
Apr 29 Python
Python3 执行系统命令并获取实时回显功能
Jul 09 Python
python Pandas如何对数据集随机抽样
Jul 29 Python
Python Tensor FLow简单使用方法实例详解
Jan 14 Python
Python统计学一数据的概括性度量详解
Mar 03 Python
python实现超级马里奥
Mar 18 Python
python 常见的排序算法实现汇总
Aug 21 Python
Python模拟登录和登录跳转的参考示例
Oct 30 Python
Python - 10行代码集2000张美女图
May 23 Python
利用Python实现Picgo图床工具
Nov 23 Python
Python 调用Java实例详解
Jun 02 #Python
python使用两种发邮件的方式smtp和outlook示例
Jun 02 #Python
Python爬虫DNS解析缓存方法实例分析
Jun 02 #Python
Python编程实现二叉树及七种遍历方法详解
Jun 02 #Python
Python递归函数定义与用法示例
Jun 02 #Python
matplotlib绘制符合论文要求的图片实例(必看篇)
Jun 02 #Python
Python 爬虫图片简单实现
Jun 01 #Python
You might like
是否存在第一台收音机的说法
2021/03/01 无线电
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
php分享朋友圈的实现代码
2019/02/18 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
IE8提示Invalid procedure call or argument 异常的解决方法
2012/09/30 Javascript
html超链接打开窗口大小的方法
2013/03/05 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
使用js实现雪花飘落效果
2013/08/26 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
jQuery实现动态添加tr到table的方法
2016/12/26 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
详解如何使用 vue-cli 开发多页应用
2017/12/16 Javascript
微信小程序实现收藏与取消收藏切换图片功能
2018/08/03 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
nodejs+express最简易的连接数据库的方法
2020/12/23 NodeJs
Python中正则表达式的详细教程
2015/04/30 Python
python查找指定具有相同内容文件的方法
2015/06/28 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
浅谈django orm 优化
2018/08/18 Python
Python global全局变量函数详解
2018/09/18 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
python3中替换python2中cmp函数的实现
2019/08/20 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
Django 请求Request的具体使用方法
2019/11/11 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
管理科学大学生求职信
2013/11/13 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
Go各时间字符串使用解析
2021/04/02 Golang
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS
服务器nginx权限被拒绝解决案例
2022/09/23 Servers