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

 更新时间:2022年06月11日 10:41:00   作者:IT之一小佬  
商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

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

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

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

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

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

参数说明 :

  • 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)

#  积极消极评论占比
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()

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

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

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

总结

到此这篇关于利用python实现简单的情感分析的文章就介绍到这了,更多相关python情感分析内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Django drf框架序列化视图

    基于Django drf框架序列化视图

    这篇文章主要为大家介绍了基于Django drf框架序列化视图,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • python数据库操作--数据库使用概述

    python数据库操作--数据库使用概述

    这篇文章主要介绍了python中使用mysql数据库详细介绍,本文起讲解了安装mysql、安装MySQL-python、mysql 的基本操作、python 操作mysql数据库基础等内容,需要的朋友可以参考下
    2021-08-08
  • python中GIL的原理及用法总结

    python中GIL的原理及用法总结

    在本篇文章里小编给大家整理的是一篇关于python中GIL的原理及用法总结内容,有需要的朋友们可以学习参考下。
    2021-03-03
  • Django高级编程之自定义Field实现多语言

    Django高级编程之自定义Field实现多语言

    这篇文章主要介绍了Django高级编程之自定义Field实现多语言,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • pytorch中backward()方法如何自动求梯度

    pytorch中backward()方法如何自动求梯度

    这篇文章主要介绍了pytorch中backward()方法如何自动求梯度问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python 识别12306图片验证码物品的实现示例

    Python 识别12306图片验证码物品的实现示例

    这篇文章主要介绍了Python 识别12306图片验证码物品的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Python Socket编程详细介绍

    Python Socket编程详细介绍

    这篇文章主要介绍了Python Socket编程详细介绍,socket可以建立连接,传递数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • pymysql模块使用简介与示例

    pymysql模块使用简介与示例

    这篇文章主要介绍了pymysql模块使用的相关资料,帮助大家更好的利用python操作MySQL数据库,感兴趣的朋友可以了解下
    2020-11-11
  • python实现简单的井字棋游戏(gui界面)

    python实现简单的井字棋游戏(gui界面)

    这篇文章主要介绍了python如何实现简单的井字棋游戏,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • Django 项目布局方法(值得推荐)

    Django 项目布局方法(值得推荐)

    这篇文章主要介绍了Django 项目布局方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03

最新评论