python实现简单的情感分析

1 数据导入及预处理

1.1 数据导入

#  数据导入
import pandas as pd
data = pd.read_csv('../data/京东评论数据.csv')
data.head()

1.2 数据描述

#  数据描述
data.describe()

1.3 数据预处理

#  数据预处理
#  取出sku_Id,content字段
data1 = data[['sku_id', 'content']]
data1.head(10)

2 情感分析

2.1 情感分

#  情感分析
from snownlp import SnowNLP
data1['emotion'] = data1['content'].apply(lambda x: SnowNLP(x).sentiments)
data1.head()

#  情感数据描述
data1.describe()

  • emotion平均值为0.74,中位数为0.96,25%分位数为0.56,可见不到25%的数据造成了整体均值的较大下移。

2.2 情感分直方图

#  绘制情感分直方图
import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = Falsebins = np.arange(0, 1.1, 0.1)
plt.hist(data1['emotion'], bins, color = '#4F94CD', alpha=0.9)
plt.xlim(0, 1)
plt.xlabel('情感分')
plt.ylabel('数量')
plt.title('情感分直方图')
plt.show()

  • 由直方图可见,评论内容两级分化较为严重;

  • 3637条评论中有约2200条评论情感分在[0.9,1]区间内;同时,有约500条评论情感分在[0,0.1]区间内。

2.3 词云图

#  绘制词云图(这儿没有做停用词处理)
from wordcloud import WordCloud
import jiebamyfont = myfont = r'C:\Windows\Fonts\simhei.ttf'
w = WordCloud(font_path=myfont)
text = ''
for i in data['content']:text += i
data_cut = ' '.join(jieba.lcut(text))
w.generate(data_cut)
image = w.to_file('词云图.png')
image

2.4 关键词提取

#  关键词提取top10
#  这儿直接写import jieba运行会显示没有analyse属性
from jieba import analysekey_words = jieba.analyse.extract_tags(sentence=text, topK=10, withWeight=True, allowPOS=())
key_words

  • 以上关键词显示,消费者比较在意手机的“屏幕”“拍照”“手感”等特性,“华为”“小米”是出现频次最高的两个手机品牌。

参数说明 :

  • sentence 需要提取的字符串,必须是str类型,不能是list
  • topK 提取前多少个关键字
  • withWeight 是否返回每个关键词的权重
  • allowPOS是允许的提取的词性,默认为allowPOS=‘ns’, ‘n’, ‘vn’, ‘v’,提取地名、名词、动名词、动词

3 积极评论与消极评论

3.1 积极评论与消极评论占比

#  计算积极评论与消极评论各自的数目
pos, neg = 0, 0
for i in data1['emotion']:if i >= 0.5:pos += 1else:neg += 1
print('积极评论数目为:', pos, '\n消极评论数目为:', neg)

#  积极消极评论占比
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = Falsepie_labels = 'positive', 'negative'
plt.pie([pos, neg], labels=pie_labels, autopct='%1.2f%%', shadow=True)plt.show()

3.2 消极评论分析

#  获取消极评论的数据
data2 = data1[data1['emotion'] < 0.5]
data2.head()

#消极评论词云图(这儿没有做停用词处理)
text2 = ''
for s in data2['content']:text2 += s
data_cut2 = ' '.join(jieba.lcut(text2))
w.generate(data_cut2)
image = w.to_file('消极评论词云.png')
image

#消极评论关键词top10
key_words = jieba.analyse.extract_tags(sentence=text2, topK=10, withWeight=True, allowPOS=())
key_words

  • 消极评论关键词显示,“屏幕”“快递”“充电”是造成用户体验不佳的几个重要因素;屏幕和充电问题有可能是手机不良品率过高或快递压迫;

  • 因此平台应注重提高手机品控,降低不良品率;另外应设法提升发货,配送,派件的效率和质量。


数据集地址:https://download.csdn.net/download/weixin_44799217/19148608

python实现简单的情感分析相关推荐

  1. python+机器学习方法进行情感分析

    不是有词典匹配的方法了吗?怎么还搞多个机器学习方法. 因为词典方法和机器学习方法各有千秋. 机器学习的方法精确度更高,因为词典匹配会由于语义表达的丰富性而出现很大误差,而机器学习方法不会.而且它可使用 ...

  2. python情感分析步骤_使用python+机器学习方法进行情感分析(详细步骤)

    不是有词典匹配的方法了吗?怎么还搞多个机器学习方法. 因为词典方法和机器学习方法各有千秋. 机器学习的方法精确度更高,因为词典匹配会由于语义表达的丰富性而出现很大误差,而机器学习方法不会.而且它可使用 ...

  3. python实现情感分析_使用python+机器学习方法进行情感分析(详细步骤)

    使用python+机器学习方法进行情感分析(详细步骤) 2021-02-07 不是有词典匹配的方法了吗?怎么还搞多个机器学习方法.因为词典方法和机器学习方法各有千秋.机器学习的方法精确度更高,因为词典 ...

  4. 用Python做数据商品情感分析(商品评论数据情感分析)

    用Python做数据商品情感分析(商品评论数据情感分析) 现在,我们得到了一些关于XX商品的评论信息的数据,我们需要对这些评论信息的数据进行情感分析: 分析步骤 机械压缩去词 短句过滤 情感分析 分词 ...

  5. 情感分析算法 python_使用python+机器学习方法进行情感分析(详细步骤)

    不是有词典匹配的方法了吗?怎么还搞多个机器学习方法. 因为词典方法和机器学习方法各有千秋. 机器学习的方法精确度更高,因为词典匹配会由于语义表达的丰富性而出现很大误差,而机器学习方法不会.而且它可使用 ...

  6. python毕业设计开题报告-基于python爬虫的影评情感分析研究开题报告

    论文(设计)题目 基于python爬虫的影评情感分析研究开题报告 选题的背景.意义及研究现状: 研究现状: 文本情感分析又称倾向性分析.情感挖掘,主观分析或评论挖掘,是对带有情感色彩的评论文本内容进行 ...

  7. lstm训练情感分析的优点_LSTM对电影评论进行简单的情感分析

    今天自己尝试使用LSTM对电影评论进行简单的情感分析 代码中npy文件: 代码使用的数据集是IMDB,网盘地址: 首先读取已经做好的词向量模型 import numpy as np # 这里有两个表, ...

  8. 利用Python进行简单杜邦分析

    利用Python进行简单杜邦分析 "巧妇难为无米之炊",找不到数据,量化分析.财务报表分析也就无从谈起.对于分析者来说,获取数据是量化分析的第一步.Python的一个强大功能之一就 ...

  9. python情感分析中文_【python机器学习】中文情感分析

    3月31日,3月最后的一天接到了腾讯HR终面,看着招聘官网变成已完成还有点小自豪呢python 而后百度搜了搜显示"已完成"是否是稳了,原来不是,好多最后被通知没被录取....we ...

最新文章

  1. 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。...
  2. HDU hdu 2094 产生冠军 拓扑排序 判定环
  3. mybatis清除一级缓存的几种方法
  4. 学习opengl(起步)
  5. MySQL 5.7 新特性详解
  6. switch注意事项
  7. objective-c 使用NSNumber 将int float long等数据类型加入到数组或字典中
  8. mysql 视图 字典_MySQL深入01-SQL语言-数据字典-服务器变量-数据操作DML-视图
  9. Easy Math(2018 ACM-ICPC 徐州赛区网络赛 D)
  10. mate40系统鸿蒙,Mate40领衔更新!鸿蒙系统首批升级机型名单:这些机型可坐等推送...
  11. Spring Cloud Bus + RabbitMq 自动刷新
  12. 硅谷之火:人与计算机的未来
  13. 括号匹配(POJ2955)题解
  14. poj_2945 Find the Clones (Trie树 内存分配)
  15. 优信php面试流程_php面试的的时候你被提过哪些问题?
  16. 多米诺骨牌问题Push Dominoes
  17. Git最佳实践(init、config、status、add、commit、diff、push) 1.0v
  18. 科技新品 | 索尼可换镜头Vlog相机;LG电子全球首款卷曲屏电视;卡西欧《吃豆人》合作款数码手表...
  19. 阿里的素质在线测评2020春招Java实习
  20. java轮子_java造车轮是什么意思?

热门文章

  1. 神经网络其实和人一样懒惰,喜欢走捷径......
  2. 刚发布!2020年AI人才发展报告,这三个暗示程序员一定要知道!
  3. 神经架构搜索在视频理解中研究进展的综述
  4. 《评人工智能如何走向新阶段》后记(再续2)
  5. 机器学习填坑:你知道模型参数和超参数之间的区别吗?
  6. AI开发者们,2017年你们过得好吗?
  7. 这些SpringBoot天生自带Buff工具类你都用过哪些?
  8. 牛逼,国产开源的远程桌面火了,只有9MB,支持自建中继器!
  9. 求求你别再写上千行的类了,试试这些牛逼的重构技巧吧
  10. 聊一聊 软件系统中的“热力学第二定律”