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对象数据的读写权限
Sep 12 Python
tensorflow建立一个简单的神经网络的方法
Feb 10 Python
用Python实现筛选文件脚本的方法
Oct 27 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
Dec 17 Python
python实现二维插值的三维显示
Dec 17 Python
python3利用ctypes传入一个字符串类型的列表方法
Feb 12 Python
python实现随机漫步方法和原理
Jun 10 Python
python 矢量数据转栅格数据代码实例
Sep 30 Python
Python zip函数打包元素实例解析
Dec 11 Python
Spark处理数据排序问题如何避免OOM
May 21 Python
python collections模块的使用
Oct 16 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
Mar 01 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
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
JQuery 实现的页面滚动时浮动窗口控件
2009/07/10 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
关于img的href和src取变量及赋值的方法
2014/04/28 Javascript
js键盘事件的keyCode
2014/07/29 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
Javascript 事件冒泡机制详细介绍
2016/10/10 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
vue的事件绑定与方法详解
2017/08/16 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
python中协程实现TCP连接的实例分析
2018/10/14 Python
python爬取网易云音乐评论
2018/11/16 Python
Python闭包思想与用法浅析
2018/12/27 Python
Python 3.8正式发布,来尝鲜这些新特性吧
2019/10/15 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
丹尼尔惠灵顿手表天猫官方旗舰店:Daniel Wellington
2017/08/25 全球购物
Koral官方网站:女性时尚运动服
2019/04/10 全球购物
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
掌上明珠Java程序员面试总结
2016/02/23 面试题
英语硕士生求职简历的自我评价
2013/10/15 职场文书
毕业生求职自荐信怎么写
2014/01/08 职场文书
2014年科室工作总结范文
2014/12/19 职场文书
525心理健康活动总结
2015/05/08 职场文书
合作意向书怎么写
2019/06/24 职场文书
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript