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

目录
相关文章
|
2月前
|
Web App开发 数据采集 JavaScript
动态网页爬取:Python如何获取JS加载的数据?
动态网页爬取:Python如何获取JS加载的数据?
435 58
|
2月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
200 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
2月前
|
人工智能 数据可视化 Python
在Python中对数据点进行标签化
本文介绍了如何在Python中使用Matplotlib和Seaborn对数据点进行标签化,提升数据可视化的信息量与可读性。通过散点图示例,展示了添加数据点标签的具体方法。标签化在标识数据点、分类数据可视化及趋势分析中具有重要作用。文章强调了根据需求选择合适工具,并保持图表清晰美观的重要性。
64 15
|
1月前
|
数据采集 Web App开发 JavaScript
Python爬虫解析动态网页:从渲染到数据提取
Python爬虫解析动态网页:从渲染到数据提取
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
Python数据分析,别再死磕Excel了!
Python数据分析,别再死磕Excel了!
116 2
|
2月前
|
存储 机器学习/深度学习 人工智能
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
本文探讨了多模态RAG系统的最优实现方案,通过模态特定处理与后期融合技术,在性能、准确性和复杂度间达成平衡。系统包含文档分割、内容提取、HTML转换、语义分块及向量化存储五大模块,有效保留结构和关系信息。相比传统方法,该方案显著提升了复杂查询的检索精度(+23%),并支持灵活升级。文章还介绍了查询处理机制与优势对比,为构建高效多模态RAG系统提供了实践指导。
477 0
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
|
2月前
|
机器学习/深度学习 人工智能 算法
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
本文介绍了如何使用 Python 和 YOLO v8 开发专属的 AI 视觉目标检测模型。首先讲解了 YOLO 的基本概念及其高效精准的特点,接着详细说明了环境搭建步骤,包括安装 Python、PyCharm 和 Ultralytics 库。随后引导读者加载预训练模型进行图片验证,并准备数据集以训练自定义模型。最后,展示了如何验证训练好的模型并提供示例代码。通过本文,你将学会从零开始打造自己的目标检测系统,满足实际场景需求。
515 0
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
|
2月前
|
数据采集 存储 数据可视化
2025python实战:利用海外代理IP验证广告投放效果
本文介绍了如何利用Python结合海外代理IP技术,验证广告在不同国家的实际投放效果。通过模拟各地网络环境访问广告页面,检查内容是否与计划一致,并生成曝光报告。具体实现包括:获取高质量代理IP、使用Selenium或Playwright模拟用户行为、解析广告内容及生成可视化报告。案例显示,该方法能有效确保广告精准投放,优化策略并节省预算。
|
11月前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
176 2
|
11月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
624 4

推荐镜像

更多