snownlp对天猫商品评论数据进行情感分析(附源码)
snowNLP介绍
SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode。
以上是官方对snownlp的描述,简单地说,snownlp是一个中文的自然语言处理的Python库,支持的中文自然语言操作包括:
- 中文分词
- 词性标注
- 情感分析
- 文本分类
- 转换成拼音
- 繁体转简体
- 提取文本关键词
- 提取文本摘要
- tf,idf
- Tokenization
- 文本相似
在本文中,我们将用实例重点介绍snownlp中的情感分析(Sentiment Analysis)的用法。
1.文本数据
这里我使用的是我之前爬取的天猫商品评论数据。爬取天猫商品评论的数据可以见我之前的一篇文章。(公众号:无知红,历史文章即可查看)
对一部分文本进行了文本情感标注(手工标注),“1”——正面评价,“-1”——负面评价。
二、snownlp情感分析模块的使用
1.snownlp包的安装
直接在 cmd中执行以下代码。一如既往的简单。
pip install snownlp
2.导入情感分析模块
from snownlp import SnowNLPfrom snownlp import sentiment
3.训练语料库
训练语料库,并保存在你指定的位置。”/neg.txt”文件是负面评价的文本集合,”/pos.txt”文件是正面面评价的文本集合。“sentiment.marshal”文件是你训练出来的模型文件。
sentiment.train('C:/.../Python/Python36-32/Lib/site-packages/snownlp/sentiment/neg.txt','C:/.../Python/Python36-32/Lib/site-packages/snownlp/sentiment/pos.txt')
sentiment.save('C:/.../Python/Python36-32/Lib/site-packages/snownlp/sentiment/sentiment.marshal')
4.情感分析
预测结果为positive的概率,positive的概率大于等于0.5,我认为可以判断为积极情感,小于0.5的判断为消极情感。所以以下将概率大于等于0.5的评论标签赋为1,小于0.5的评论标签赋为-1,方便后面与实际标签进行比较。
data1=[]
data2=[]
with open('content.csv')as f:f_csv = csv.reader(f)count = 0for row in f_csv:count = count + 1s = SnowNLP(row[0])print(count,":",s.sentiments)if s.sentiments>=0.5:data2.append('1')print("1")else:data2.append('-1')data1.append(row[1])
5.统计正确率,进行结果验证
rightP = wrongP = 0
for i in range(0,len(data1)):if data1[i]==data2[i]:rightP = rightP + 1else:wrongP = wrongP + 1print("正确率为:", float(rightP)/float(len(data1)))
6.最终的结果
最终的正确率为0.859,还过的去。一般需要调整参数,或者语料库来提升准确率。
遇到的坑和解决方法
1.编码问题。snownlp只能读写utf-8编码方式的txt文件,如果文本数据不是utf-8编码,需要先转换编码,否则会报错。
2.语料库。自带的语料库有点坑,准确率很低,刚开始试了下 ,只有0.6左右,基本上就是瞎猜的水平。根本不适合做商品评论的情感分析。所以,尽量自己构建一个语料库吧。
snownlp还有很多的功能和用法,都很强大,这里篇幅有限,只简单介绍一下情感分析模块。
获取源码
由于排版问题,这里就没放完整的代码了。想要获取完整源代码:
关注微信公众号“无知红”,后台回复 “ snownlp ” ,即可获取下载地址
snownlp对天猫商品评论数据进行情感分析(附源码)相关推荐
- leaflet 结合 d3.js 实现 geojson 数据地形剖面分析(附源码下载)
前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...
- 利用python分析电商_基于Word2Vec+SVM对电商的评论数据进行情感分析
Word2Vec-sentiment 基于Word2Vec+SVM对电商的评论数据进行情感分析 首先是利用word2vec对正负评论数据进行词向量训练,然后利用SVM分类器对语料进行分类,具体的过程如 ...
- bilibili助手C2C服务器,Bilibili (B站)200万用户数据爬取与分析(附源码)
原标题:Bilibili (B站)200万用户数据爬取与分析(附源码) 数据挖掘入门与实战 公众号: datadw 该爬虫仅供学习使用 B站用户爬虫 B站视频爬虫 B站弹幕下载器 关注并回复公众号da ...
- python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
一.项目介绍 python商品评论数据采集与分析可视化系统 Flask框架.MySQL数据库. requests爬虫.可抓取指定商品评论.Echarts可视化.评论多维度分析.NLP情感分析.LDA主 ...
- 词云分析——基于Python对天猫商品评论进行词云分析
文章目录 0 引言 1 准备工作 2 主程序 3 分析与改进 4 可能出现的报错及解决方案 0 引言 什么是词云分析? 词云图,也叫文字云,是对文本中出现频率较高的"关键词"予以视 ...
- 基于出行住宿评论数据的情感分析研究(酒店篇,含python代码)
携程酒店评论数据: 链接:https://pan.baidu.com/s/1zUtfc6Ku6W2sx99XdqeWcA 提取码:vkzs 停用词汇总: 链接:百度网盘 请输入提取码 提取码:02 ...
- flink sql 知其所以然(二)| 自定义 redis 数据维表(附源码)
感谢您的关注 + 点赞 + 再看,对博主的肯定,会督促博主持续的输出更多的优质实战内容!!! 1.序篇-本文结构 背景篇-为啥需要 redis 维表 目标篇-做 redis 维表的预期效果是什么 ...
- 手把手教你做一个数据图表生成器(附源码)...
我的需求:手动配置X轴.Y轴.图表标题等参数自动通过Pyecharts模块生成可视化的html数据图表,并将浏览器图表展示到UI界面上. [阅读全文] 制作出图表后的效果展示如下: 另外,生成后的图表 ...
- SpringBoot+MyBatis 天猫商城项目,超级漂亮【附源码】
大家好,我是小咖秀! 帮粉丝找了一个基于SpringBoot的天猫商城项目,快速部署运行,所用技术:MySQL,Druid,Log4j2,Maven,Echarts,Bootstrap ... 免费给 ...
最新文章
- 关于架构的优化和设计,架构师必须悟透的事情
- html怎么让js延迟3秒跳转,JS使用setInterval或setTimeout隔几秒后跳转页面
- c51倒计时程序汇编语言,51单片机汇编程序:倒计时交通灯
- 清华等高校自评称“已建成世界一流大学”?教育部回应
- [蓝桥杯][2013年第四届真题]剪格子-dfs
- ef sqlserver切换到mysql_可以为MySql和SqlServer使用EF上下文吗?
- TIOBE 2021年3月程序语言排名 - python要超越Java排第二了?
- TCL如何使用namespace和package
- 行转列经典案例(left join)
- 计算机网络cr什么意思,网络用语cr是什么意思
- QQ轻游戏入门到精通OR放弃?
- 2021农行研发中心面试题总结
- Zookeeper -选举流程
- 开机提示grub可咋办啊
- ssm基于微信小程序的学习资料销售平台+ssm+uinapp+Mysql+计算机毕业设计
- Conhost.exe是什么进程?为什么会启动运行?图文详解
- Spring @Scheduled 使用详解
- 树的先序遍历(双亲表示法)
- 15道 Vue 面试题,内含详细讲解(涵盖入门到精通,自测 Vue 掌握程度)
- Visual Studio Code(VSCODE)修改字体、字号