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对天猫商品评论数据进行情感分析(附源码)相关推荐

  1. leaflet 结合 d3.js 实现 geojson 数据地形剖面分析(附源码下载)

    前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...

  2. 利用python分析电商_基于Word2Vec+SVM对电商的评论数据进行情感分析

    Word2Vec-sentiment 基于Word2Vec+SVM对电商的评论数据进行情感分析 首先是利用word2vec对正负评论数据进行词向量训练,然后利用SVM分类器对语料进行分类,具体的过程如 ...

  3. bilibili助手C2C服务器,Bilibili (B站)200万用户数据爬取与分析(附源码)

    原标题:Bilibili (B站)200万用户数据爬取与分析(附源码) 数据挖掘入门与实战 公众号: datadw 该爬虫仅供学习使用 B站用户爬虫 B站视频爬虫 B站弹幕下载器 关注并回复公众号da ...

  4. python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码

    一.项目介绍 python商品评论数据采集与分析可视化系统 Flask框架.MySQL数据库. requests爬虫.可抓取指定商品评论.Echarts可视化.评论多维度分析.NLP情感分析.LDA主 ...

  5. 词云分析——基于Python对天猫商品评论进行词云分析

    文章目录 0 引言 1 准备工作 2 主程序 3 分析与改进 4 可能出现的报错及解决方案 0 引言 什么是词云分析? 词云图,也叫文字云,是对文本中出现频率较高的"关键词"予以视 ...

  6. 基于出行住宿评论数据的情感分析研究(酒店篇,含python代码)

    携程酒店评论数据: 链接:https://pan.baidu.com/s/1zUtfc6Ku6W2sx99XdqeWcA  提取码:vkzs 停用词汇总: 链接:百度网盘 请输入提取码  提取码:02 ...

  7. flink sql 知其所以然(二)| 自定义 redis 数据维表(附源码)

    感谢您的关注  +  点赞 + 再看,对博主的肯定,会督促博主持续的输出更多的优质实战内容!!! 1.序篇-本文结构 背景篇-为啥需要 redis 维表 目标篇-做 redis 维表的预期效果是什么 ...

  8. 手把手教你做一个数据图表生成器(附源码)...

    我的需求:手动配置X轴.Y轴.图表标题等参数自动通过Pyecharts模块生成可视化的html数据图表,并将浏览器图表展示到UI界面上. [阅读全文] 制作出图表后的效果展示如下: 另外,生成后的图表 ...

  9. SpringBoot+MyBatis 天猫商城项目,超级漂亮【附源码】

    大家好,我是小咖秀! 帮粉丝找了一个基于SpringBoot的天猫商城项目,快速部署运行,所用技术:MySQL,Druid,Log4j2,Maven,Echarts,Bootstrap ... 免费给 ...

最新文章

  1. 关于架构的优化和设计,架构师必须悟透的事情
  2. html怎么让js延迟3秒跳转,JS使用setInterval或setTimeout隔几秒后跳转页面
  3. c51倒计时程序汇编语言,51单片机汇编程序:倒计时交通灯
  4. 清华等高校自评称“已建成世界一流大学”?教育部回应
  5. [蓝桥杯][2013年第四届真题]剪格子-dfs
  6. ef sqlserver切换到mysql_可以为MySql和SqlServer使用EF上下文吗?
  7. TIOBE 2021年3月程序语言排名 - python要超越Java排第二了?
  8. TCL如何使用namespace和package
  9. 行转列经典案例(left join)
  10. 计算机网络cr什么意思,网络用语cr是什么意思
  11. QQ轻游戏入门到精通OR放弃?
  12. 2021农行研发中心面试题总结
  13. Zookeeper -选举流程
  14. 开机提示grub可咋办啊
  15. ssm基于微信小程序的学习资料销售平台+ssm+uinapp+Mysql+计算机毕业设计
  16. Conhost.exe是什么进程?为什么会启动运行?图文详解
  17. Spring @Scheduled 使用详解
  18. 树的先序遍历(双亲表示法)
  19. 15道 Vue 面试题,内含详细讲解(涵盖入门到精通,自测 Vue 掌握程度)
  20. Visual Studio Code(VSCODE)修改字体、字号

热门文章

  1. 什么是外包?定义、最佳实践、挑战和建议
  2. Ubuntu18.04 安装Docker 报错:Signed-By 中含有互相冲突的值
  3. 文档处理 - 复杂Word文档
  4. 深圳盛世光影简述影视后期制作包括哪些工作?
  5. 2022山东老博会,山东养老展,中国国际养老服务业展9月举办
  6. python自动剪视频_python剪切视频与合并视频的实现
  7. 浪潮服务器u盘安装系统_浪潮服务器U盘安装系统无法识别到电脑硬题的解决
  8. 大数量级组合数的快速计算方法
  9. 判断天干,地支,生肖推算
  10. 老鸟程序员才知道的一些事