个人简介
姓名:吕嘉瑶
性别:女
专业班级:信科1501班
邮箱:872993458@qq.com
获奖经历:
2018年美国大学生数学建模竞赛二等奖
2017年东北农业大学“朗昇杯”数据挖掘竞赛一等奖
2017年东北三省数学建模联赛一等奖
2017年全国大学生数学建模竞赛省一等奖
2016年全国大学生数学建模竞赛省三等奖
东北农业大学2017年”三下乡”社会实践校三等奖
大一大二连续两年获得“三好学生”奖学金
兴趣爱好:
爱好唱歌,小提琴
一、实验目的
利用豆瓣电影TOP250的数据,通过R语言爬虫获取数据,进行数据清洗,利用数据可视化的方式,将评分人数最多的10部影片、电影评分最多的区间、电影类型占比、电影国家占比进行直观的展示。
二、实验内容
1. 数据获取
对于TOP250豆瓣电影的数据,最权威的来源肯定是来自于豆瓣电影官方网站(https://movie.douban.com/top250)的数据提供。但是官方网站页面一页电影数据量较少,爬取数据耗时漫长,因此选择爬取知乎中整理出的评分大于8.3分的豆瓣电影信息数据(https://zhuanlan.zhihu.com/p/22561617)。
利用R语言,将爬取到的原始数据,全部汇总在一个excel表中。其中包括电影名称,网址,电影评分,评价人数,上映年份,所属国家及电影类型,所得到的表格如下:
2. 数据处理
首先选中电影名称列,按住Ctrl+F键在出现的界面中用空格将“(豆瓣)”替换。
其次用Excel文本分列的方法,将在一个单元格中的电影类型分解到各个单元格中。
然后进行数据透视。电影评分score列透视——选中电影评分score列,用【数据透视】将score拖至到数值文本框内即可统计出每个评分的个数。按行标签升序排列得到所要数据,做电影评分区间漏斗图。所属国家透视——由于分列后国家和电影类型不能完全分开,我们将没有表头的列进行标号,进而将other列与1列数据化为一列,在行标签中筛选出所有国家,对国家数据进行透视。公式为
=OFFSET(F$1,TRUNC((ROW()-1)/2),MOD(ROW()-1,2))
得到降序后的数据。电影类型的数据透视步骤同上。
电影评分、所属国家、电影类型降序后所得数据如下:
3. 数据可视化分析
最终整理出4个excel表格,分别是【电影数据表】【汇总表—score】【汇总表—国家】【汇总表—电影类型】。
利用在线可视化工具【BDP】:将表格数据上传,做出评价人数最多的TOP10电影图表及国家所占比环形饼图:(https://me.bdp.cn/home.html)。
利用在线可视化工具【ECharts】做出电影评分区间漏斗图及电影类型词云图:
(http://echarts.baidu.com/echarts2/doc/example.html)
三、实验程序与结果
1.程序
library(rvest)
library(stringr)
# 指定需要抓取的URL
url
# 读取网页内容
page
# 获取电影的链接,用%>%符号进行层级划分
movie_url a') %>%html_attr("href")
# 获取电影名称
movie_name a') %>% html_text()
# 获取电影的其他描述信息
describe % html_text()
# 筛选出需要的子集
describe
# 通过正则表达式匹配评分
score
# 通过正则表达式匹配评价人数
evalue_users
# 通过正则表达式匹配电影年份
year
# 由于生产国和电影类型用/分割,且没有固定的规律,故将生产国和电影类型存入到一个变量中
other
# 构建数据框
raw_data
head(raw_data)
# 将抓取的数据写出到本地
write.csv(raw_data, 'C:/Users/lenovo/Desktop/movies.csv', row.names =FALSE)
2.结果
评价人数最多的前十部电影分别是:
【肖申克的救赎】 【这个杀手不太冷】 【盗梦空间】 【阿甘正传】 【三傻大闹宝莱坞】 【泰坦尼克号】 【千与千寻】 【让子弹飞】 【海上钢琴师】 【少年派的奇幻漂流】
占比最多的前五个国家分别是:美国、日本、英国、中国香港、法国
从漏斗图可以看出,评分区间在[8.3,8.5]内的电影数目最多,其次是评分区间[8.6,8.8],且评分越高,所占的电影数量越少。
从词云图可以看出,大多数的电影类型为剧情类,其次是喜剧、犯罪、爱情类,动画与动作类电影数量也较多。
如有任何问题
您可以发送邮件至
或关注微博/知乎/微信后台留言
我们期待您的提问!
微博:数据智农
知乎:数据智农
制作:陈天旭
【数据可视化】基于自然语言情感分析的网店评价
【数据可视化】数据分析与处理
领取专属 10元无门槛券
私享最新 技术干货