爬虫实战之《流浪地球》豆瓣影评分析(三)

news/2024/11/17 22:40:01/

4. 分析评论数量及评分与时间的关系

首先导入数据,进行一个初步的统计:

import pandas as pd
data = pd.read_csv('doubanliulangdiqiu.csv',encoding ='GB18030')
data['评分'].value_counts()

可以看到这样的情况:
在这里插入图片描述
如果没有数据,可以去看爬虫实战之《流浪地球》豆瓣影评分析(一)的爬取过程。

先做一个饼图来分析分布情况,先把评分的值计算命名为num,然后设置字体,绘制饼图,设置小数点的位数,还有给一个标题:

import matplotlib.pyplot as plt
num = data['评分'].value_counts()
plt.rcParams['font.sans-serif'] = "Simhei"
plt.pie(num, autopct="%.2f %%",labels=num.index)
plt.title('《流浪地球》豆瓣短评评分分数分布')

最后是结果:
在这里插入图片描述

短评数量与日期的关系

因为之前爬取数据的时候,把时分秒也爬了下来,而这次只需要日期,所以要选择一下。然后用日期排序:

num = data['发表时间'].apply(lambda x: x.split(" ")[0]).value_counts()
num = num.sort_index()  # 日期排序
plt.plot(range(len(num)),num)  # 刻度与num的长度一致
plt.xticks(range(len(num)),num.index,rotation=90) 
plt.grid()  # 添加网格背景

最后效果:
在这里插入图片描述
因为只有500条数据,可以看懂,2月五号上映的时候到了一个峰值。

短评数量与时刻的关系

前面是日期,这次就是时刻了:

num = pd.to_datetime(data['发表时间']).apply(lambda x: x.hour).value_counts()  # 首先转换成时间格式,然后转换成小
num = num.sort_index()
plt.plot(range(len(num)),num)  # 刻度与num的长度一致
plt.xticks(range(len(num)),num.index) 
plt.title("评论数量随时刻的变化情况")
plt.grid()  # 添加网格背景

在这里插入图片描述
可以看出来,凌晨基本没人,晚上是高峰期,可以看出来大部分人是夜猫子

不同评分数量与时间的关系

首先需要进行去重操作,以发表时间为例:data['发表时间'].drop_duplicates().sort_values()。时间也处理一下data["发表时间"] = data["发表时间"].apply(lambda x: x.split(' ')[0])
然后建立一个空表格,然后进行数据填充,最后指标:

在这里插入代码片data["发表时间"] = data["发表时间"].apply(lambda x: x.split(' ')[0])
tmp = pd.DataFrame(0,index=data['发表时间'].drop_duplicates().sort_values(),# 去重columns=data['评分'].drop_duplicates().sort_values())
for i,j in zip(data['发表时间'],data["评分"]):tmp.loc[i, j] +=1
tmp = tmp.iloc[:,:-1]n,m= tmp.shape
plt.figure(figsize=(10,5))
plt.rcParams['axes.unicode_minus']=False
for i in range(m):plt.plot(range(n),(-1 if i<2 else 1)*tmp.iloc[:,i])#绘制图plt.fill_between(range(n),(-1 if i<2 else 1)*tmp.iloc[:,i],alpha=0.5)
plt.grid()
plt.legend(tmp.columns)   # 图例
plt.xticks(range(n),tmp.index,rotation=45)  # 横轴左闭
plt.show()

最后的效果图:
在这里插入图片描述
分析一下趋势:

  1. 在点映期间,对电影的大部分评价都是正面的,但是上映之后两级分化。
  2. 一星评价中,在2019-02-10有一个小高峰,当天是星期一,好评低,可能是刷负分的评价

但是这是500条数据,不能代表所有!!!

5. 分析评论者的城市分布情况

还是一样,先导入数据,然后数据处理,最后绘制条形图:

import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv("doubanliulangdiqiu.csv",encoding='GB18030')
num = data['居住城市'].value_counts()[:10]
plt.rcParams['font.sans-serif'] = "Simhei"
plt.bar(range(10),num)
plt.xticks(range(10),num.index,rotation=45)
plt.title('平均价数量最多的前十个城市')
for i,j in enumerate(num):plt.text(i,j,j, ha = 'center',va='bottom')
plt.show()

看一下效果:
在这里插入图片描述
得出了评价数最多的十个城市后。就开始整理数据,一样,先构建一个空表格,然后再统计导入数据

tmp = pd.DataFrame(0,index= data['评分'].drop_duplicates().sort_values(),columns=data['居住城市'].drop_duplicates())
for i ,j in zip(data['评分'],data['居住城市']):tmp.loc[i,j] += 1         

但是城市太多了,就取前五个城市吧

cities = num.index[:5] #  取前五个城市
tmp=tmp.loc[:,cities] # 选取评论数前五的城市
tmp = tmp.iloc[:5,:]# 去除NAN

效果:
在这里插入图片描述
然后就是跟上面差不多的代码,稍微改一下:

n,m= tmp.shape
plt.figure(figsize=(10,5))
plt.rcParams['axes.unicode_minus']=False
for i in range(m):plt.plot(range(n),tmp.iloc[:,i])#绘制图plt.fill_between(range(n),tmp.iloc[:,i],alpha=0.5)
plt.grid()
plt.title("评论评分与城市的关系")
plt.legend(tmp.columns)   # 图例
plt.xticks(range(n),tmp.index,rotation=45)  # 横轴左闭
plt.show()

效果:
在这里插入图片描述

总结:

  1. 从好评与差评的关键信息展示上可以看得出该影片是中国难得的科幻类型的影片,讲述了人类带着地球流浪的事情,好评主要因为特效和爱国,差评主要因为剧情生硬。
  2. 从日期上面去进行评论数量分布统计发现评论数量最多的在上映后一周内。点映时评论较好,但是上映后口碑两极分化。
  3. 北京上海的用户发表短评最多,常住北京的用户好评居多,上海的用户倾向给差评。

谢谢大家,喜欢就点个赞吧


http://www.ppmy.cn/news/964012.html

相关文章

爬虫实战之《流浪地球》豆瓣影评分析(二)

3. 分析好评与差评的关键信息 依靠绘制词云图&#xff0c;来分析好评与差评的关键信息的区别 数据预处理 依靠上一篇爬取到的csv文件&#xff0c;来进行分析&#xff0c;首先导入文件&#xff0c;重点是短评正文的信息。 首先是使用结巴库来进行分词&#xff0c;然后去除停用…

爬虫实战之《流浪地球》豆瓣影评分析(一)

背景与挖掘目标获取豆瓣评论数据分析好评与差评的关键信息分析评论数量及评分与时间的关系分析评论者的城市分布情况 1. 背景与挖掘目标 豆瓣&#xff08;douban&#xff09;是一个社区网站。网站由杨勃&#xff08;网名“阿北”&#xff09; 创立于2005年3月6日。该网站以书影…

《流浪地球》影评数据爬取分析

《流浪地球》影评数据爬取分析 人生苦短&#xff0c;我用Python。 阿巴阿巴阿巴&#xff0c;爬虫初学者&#xff0c;志在记录爬虫笔记&#xff0c;交流爬虫思路。 话不多说&#xff0c;开始进行操作。 对于电影数据影评的爬取&#xff0c;这里选取的网站是豆瓣网&#xff08;…

650亿参数,训练飙升38%!LLaMA基础大模型复刻最佳实践开源,GitHub已获30k星

开源LLaMA神话再次复现&#xff01;首个开源650亿参数大模型高性能预训练方案&#xff0c;训练加速38%&#xff0c;低成本打造量身大模型。 「百模大战」正风起云涌&#xff0c;AIGC相关企业融资和并购金额也屡创新高&#xff0c;全球科技企业争相入局。 然而&#xff0c;AI大…

AI炒股:用Claude来分析A股2023年中报业绩预告

Claude是和ChatGPT类似的AI大模型&#xff0c;据测试 AI 的水平能力接近 GPT-4&#xff0c;支持高达 100K token 的上下文。Claude只需要到官方网站注册账号后就可以直接免费使用。不过&#xff0c;目前智能美国和英国的 IP 可以注册和使用。 Claude支持上传文档功能&#xff…

人人都能看懂的 ChatGPT 原理课:从 GPT1.0 到 ChatGPT,经历了什么?

目录 GPT 初代 GPT 的语言建模 语言模型的编解码 GPT-2 GPT-3 大模型中的大模型

我用ChatGPT搞懂GPT技术原理,只问了30个问题,这是极致的学习体验!

自己前段时间写了一篇文章《问了ChatGPT 上百个问题后&#xff0c;我断定ChatGPT可以重塑学习范式&#xff01;》&#xff0c;讲了使用ChatGPT的感受&#xff0c;最近我开始学习GPT的技术原理&#xff0c;原因有三个&#xff1a; 1、工作中有可能要用到GPT&#xff0c;理解GPT的…

ChatGPT的插件能用了,每月 20 美元的实习生真香

文章目录 开启插件并使用其他补充缺点和不足总结 哈喽嗨&#xff01;你好&#xff0c;我是小雨青年&#xff0c;一名 追赶 AI 步伐的程序员。 自从上周 OpenAI 官宣了即将开放插件给 Plus 用户以来&#xff0c;这三天我就每天都会刷新ChatGPT 设置页面。 直到今天早上&#x…