python基于词语情感色彩进行数据分析(jieba库)
关键词提取
移除标点符号一般有两种方法:删除停止词(Stop Words);
根据词性提取关键词。
words2 = jieba.cut(words1)
words3 = list(words2)
print("/".join(words3))
# 速度/快/,/包装/好/,/看着/特别/好/,/喝/着/肯定/不错/!/价廉物美stop_words = [",", "!"]
words4 =[x for x in words3 if x not in stop_words]
print(words4)
# ['速度', '快', '包装', '好', '看着', '特别', '好', '喝', '着', '肯定', '不错', '价廉物美']
另一种优化分词结果的方式叫做根据词性提取关键词。这种方式的优点在于不用事先准备停用词列表,jieba 库就能够根据每个词的词性对其进行标注。
这里为你提供了一张 paddle(paddle 是百度开源的深度学习平台,jieba 使用了 paddle 的模型库)模式词性表作为参考,你可以根据 jieba 自动分析得到的词性结果,手动将助词、虚词(标点符号)移除。
# words5 基于词性移除标点符号
import jieba.posseg as psg
words5 = [ (w.word, w.flag) for w in psg.cut(words1) ]
# 保留形容词
saved = ['a',]
words5 =[x for x in words5 if x[1] in saved]
print(words5)
# [('快', 'a'), ('好', 'a'), ('好', 'a'), ('不错', 'a')]
语义情感分析
对于已经分好词的语句,我们需要使用另一个库统计词的正向、负向情感倾向,这个库就是 snownlp 库。
snownlp 的算法问题,会让它对否定词划分得不够准确。例如“不喜欢”,snownlp 会把这个词划分为两个独立的词,分别是“不”和“喜欢”。那么,在计算语义情感时,就会产生较大的误差。所以我们会先采用 jieba 进行分词,分词之后再采用 snownlp 来实现语义情感分析功能。
from snownlp import SnowNLP
words6 = [ x[0] for x in words5 ]
s1 = SnowNLP(" ".join(words3))
print(s1.sentiments)
# 0.99583439264303
这段代码通过 snownlp 的 Bayes(贝叶斯)模型训练方法,将模块自带的正样本和负样本读入内存之后,再使用 Bayes 模型中的 classify() 函数进行分类,这样就得到了 sentiments 属性的值,sentiments 的值表示情感倾向的方向。在 snownlp 中:如果情感倾向是正向的,sentiments 的结果会接近 1。如果情感倾向是负向的,结果会接近 0。
positive = 0
negtive = 0
for word in words6:s2 = SnowNLP(word)if s2.sentiments > 0.7:positive+=1else:negtive+=1print(word,str(s2.sentiments))
print(f"正向评价数量:{positive}")
print(f"负向评价数量:{negtive}")
# 快 0.7164835164835165
# 好 0.6558628208940429
# 好 0.6558628208940429
# 不错 0.8612132352941176
# 价廉物美 0.7777777777777779
# 正向评价数量:3
# 负向评价数量:2
在 snownlp 中,通过 train() 和 save() 两个函数把模型训练和保存之后,就能实现扩展默认字典的功能了。此外,我在工作中还会利用这种方式增加 emoji 表情对应的情感倾向分析功能,以此来进一步提升 snownlp 分析情感倾向的准确度。
sentiment.train(neg2.txt,pos2.txt); # 训练用户自定义正负情感数据集
sentiment.save('sentiment2.marshal'); # 保存训练模型
python基于词语情感色彩进行数据分析(jieba库)相关推荐
- NLP之情感分析:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码
NLP之情感分析:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码 目录 全部代码 相关文章 NLP之情感分析:基于python编程(jieba库)实现中文文本情 ...
- NLP之TEA:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码
NLP之TEA:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码 目录 全部代码 相关文章 NLP之TEA:基于python编程(jieba库)实现中文文本情感分 ...
- NLP之TEA:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)
NLP之TEA:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分) 目录 输出结果 设计思路 相关资料 1.关于代码 2.关于数据集 关于留言 1.留言内容的注意事项 2.如 ...
- python基于SVM的疫情评论情感数据分析
1.构建SVM情感分析模型 读取数据 使用pandas的库读取微薄数据读取并使进行数据打乱操作 import pandas as pd test = pd.read_csv(".\\weib ...
- python 多分类情感词典_基于情感词典的文本情感分类
基于情感词典的文本情感分类 传统的基于情感词典的文本情感分类,是对人的记忆和判断思维的最简单的模拟,如上图.我们首先通过学习来记忆一些基本词汇,如否定词语有"不",积极词语有&qu ...
- python jieba库分词_Python基于jieba库进行简单分词及词云功能实现方法
本文实例讲述了Python基于jieba库进行简单分词及词云功能实现方法.分享给大家供大家参考,具体如下: 目标: 1.导入一个文本文件 2.使用jieba对文本进行分词 3.使用wordcloud包 ...
- python微博评论情感分析_基于Python的微博情感分析系统设计
2019 年第 6 期 信息与电脑 China Computer & Communication 软件开发与应用 基于 Python 的微博情感分析系统设计 王 欣 周文龙 (武汉工程大学邮电 ...
- python交通调查数据处理_GitHub - unlimitbladeworks/traffic-monitor: 基于高德地图的交通数据分析...
traffic-monitor(基于高德地图的交通数据分析) 设计需求在于每天上班早高峰期,每次都提前出门,虽然有地图可以实时查看路况,但是再过一阵时间 就会异常的堵车如果通过数据监控分析每天指定路段 ...
- 基于python的情感分析案例-python自然语言处理情感分析案例
产品价值 自然语言处理是为各类企业及开发者提供的用于文本分析及挖掘的核心工具,已经广泛应用在电商.文化娱乐.金融.物流等行业客户的多项业务中.自然语言处理API可帮助用户搭建内容搜索.内容推荐.舆情识 ...
最新文章
- webpack结合reactjs、vuejs项目中图片处理
- javascript全栈开发实践-web-4
- 关键字restrict简介
- jconsole是否可以在生产环境使用_jconsole使用
- 【论文笔记】Convolutional Neural Networks for Sentence Classification
- SpringBoot异常处理机制之自定义404、500错误提示页面
- JAVA实现网页版斗地主_使用Java实现简单的斗地主案例
- 龙芯2F 逸珑迷你笔记本
- Qt网络编程(1):QTcpSocket和QTcpServer的基本使用
- java工资高还是web前端工资高_java工资高还是php,java工资高还是web前端工资高,php和java学费...
- VB 获取文件名后缀
- HCNE之RIP协议总结
- iPhone连接Mac电脑总是断开
- Git与GitHub基础全套完整版教程(持续更新....)
- 团队项目-初步分工与计划安排
- 万字长文带你解读Linux
- 计算机流行音乐与创作软件,哪种计算机歌曲软件更好?歌曲软件推荐
- 关于Windows7 64位系统下regsvr32执行报错的解决方案
- dede织梦html手机模板,dede织梦cms手机站模板制作和调用方法
- 自然语言处理第二讲:单词计数