数据分析实战-Python实现博客评论数据的情感分析

简介: 数据分析实战-Python实现博客评论数据的情感分析

学习建议

  • 现在很多网站、小程序、应用软件、博客、电商购物平台等,都有很多的用户评论数据,这些数据包含了用户对产品的认知、看法和一些立场;
  • 那么我们可以对这些数据进行情感分析,可以得到一些有价值的信息,帮助我们进一步提升产品价值或用户体验;
  • 本文主要针对某个博客的评论数据进行分析,分析用户的情感变化,包括正面的、负面的情绪变化等;
  • 学习本文建议对Python的SnowNLP第三库有一定的了解,另外对Python的excel数据处理相关库有一些基础认知,比如pandas库、matplotlib库等等。

SnowNLP基础

什么是SnowNLP?

在学习前,我们先了解下什么是SnowNLP?

  • SnowNLP是Python的第三方模块或者库;
  • SnowNLP主要作用是可实现对评论内容的情感预测。

SnowNLP情感分析

  • SnowNLP可友好的处理中文内容,包括中文分词、文本分类、提取文本关键词、文本相似度计算、情感分析等;
  • 而针对情感分析,分析完成后可得到概率,从概率我们可以得出哪些是正面评论,哪些是负面评论;
  • 情感分析中,概率大于0.5视为正面评价(积极情感),概率小于0.5视为负面评价(消极情感)。

SnowNLP使用

在进行实战之前,我们了解一些SnowNLP的简单使用,可对后续我们数据分析有一定的帮助。下边简单举几个例子,帮助大家理解SnowNLP的作用。

SnowNLP安装

直接使用pip安装即可:

pip install snownlp

情感分析

  • 情感分析会对评价的正面和负面评价进行分析,大于0.5为正面,否则为负面;
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2024/3/12
# 文件名称:test_snlp.py
# 作用:snownlp使用-情感分析

import subprocess
import sys
subprocess.check_call([sys.executable, "-m", "pip", "install", "snownlp"])
from snownlp import SnowNLP

text = "我篇文章内容丰富、条理清晰,让我学到了很多~~~"
s = SnowNLP(text)
# 情感分析
sentiment = s.sentiments
if sentiment > 0.5:
    print('正面评价')
else:
    print('负面评价')

# 输出为:正面评价

中文分词

  • 中文分析主要是对一句话进行分解,把整个语句分割成单个词语和汉字;
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2024/3/12
# 文件名称:test_snlp.py
# 作用:snownlp使用-中文分词

import subprocess
import sys
subprocess.check_call([sys.executable, "-m", "pip", "install", "snownlp"])
from snownlp import SnowNLP

data = "如果我有一个亿,我会不会飘?"
s = SnowNLP(data)
print(s.words)

# 输出:
# ['如果', '我', '有', '一个', '亿', ',', '我', '会', '不', '会', '飘', '?']

关键词提取

  • 可以设置需要提取的关键词个数,然后输出对应的药提取的关键词;
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2024/3/12
# 文件名称:test_snlp.py
# 作用:snownlp使用-关键词提取

import subprocess
import sys
subprocess.check_call([sys.executable, "-m", "pip", "install", "snownlp"])
from snownlp import SnowNLP

text = "这是一篇关于Python数据处理的博客文章,主要介绍Python中SnowNLP库的使用方法以及实战。"
s = SnowNLP(text)
keywords = s.keywords(3)  # 提取前3个关键词
print('关键词:', keywords)

# 输出为:关键词: ['Python', '库', 'SnowNLP']

拼音、词性标准

  • 这个就不多介绍了,详细可以去看看SnowNLP的使用。

SnowNLP实战-博客评论数据的情感分析

数据准备

  • 我们需要提供一组博客评论数据,然后进行分析;
  • 数据建议可以放入excel中,方便分析,本文为了代码运行方面,后续会放置在变量中;
  • 数据如下:
类别 博客名称 时间 评价内容
实用性 Python字典和元组 2024/1/8 20:16 文章内容充实,对实际项目使用有很好的帮助
易学性 一篇文章看懂Python从0到放弃 2024/1/9 8:13 内容通俗易懂,可以快速入门Python的学习
完整性 Python画图 2024/2/3 12:20 内容过于简单,不太完整,有点缺少重要内容,建议补充
实用性 我的Python学习成长记 2023/11/12 23:12 大佬这篇博文对我很有启发,感谢分享
易学性 Python画图 2023/11/13 20:12 内容不太能理解,没学会,哈哈
完整性 一篇文章看懂Python从0到放弃 2023/12/30 20:15 内容很多,也很全,学习了
易学性 我的Python学习成长记 2023/12/20 21:15 可能我基础薄弱,感觉看不懂啊
易学性 如何在职场中呼风唤雨? 2023/12/19 13:13 标题党,一看就是水文
完整性 如何在职场中呼风唤雨? 2023/12/21 15:15 内容过于浮夸,不够完整,建议从实际中多讲讲
实用性 一篇文章看懂Python从0到放弃 2023/12/17 18:18 比较比较实用,学习了
完整性 我的Python学习成长记 2023/12/24 5:37 内容充实完整,值得推荐给小伙伴
实用性 Python画图 2023/12/11 3:16 实用性还不错
易学性 Python+selenium如何实现自动化测试? 2023/12/9 16:48 内容不错,容易上手,感谢分享
完整性 Python+selenium如何实现自动化测试? 2023/12/8 11:33 内我很全啊,支持大佬

数据获取

  • 有两种方式,第一种是把以上数据存入data.xls文件中,然后使用pandas读取即可,比如:

data = 'data.xls'
df = pd.read_excel(data ) # 读取文本数据
df1=df.iloc[:,3] # 提取所有数据
print(type(df1))
values=[SnowNLP(i).sentiments for i in df1] # 遍历每条评论进行预测

  • 第二种方式是,我们直接把需要的数据放入变量,便于后续直接运行代码,如下:
data = ["文章内容充实,对实际项目使用有很好的帮助",
        "内容通俗易懂,可以快速入门Python的学习",
        "内容过于简单,不太完整,有点缺少重要内容,建议补充",
        "大佬这篇博文对我很有启发,感谢分享",
        "内容不太能理解,没学会,哈哈",
        "内容很多,也很全,学习了",
        "可能我基础薄弱,感觉看不懂啊",
        "标题党,一看就是水文",
        "内容过于浮夸,不够完整,建议从实际中多讲讲",
        "比较比较实用,学习了",
        "内容充实完整,值得推荐给小伙伴",
        "实用性还不错",
        "内容不错,容易上手,感谢分享",
        "内我很全啊,支持大佬",
        ]
print(data)

数据分析

大致过程分如下几个步骤:

  • 导入需要的模块或者库;
  • 将需要的数据存入列表;
  • 循环遍历所有数据;
  • 输出积极和消极情绪的概率;
  • 计算概率并根据结果生成图标的横纵坐标;
  • 结果显示。
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2024/3/12 
# 文件名称:test_snlp.py
# 作用:Python实现博客评论数据的情感分析

import subprocess
import sys
subprocess.check_call([sys.executable, "-m", "pip", "install", "snownlp"])
subprocess.check_call([sys.executable, "-m", "pip", "install", "matplotlib"])
from snownlp import SnowNLP
import matplotlib.pyplot as plt


data = ["文章内容充实,对实际项目使用有很好的帮助",
        "内容通俗易懂,可以快速入门Python的学习",
        "内容过于简单,不太完整,有点缺少重要内容,建议补充",
        "大佬这篇博文对我很有启发,感谢分享",
        "内容不太能理解,没学会,哈哈",
        "内容很多,也很全,学习了",
        "可能我基础薄弱,感觉看不懂啊",
        "标题党,一看就是水文",
        "内容过于浮夸,不够完整,建议从实际中多讲讲",
        "比较比较实用,学习了",
        "内容充实完整,值得推荐给小伙伴",
        "实用性还不错",
        "内容不错,容易上手,感谢分享",
        "内我很全啊,支持大佬",
        ]

# 遍历数据并进行预测
values = [SnowNLP(i).sentiments for i in data] 
print(values)
# 输出积极的概率,大于0.5积极的,小于0.5消极的

# 保存预测值
text = []
positive = 0
negative = 0
for i in values:
   if(i>=0.5):
       text.append("正面")
       positive = positive + 1
   else:
       text.append("负面")
       negative = negative + 1

# 计算好评率
rate = positive / (positive + negative)
print('好评率为:','%.f%%' % (rate * 100)) # 格式化为百分比

# 图例的横纵坐标
y = values
plt.rc('font', family='SimHei', size=10)
plt.plot(y, marker='o', mec='r', mfc='w', label=u'博客评分')
plt.xlabel('粉丝')
plt.ylabel('博客评分')

# 结果显示
plt.legend()  # 让图例生效
plt.title('博客评论情感分析', family='SimHei', size=14, color='red')
plt.savefig('plot.jpg')
  • 显示效果如下:

请在此添加图片描述

总结

Python实现博客评论数据的情感分析实际是使用了SnowNLP库的功能,SnowNLP不仅可以对评论数据进行情感分析,还能进行文本分类、中文分词、词性标注、提取关键词、文本相似度计算等操作。这样做数据分析其实为了帮助我们更好的了解我们的目标客户对于产品的使用反馈,可以很好帮助我们进一步提升产品质量。

目录
相关文章
|
21天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
【10月更文挑战第42天】本文是一篇技术性文章,旨在为初学者提供一份关于如何使用Python进行数据分析的入门指南。我们将从安装必要的工具开始,然后逐步介绍如何导入数据、处理数据、进行数据可视化以及建立预测模型。本文的目标是帮助读者理解数据分析的基本步骤和方法,并通过实际的代码示例来加深理解。
49 3
|
1月前
|
存储 机器学习/深度学习 数据可视化
数据集中存在大量的重复值,会对后续的数据分析和处理产生什么影响?
数据集中存在大量重复值可能会对后续的数据分析和处理产生多方面的负面影响
107 56
|
24天前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
73 4
数据分析的 10 个最佳 Python 库
|
4天前
|
数据采集 监控 数据挖掘
常用电商商品数据API接口(item get)概述,数据分析以及上货
电商商品数据API接口(item get)是电商平台上用于提供商品详细信息的接口。这些接口允许开发者或系统以编程方式获取商品的详细信息,包括但不限于商品的标题、价格、库存、图片、销量、规格参数、用户评价等。这些信息对于电商业务来说至关重要,是商品数据分析、价格监控、上货策略制定等工作的基础。
|
28天前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
|
25天前
|
存储 数据可视化 数据挖掘
Python数据分析项目:抖音短视频达人粉丝增长趋势
Python数据分析项目:抖音短视频达人粉丝增长趋势
|
29天前
|
数据采集 存储 数据可视化
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
29天前
|
数据采集 数据可视化 数据挖掘
掌握Python数据分析,解锁数据驱动的决策能力
掌握Python数据分析,解锁数据驱动的决策能力
下一篇
DataWorks