网络编程
位置:首页>> 网络编程>> Python编程>> 利用python实现简单的情感分析实例教程

利用python实现简单的情感分析实例教程

作者:IT之一小佬  发布时间:2021-12-27 18:19:42 

标签:python,情感,分析

python实现简单的情感分析

1 数据导入及预处理

1.1 数据导入

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

利用python实现简单的情感分析实例教程

1.2 数据描述

#  数据描述
data.describe()

利用python实现简单的情感分析实例教程

1.3 数据预处理

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

利用python实现简单的情感分析实例教程

2 情感分析

2.1 情感分

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

利用python实现简单的情感分析实例教程

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

利用python实现简单的情感分析实例教程

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

2.2 情感分直方图

#  绘制情感分直方图
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

bins = 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()

利用python实现简单的情感分析实例教程

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

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

2.3 词云图

#  绘制词云图(这儿没有做停用词处理)
from wordcloud import WordCloud
import jieba

myfont = 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

利用python实现简单的情感分析实例教程

2.4 关键词提取

#  关键词提取top10
#  这儿直接写import jieba运行会显示没有analyse属性
from jieba import analyse

key_words = jieba.analyse.extract_tags(sentence=text, topK=10, withWeight=True, allowPOS=())
key_words

利用python实现简单的情感分析实例教程

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

参数说明 :

  • 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 += 1
   else:
       neg += 1
print('积极评论数目为:', pos, '\n消极评论数目为:', neg)

利用python实现简单的情感分析实例教程

#  积极消极评论占比
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False

pie_labels = 'positive', 'negative'
plt.pie([pos, neg], labels=pie_labels, autopct='%1.2f%%', shadow=True)

plt.show()

利用python实现简单的情感分析实例教程

3.2 消极评论分析

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

利用python实现简单的情感分析实例教程

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

利用python实现简单的情感分析实例教程

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

利用python实现简单的情感分析实例教程

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

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

来源:https://blog.csdn.net/weixin_44799217/article/details/117364492

0
投稿

猜你喜欢

  • 代码很简洁,也很简单,就不多废话了。/**  * 去除多余的0  */  function del0($s)&
  • 本文为大家分享了opencv基于Haar人脸检测和眼睛检测的具体代码,供大家参考,具体内容如下在这里,我们将进行人脸检测。最初,该算法需要大
  • 在JavaScript中,我们应该尽可能的用局部变量来代替全局变量,这句话所有人都知道,可是这句话是谁先说的?为什么要这么做?有什么根据么?
  • 1、去官网下载1.1、网址:https://www.jetbrains.com/pycharm/ 点这里进入选择版本页面1.2、如果就是我们
  • mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法。python操
  • MySQL数据库配置技巧用root用户启动远程服务一直是安全大忌,因为如果服务程序出现问题,远程攻击者极有可能获得主机的完全控制权。MySQ
  • 一直很想就搜索结果页写一些心得文章出来,甚至连目录都整理好了可是就是一直没有动手。因为总是觉得还差很多东西需要研究需要分析需要验证。最近也组
  •     Q:Dreamweaver(简称DW)中如何输入空格?A:按下“Ctrl+Shift+空格键”或者在中
  • 起因在公司搭建了套webpack多页面应用脚手架,开始用着很爽,解决了既想使用Vue的模块化开发,又想做多页打包上线管理的初衷,但是随着业务
  • 本文为大家分享了VMWare linux安装mysql 5.7.13的教程,供大家参考,具体内容如下1、基础环境说明虚拟机:VMWare操作
  • 本文实例为大家分享了js实现移动小球的具体代码,供大家参考,具体内容如下</head><style> *{margi
  • 简介vue.js是由华人尤雨溪开发的一套MVVM框架。vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系
  • 类的定义假如要定义一个类 Point,表示二维的坐标点:# point.pyclass Point:  def __init__(
  • 这是一个非常简单的解决方案,柱状图中每一条柱都是一个 div,数据的大小呈现在 div 的宽或高上。 查看演示 例子下载实现的原理
  • 在上篇博客中,提到了对一个脚本进行的多次优化。当时以为已经优化得差不多了,但是当测试人员测试时,我才发现,踩到了Python的一个大坑。在上
  • 目录一、使用JDBC连接数据库1.使用JDBC-ODBC桥驱动程序连接数据库2.下面进行代码演示3.注意点二、源码:一、使用JDBC连接数据
  • 方法一:1、进入项目目录下,运行下面程序:nohup python manage.py runserver 0.0.0.0:5008 &am
  • 首先打击我的就是rpm安装,它告诉我发现了Mysql版本冲突,安装无法继续。我用rpm -q 查询后,想通过rpm -e 来删除系统自带的版
  • 前言本篇来学习在pytest中使用yaml编写测试用例项目结构conftest.py只需在 conftest.py 即可实现使用yaml编写
  • 本文详细介绍了网站的反爬虫策略,在这里把我写爬虫以来遇到的各种反爬虫策略和应对的方法总结一下。从功能上来讲,爬虫一般分为数据采集,处理,储存
手机版 网络编程 asp之家 www.aspxhome.com