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

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

  • 学习建议
  • SnowNLP基础
    • 什么是SnowNLP?
    • SnowNLP情感分析
  • SnowNLP使用
    • SnowNLP安装
    • 情感分析
    • 中文分词
    • 关键词提取
    • 拼音、词性标准
  • SnowNLP实战-博客评论数据的情感分析
    • 数据准备
    • 数据获取
    • 数据分析
  • 总结

学习建议

  • 现在很多网站、小程序、应用软件、博客、电商购物平台等,都有很多的用户评论数据,这些数据包含了用户对产品的认知、看法和一些立场;
  • 那么我们可以对这些数据进行情感分析,可以得到一些有价值的信息,帮助我们进一步提升产品价值或用户体验;
  • 本文主要针对某个博客的评论数据进行分析,分析用户的情感变化,包括正面的、负面的情绪变化等;
  • 学习本文建议对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不仅可以对评论数据进行情感分析,还能进行文本分类、中文分词、词性标注、提取关键词、文本相似度计算等操作。这样做数据分析其实为了帮助我们更好的了解我们的目标客户对于产品的使用反馈,可以很好帮助我们进一步提升产品质量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/461589.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于振弦采集仪的应用编写

instruction: 1、本应用基于深圳市安传物联科技有限公司所生产的八通道振弦变送器产品。该产品为MAX485 信号的变送设备, 并以Modbus协议输出。 2、本应用采用python语言编写。 功能实现: 1、发送: 01 03 10 00 00 02 C0 CB并…

JVM之调优(一)

背景:生产环境由于堆内存较大,fullgc 垃圾回收导致程序卡顿问题(假死) 目录 一、程序卡顿导致的影响 前端页面空白后端数据重复 二、解决方法 降低堆内存大小使用合适的垃圾回收器(可以尝试,还未进行测试…

【python】爬取杭州市二手房销售数据做数据分析【附源码】

一、背景 在数据分析和市场调研中,获取房地产数据是至关重要的一环。本文介绍了如何利用 Python 中的 requests、lxml 库以及 pandas 库,结合 XPath 解析网页信息,实现对链家网二手房销售数据的爬取,并将数据导出为 Excel 文件的过…

捋顺【反函数求导】

设 d y d x f ( x ) 则 d x d y 1 f ( x ) 以 y t a n x 为 例 , d y / d x s e c 2 x , d x / d y 1 s e c 2 x c o s 2 x 到 此 为 止 , 似 乎 难 以 推 导 , 但 是 假 如 用 t a n x ( 也 就 是 y ) 将 c o s 2 x 表 示 出 来 &…

jenkins容器中安装python遇到问题

在Jenkins容器中安装配置Python时遇到问题 执行./configure --prefix/opt/python3/时遇到configure: error: no acceptable C compiler found in $PATH 这个问题就是缺少gcc编译环境。将gcc安装上即可: yum install -y gcc##前提是容器里的系统是cenos才可以&#…

实在智能Agent——RPA终极进化方向

RPA技术备受瞩目,它通过“机器人”自动化了人力执行的重复性、低复杂度任务,解放了员工并降低了企业成本。RPA机器人全天候运行,避免人为错误,高效处理任务,成为处理事务、操作数据、回应查询的理想选择。在管理后台&a…

易方达产品亏损仍存,“老鼠仓”阴影犹在,如何突出重围?

近日,易方达基金宣布易方达沪深300 ETF跻身“千亿规模ETF”行列,成为国内“ETF千亿俱乐部”的第三位成员。截至3月8日,该基金的规模增长112.21亿元,涨幅9.45%,规模增量在10亿以上的股票型ETF产品中排名第一。 回望202…

(网络安全)一款强大的逆向分析工具,开源!

工具介绍 Ghidra 是由美国国家安全局(NSA)研究部门开发的软件逆向工程(SRE)套件,用于支持网络安全任务。包括一套功能齐全的高端软件分析工具,使用户能够在各种平台(Windows、Mac OS和Linux)分析编译后的代…

TCP相关特性

协议段格式 • 源/⽬的端⼝号:表⽰数据是从哪个进程来,到哪个进程去; • 32位序号/32位确认号:后⾯详细讲; • 4位TCP报头⻓度:表⽰该TCP头部有多少个32位bit(有多少个4字节);所以TCP头部最⼤⻓度是15*460 • 6位标志位: ◦ URG:紧急指针是否有效 ◦ ACK:确认号是否有效…

排序(10)——非比较排序计数排序

目录 思想 局限性 基本思路 代码实现 特性总结 思想 思想:计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用。 操作步骤: 统计相同元素出现次数根据统计的结果将序列回收到原来的序列中 首先有一个a数组,里面都有元素&a…

部署prometheus+Grafana可视化仪表盘监控服务

一、部署prometheus及监控仪表盘 简介 Prometheus是开源监控报警系统和时序列数据库(TSDB)。 Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控,输出被监控组件信息的HTTP接口被叫做expo…

C 练习实例77-指向指针的指针-二维数组

关于数组的一些操作 #include<stdio.h> #include<stdio.h> void fun(int b[],int length) {for(int i0;i<length;i){printf("%d ",b[i]);}printf("\n");for(int i0;i<length;i){ //数组作为形参传递&#xff0c;传递的是指针&#xff0…

生成单一c段或者连续c段范围内的所有ip地址+生成范围内C段脚本

1. 背景 马上有电子政务外网攻防演练要处理ip 2. 脚本1 生成c段和连续c段所有ip地址.py 用处&#xff1a;生成单一c段或者连续c段范围内的所有ip地址。 用法&#xff1a;ipc.txt 放入 ip段或者两个ip段范围&#xff1a;如&#xff1a; 192.168.3.0/24 172.16.1.0/24-1…

Java基础-集合_上

文章目录 1.基本介绍2.集合的框架体系&#xff08;单列、双列&#xff09;单列集合双列集合比较 3.Collection接口和常用方法1.Collection接口实现类的特点2.常用方法&#xff08;使用ArrayList演示&#xff09;代码结果 3.迭代器遍历基本介绍代码结果 4.增强for循环遍历代码结…

【JAVA基础】算法与集合

1 查找 1.1 二分查找 public class Main {public static void main(String[] args) throws IOException, CloneNotSupportedException, ParseException { //数组必须有序int[] arr{1,2,4,5,6,24,123};System.out.println(binarySearch(arr,123));//6}public static int bina…

Docker Compose基本配置及使用笔记

Docker Compose基本配置及使用笔记 简介 Docker Compose 是一个用于定义和运行多个 Docker 容器应用程序的工具。它使用 YAML 文件来配置应用程序的服务&#xff0c;并通过简单的命令集管理这些服务的生命周期。 1.步骤1 代码如下&#xff1a;docker-compose.yml放在虚拟机roo…

vite打包时发布时,放在服务器的二级目录中

方式一 hash模式 如果我们的站点根目录为 public , 我们访问的时候使用的是 http://www.abc.com/ 访问到了站点的根目当&#xff0c;现在我们要访问 http://www.abc.com/mysite/#/ 配置如下 修改 vite.config.js base:“/mysite/” 修改 router中的配置 上面的步骤完成&…

【网站项目】320社区物业管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

C#创建第一个PIESDK模版的项目

目录 环境配置创建项目方式 环境配置 1软件安装 通过安装光盘或者U盘等介质读取PIE软件的安装程序和使用文档。程序安装过程比较简单&#xff0c;软件本身不借助与任何第三方程序&#xff0c;直接双击安装程序【PIESDK.Net_V6.3_Windows_X64.exe】安装文件&#xff0c;即可安装…