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 文件和输入输出小结
Oct 09 Python
python使用any判断一个对象是否为空的方法
Nov 19 Python
python3制作捧腹网段子页爬虫
Feb 12 Python
Python中的id()函数指的什么
Oct 17 Python
Python3.4实现远程控制电脑开关机
Feb 22 Python
Flask框架学习笔记之使用Flask实现表单开发详解
Aug 12 Python
使用python快速在局域网内搭建http传输文件服务的方法
Nov 14 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
Dec 17 Python
Python函数的迭代器与生成器的示例代码
Jun 18 Python
Python dict的常用方法示例代码
Jun 23 Python
Python编写memcached启动脚本代码实例
Aug 14 Python
Python写情书? 10行代码展示如何把情书写在她的照片里
Apr 21 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
图象函数中的中文显示
2006/10/09 PHP
使PHP自定义函数返回多个值
2006/11/26 PHP
php 页面执行时间计算代码
2008/12/04 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
在JavaScript中判断整型的N种方法示例介绍
2014/06/18 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
javascript cookie的简单应用
2016/02/24 Javascript
简单实现js间歇或无缝滚动效果
2016/06/29 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
AngularJS页面传参的5种方式
2017/04/01 Javascript
分析javascript中9 个常见错误阻碍你进步
2017/09/18 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
跟老齐学Python之通过Python连接数据库
2014/10/28 Python
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
HTML5 placeholder(空白提示)属性介绍
2013/08/07 HTML / CSS
用HTML5制作一个简单的桌球游戏的教程
2015/05/12 HTML / CSS
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
strstr()的简单实现
2013/09/26 面试题
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书
基于JavaScript实现省市联动效果
2021/06/22 Javascript
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL