基于python豆瓣电影评论的情感分析和聚类分析,聚类分析有手肘法进行检验,情感分析用snownlp

基于Python的豆瓣电影评论的情感分析和聚类分析是一种用于探索电影评论数据的方法。

情感分析
情感分析旨在从文本中提取情感信息,并对其进行分类,如正面、负面或中性。在这里,我们使用了一个名为snownlp的Python库来进行情感分析。Snownlp是一个基于概率算法和自然语言处理技术的情感分析工具。

首先,我们需要收集豆瓣电影的评论数据。可以使用豆瓣API或其他方式获取评论文本。接下来,我们将使用snownlp库对每条评论进行情感分析。该库会对文本进行处理并返回情感得分,该得分可以表示评论的情感极性。通过设定阈值,我们可以将评论划分为正面、负面或中性。

情感分析可以帮助我们了解用户对电影的情感倾向,并评估电影的受欢迎程度。例如,通过统计正面评论的比例,我们可以获知电影是否受到观众的喜爱。

聚类分析
聚类分析是一种将数据划分为相似组的方法,以便发现其中的模式和结构。在豆瓣电影评论中,我们可以使用聚类分析来将评论划分为不同的群组,每个群组具有相似的主题或情感。

一种常用的聚类算法是K-means算法。它通过计算数据点之间的距离,并将数据点分配到最近的簇中。在聚类分析中,我们通常会使用手肘法(Elbow Method)来确定最佳的簇数。

手肘法通过绘制簇数与聚类误差(即数据点与其所属簇中心的距离之和)之间的关系图。随着簇数的增加,聚类误差通常会逐渐减少。然而,当簇数增加到一定程度时,再增加簇数对聚类误差的减少作用较小。这时,图形呈现出一个明显的“弯曲”点,被称为“手肘点”。手肘点所对应的簇数被认为是最佳的簇数。

聚类分析可以帮助我们发现豆瓣电影评论中的不同主题、观点或情感集群。通过对不同群组进行进一步分析,我们可以了解电影受众的兴趣爱好、意见和评价。

主要代码:

import pandas as pd
df=pd.read_csv('豆瓣评论 坚如磐石.csv')
from snownlp import SnowNLP
#获取情感分数
line0=[]
list1=[]
for line in df.values.tolist():s = SnowNLP(str(line[1]))print(s.sentiments)list1.append(s.sentiments)if (s.sentiments>= 0.6):line0.append('积极')elif (0.6>s.sentiments>= 0.4):line0.append('中性')else:line0.append('消极')
print(line0)
df['情感分析']=line0
df['情感分数']=list1
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
data=df.groupby(by=['情感分析'])['评论'].count().reset_index()x=data['情感分析'].tolist()
y=data['评论'].tolist()
plt.figure(figsize=(20, 8), dpi=100)
# 绘制饼图
plt.pie(y, labels=x, autopct="%1.2f%%", colors=['b','r','g','y','c','m','y','k','c','g','y'])
# 显示图例
plt.legend()
# 添加标题
plt.title("情感分析饼图")
#为了让显示的饼图保持圆形,需要添加axis保证长宽一样
plt.axis('equal')
# 显示图像
plt.show()

运行效果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis入门到实战-基础篇+实战篇+高级篇+原理篇

Redis入门到实战-基础篇实战篇高级篇原理篇 文章目录 Redis入门到实战-基础篇实战篇高级篇原理篇一、基础篇二、实战篇三、高级篇四、原理篇 一、基础篇 1.基础篇笔记:https://blog.csdn.net/cygqtt/article/details/126974142 二、实战篇 1.实战篇笔记:…

Java项目:基于SSM框架实现同城蔬菜配送管理系统(SSM+B/S架构+源码+数据库+毕业论文)

一、项目简介 本项目是一套ssm825基于SSM框架实现同城蔬菜配送管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试&…

web前端javascript笔记——(14)Navigator 、History、Location

Navigator <!DOCTYPE html><head><meta charset"UTF-8"><title></title><style></style><script type"text/javascript">/*DOM文档对象&#xff0c;通过js操作网页BOM 浏览器对象BOM可以使我们通过JS来操…

HarmonyOS4.0系统性深入开发26方舟开发框架(ArkUI)概述

方舟开发框架&#xff08;ArkUI&#xff09;概述 方舟开发框架&#xff08;简称ArkUI&#xff09;为HarmonyOS应用的UI开发提供了完整的基础设施&#xff0c;包括简洁的UI语法、丰富的UI功能&#xff08;组件、布局、动画以及交互事件&#xff09;&#xff0c;以及实时界面预览…

林浩然的数学奇遇记:从计算机视觉到深海中的数学宝藏

林浩然的数学奇遇记&#xff1a;从计算机视觉到深海中的数学宝藏 Lin Haoran’s Mathematical Odyssey: From Computer Vision to Mathematical Treasures in the Deep Sea 在那个充满像素与算法的世界里&#xff0c;有一位名叫林浩然的主角&#xff0c;他并非怀揣着成为华罗庚…

【视野提升】ChatGPT的系统是如何工作的?

类似ChatGPT的系统是如何工作的&#xff1f; 我们试图在下图中解释它是如何工作的。这个过程可以分为两个部分。 训练 要训练一个ChatGPT模型&#xff0c;有两个阶段&#xff1a; 预训练 在这个阶段&#xff0c;我们在大量互联网数据上训练一个GPT模型&#xff08;仅解码器转…

【mongoDB】数据库的创建和删除

目录 1. 查看所有数据库 2.创建数据库 3.查看当前连接的数据库 4.删除数据库 1. 查看所有数据库 show dbs 2.创建数据库 use 数据库名 例如创建一个名为 aaa 的数据库 3.查看当前连接的数据库 db 4.删除数据库 use 数据库名 db.dropDataBase() 比如删除数据库 aaa

《WebKit技术内幕》学习之十三(3):移动WebKit

3 其他机制 3.1 新渲染机制 为了移动领域更好的用户体验&#xff0c;渲染机制所做的改进主要是提升渲染性能来增加响应的速度&#xff0c;甚至不惜牺牲一些跟规范定义的行为不一致的地方。在这一小节中主要介绍三个方面的技术&#xff0c;其一是Tiled Backing Store&#x…

vue3 组件通信 mitt

mitt 安装 pnpm add mitttypescript 在 tsconfig.json 中设置 “strict”: true {"compilerOptions": {"strict": true,} }使用 导出 emitter src/utils/mitt/index.ts import mitt from mitttype Events {get-name: string }export const emitter …

[Python] 机器学习 - 常用数据集(Dataset)之鸢尾花(Iris)数据集介绍,数据可视化和使用案例

鸢(yuān)尾花(Iris)数据集介绍 鸢【音&#xff1a;yuān】尾花&#xff08;Iris&#xff09;是单子叶百合目花卉&#xff0c;是一种比较常见的花&#xff0c;而且鸢尾花的品种较多&#xff0c;在某个公园里你可能不经意间就能碰见它。 鸢尾花数据集最初由Edgar Anderson 测量…

Springboot,使用sharedingjdbc 分库分表,最佳实践。

一、简介 Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈&#xff0c;它由 JDBC、Proxy 和 Sidecar&#xff08;规划中&#xff09;这 3 款既能够独立部署&#xff0c;又支持混合部署配合使用的产品组成。 它们均提供标准化的数据水平扩展、分布式事务和…

我在代码随想录|写代码Day17之二叉树-222.完全二叉树的节点个数,110.平衡二叉树,257. 二叉树的所有路径

学习目标&#xff1a; 博主介绍: 27dCnc 专题 : 数据结构帮助小白快速入门 &#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d; ☆*: .&#xff61;. o(≧▽≦)…

数学建模绘图

注意&#xff1a;本文章旨在记录观看B站UP数模加油站之后的笔记文章&#xff0c;无任何商业用途~~ 必备网站 以下网站我都试过&#xff0c;可以正常访问 配色&#xff08;取色&#xff09;网站&#xff1a; Color Palettes Generator and Color Gradient Tool Python&#x…

Pandas ------ 通过 np.array 函数去掉数据中的 index

Pandas ------ 通过 np.array 函数去掉数据中的 index 引言正文 引言 在做 pandas 数据处理的时候遇到了一个问题&#xff0c;获取到的数据总是会带有 dateframe 的格式&#xff0c;即总会有 index 显示出来。为了去掉这些显示&#xff0c;我们可以使用 np.array() 函数进行数…

python Django入门

1.创建Django项目 方式一:进入到指定要存放项目的目录&#xff0c;执行*django-admin startproject “projectname”* 来创建一个名方式二:使用Pycharm专业版创建Django项目 创建项目后&#xff0c;默认的目录结构: manage.py:是Django用于管理本项目的命令行工具&#xff0c…

HarmonyOS鸿蒙学习基础篇 - Text文本组件

该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 Text文本组件是可以显示一段文本的组件。该组件从API Version 7开始支持&#xff0c;从API version 9开始&#xff0c;该接口支持在ArkTS卡片中使用。 子组件 可…

KG110写频 AT28C64芯片替换

上一个文章写了写频计算公式 https://blog.csdn.net/firseve/article/details/135743549 没想到就几天好多人给点赞&#xff0c;这个中继现在还有很多人在使用么&#xff1f;谁能给解个惑 今天搜了下这个中继设备&#xff0c;默认原机器使用的芯片是 2716 2732 &#xff08;2…

php怎么输入一个变量,http常用的两种请求方式getpost(ctf基础)

php是网页脚本语言&#xff0c;网页一般支持两种提交变量的方式&#xff0c;即get和post get方式传参 直接在网页URL的后面写上【?a1027】&#xff0c;如果有多个参数则用&符号连接&#xff0c; 如【?a10&b27】 post方式传参 需要借助插件&#xff0c;ctfer必备插…

自学C语言-6

第6章 选择结构程序设计 顺序结构程序设计最简单&#xff0c;但通常无法解决生活中的选择性问题。选择结构程序设计需要用到一些条件判断语句&#xff0c;可实现的程序功能更加复杂&#xff0c;程序的逻辑性与灵活性也更加强大。 本章致力于使读者掌握使用if语句进行条件判断的…

OpenHarmony开发——GN快速上手

背景 最近在研究鸿蒙操作系统的开源项目OpenHarmony&#xff0c;该项目使用了GNNinja工具链进行配置&#xff0c;编译&#xff0c;于是开始研究GN如何使用。 本文的所有信息均来自GN官网和本人个人体会。 GN快速入门 使用GN GN的主要功能是根据配置文件&#xff08;.gn, BU…