豆瓣13万电影数据统计与分析

早在2016年,写过几篇关于爬虫的文章,并且针对新浪微博编写了一个小爬虫WSpider,用于爬取用户信息和评论内容,可惜的是相关数据没保留下来,有点遗憾。最近,为了完善和巩固自己的知识体系,于是又动了动手爬取数据的念头。又考虑在NLP、推荐系统、深度学习业余项目中也能使用,最终选择了豆瓣电影,总共从豆瓣里爬取了13w+的电影,外加28万+影评(截止2019年8月上旬),电影内容包括电影名称、上映日期、国家、语种、导演、演员、标签、豆瓣评分、投票数量等条目。看到这些数据,真是让人心潮澎湃,为了探索电影数据背后的意义,本文将从各个不同的维度对电影数据进行分析。关于爬虫相关的内容,后续有时间再分享出来吧!

前言

从豆瓣爬取下来的电影数据横跨147年(1873年-2019年,部分年份未收录),共收集了131356部,电影包括剧情、喜剧、动作、爱情、科幻、动画、悬疑、惊悚、恐怖、犯罪等种类。如此漫长的电影历史,也再次刷新了自己对影视行业的认知。这么多年以来,电影的历史发展情况究竟如何?用户对电影的喜好程度又是何种现状?想必能说出详情的的人少之又少。没关系,本文将从数据里为你挖掘出更多的知识,让数据告诉我们真相。

全量电影数据分析

为了更好的利用数据,首先将对爬取到的全量数据进行分析,电影数据里面包含了多个字段,少量电影在部分字段取值为空,对整体影响不大,统计阶段暂且忽略不计。下面,将从上映日期、评分、发行国家、语种等方面进行进一步的探讨。

基于上映日期统计

从Fig 1可以看出,随着时代的推移,电影的整体数量呈现上升趋势,并在2017年达到了峰值,从数据上可以看出影视行业也随着时代的进步而逐渐走向繁荣。2019年由于还有一个季度未录入,因此在数据上呈现下降趋势。

Fig 1.每年上映的电影数(趋势图)

基于评分统计

如此多的电影,对于用户来说,其价值如何呢?笔者根据豆瓣评分对电影进行了分析。豆瓣评分从0-10,由于评分为0的记录有可能是没有用户评分,因此这里将评分限制在大于0的区域。针对这13w电影,存在评分的电影仅38492部,近70%的电影都没有评分或者评分为0,这些有评分的电影里,2000年以后上映的电影有24865部,可以看出,过去生活水平比较低,对电影的关注也比较至少,近年来,生活质量提高了,对电影的关注度也开始活跃起来了。总的来讲,平均评分为6.6分,根据各个评分的数据,绘制了如下分布图。如Fig 2所示,电影评分整体上还是呈现出正态分布的形式,中心在7.0左右。

Fig 2.各个评分下的电影数统计

基于发行地域统计

评分可以直接看出用户对电影的偏爱程度,而从电影发行地域出发,可以看出这个地区电影行业的发展形势。从Fig 3可以看出,美国是电影发行量最大的区域,接近30%。其次为中国大陆、日本等地域。排名中香港、台湾单独列出来了,主要是按照地域进行划分来着。后面按照国家进行统计的地方,会将香港、澳门、台湾合并为中国。总的来说,美国的电影质量确实很高,当然国内电影也在逐渐朝着好的方向发展,比如今年出来的《哪吒》、《流浪地球》和之前的《让子弹飞》,在豆瓣的热度都比较大,很是不错,也期待后续能有更好的国内电影出品吧!

Fig 3.按发行地域统计电影数(Top 50的发行地域)

部分国家电影形势分析

从发行地域来看,美国属于电影行业巨头,为了了解这些国家的历史影视情况,笔者筛选了部分国家,对候选国家的电影数进行统计分析,结果如Fig 4所示。从发行量来看,美国在上世纪50年代之前是要优于其他国家,在20世纪50年代到八十年代之间,整体的电影发行量不相上下,之后的30多年美国一直要领先了其他国家,直到2016年,中国的电影发行数量才超于美国。从图上可以看出,国内的电影从2010年才开始逐步提升的。

Fig 4. 各个国家每年发行的电影量

为了进一步了解用户对各个国家出品的电影的喜爱情况,笔者筛选最近30年的电影数据(1990-2019),对部分国家每年的平均评分进行了对比(豆瓣评分),如Fig 5所示。让人惊讶的是,随着电影数量增多的同时,电影整体的评分却在逐年下降,这难道意味着烂片越来越多了么?还是意味着以往评分的人数少,偏差太大?真是百思不得其解。仔细看看,发现中国从2016年开始,后续几年的电影评分整体上呈现一个上升趋势,看来国内电影形势真的是有好转呀。

Fig 5.不同国家每年发行的电影的平均评分(1990-2009)

基于语种统计

国家有语言之分,影片也有语种之分,笔者针对这些电影,还做了语种统计,如Fig 5所示,排名Top 3的分别为:英语、汉语普通话、日语。其中英语的数量几乎是汉语的3倍。

Fig 6.按语言统计电影数

为了便于观看,可以采用饼状图的形式描绘各个语种下的电影占比,如Fig 7所示,英语占比42%,汉语普通话仅13%!

Fig 7.各个语种下的电影比例图

电影类型词云

这么多电影,都是什么类型的呢?由于一部电影可以划分成多个类型,因此为了更直观一点查看类型的整体情况,笔者采用了词云的方式,将影评类型先分词然后表现出来。如Fig 8所示。第一眼看到的当然就是剧情了,其次是喜剧、爱情、动作等类型。

Fig 8.电影类型词云

标签词云

每个电影除了上述属性外,还有一个比较好的数据——标签。对于笔者来说,标签数据真是太有用了。通过标签可以制作一个很好的标签云,如Fig 9所示(该图片的人物可是庄周,捂手笑)。

Fig 9. 电影标签云

不同维度的Top K电影分析

上面对电影整体上有了一个了解,下面从不同的维度看看Top K的电影都是哪些。

豆瓣评分Top20电影

首先,基于评分数据,筛选出Top 20,发现很多都是张国荣的演唱会之类的(香港),也算是最真诚的缅怀了。除了演唱会,就是德国的《梦工厂》、《肖申克的救赎》、《控方证人》、《平安结祈》等。没有看的同学,强烈推荐去看看呀,尤其是《肖申克的救赎》。

Fig 10. 豆瓣评分Top20的电影

投票数Top 20的电影

评分高不一定属于热评电影,因此笔者将投票数Top 20的电影也筛选了出来,这下可以看出排名第一的便是《肖申克的救赎》,其次是《这个杀手不太冷》,国内的《流浪地球》今年上映的,如今已经排名第三了,真是不错!之后便是《千与千寻》、《盗梦空间》、《我不是药神》、《泰坦尼克号》、《霸王别姬》、《三傻大闹宝莱坞》、《怦然心动》。这20部热评影片的评分基本在9分以上,除了国内的两部《流浪地球》、《让子弹飞》和美国的《头号玩家》,整体上投票多的电影评分都不会太低。在Top 10里面美国有4部、国内占了3部,其中2部是近2年,可见国内的电影近年来确实不错!

Fig 11.投票数Top 20的电影

中国大陆电影投票数Top 20

趁着这股子劲,我们看看国内投票Top 20都有哪些,可以看出电影大多都是15年之后的,跟前面统计的电影数和平分数也对上了。

Fig 12.中国大陆电影投票数Top 20

美国电影投票数Top 20

最后,给大家看看美国电影投票数Top 20的都有哪些,业余时间,感兴趣的可以去看看,算是给大家分享的一点福利吧!

Fig 13.美国电影投票数Top 20

结束语

OK,关于豆瓣电影的数据分析,暂且先这样吧!很多细节部分尚未深入分析,后续有机会再进行补充下。之前看视频时,弹幕好多都说国内电影的水平提升了,现在看到这份数据,也确实证实了这一点,希望国内的电影能够持续进步!关于评论数据,主要用在NLP实践中,这次就不涉及了,后续有机会在分享出来。看到这些热评电影,真是有点振奋,有些已经录入到了自己的候选观影清单中,有时间去观赏一下。文中所有的图表均采用Python绘制,有兴趣的可以交流一下!最后,祝自己🎂,后续多总结,少熬夜,多锻炼身体,fighting!

温馨提示:为防止博文被自动转发,相关读者可进入笔者首发网站进行阅读 https://www.csuldw.com/2019/08/12/2019-08-12-douban-movies-statistics/

References

  1. pandas: powerful Python data analysis toolkit
  2. matplotlib doc
  3. www.csuldw.com