1. 程式人生 > >資料分析(一)豆瓣華語電影分析

資料分析(一)豆瓣華語電影分析

本文首發於『運籌OR帷幄』公眾號,大家也可前往公眾號檢視,《用資料帶你瞭解電影行業—華語篇》

在之前,我們已經用通過爬蟲獲取了豆瓣華語電影共33133部電影的資料,具體爬蟲介紹請見之前的博文,爬蟲實戰(一)——利用scrapy爬取豆瓣華語電影。本文對爬蟲過程進行簡要概述後,對這部分資料進行分析。

1. 前言

隨著生活的水平提高,人們開始了對精神生活的追求,電影已經成為我們生活中必不可少的一項娛樂活動。近年來,中國電影產業發展迅速,華語電影數量和票房也頻頻突破新高。而一個行業的發展,不僅需要數量,還要質量。那華語電影近些年整體的質量如何呢?本文通過對豆瓣華語電影資料進行爬蟲和分析,帶大家瞭解華語電影這些年來的產量質量趨勢、影片型別分佈,以及哪些導演或演員是好片或爛片專業戶。

2. 資料獲取

在分析豆瓣網頁結構後,使用python的Scrapy框架爬取了豆瓣華語電影,即中國大陸、香港、臺灣地區總共33133部,並將資料儲存在本地的MongoDB資料庫中。對於每部電影,收集以下12個欄位:

  • id: 豆瓣id
  • title: 電影名稱
  • year: 上映年份
  • region: 製片地區
  • language: 語言
  • director: 導演
  • type: 型別
  • actor: 主演
  • date: 上映日期
  • runtime: 片長
  • rate: 評分
  • rating_num: 參與評分人數

具體示例如下:
資料描述

3. 資料清洗

在進入分析之前,需要對獲取的資料進行清洗和處理。首先,使用pymongo模組將資料庫中的資料匯入,接著使用pandas庫進行處理。

3.1 缺失值處理

通過列印每一列的空值統計,可以看到部分列都存在空值。之前在資料爬取的過程中,發現一般如果電影是在院線上映的且年代不是特別久遠的,所有的資訊都很完整。如果出現導演、演員、上映日期等的一些列為空的,大部分是網路電影或者是沒有上映的。所以這裡將在演員、導演、語言、型別、上映時間這5列中任一列出現空值的資料都做刪除處理。另外對於年份一列有缺失的,採用上映日期的年份進行填充。

3.2 資料格式處理

為了後續分析方便,將部分列的資料格式進行轉換,如將評分和評分人數這兩列由string型別分別轉為float型別和int型別;將語言一列list中的"/“分割改為”,"分割等。

3.3 增加輔助列

通過觀察資料發現,如果一部電影是多個地區合作製作的,那麼地區這一列的list中就有多個地區的元素。以這種展現形式,不便於後續以地區為維度進行分析。因本文主要分析華語地區,即中國大陸、香港、臺灣,於是增加三列輔助列,屬於該地區則標記為1,否則為0。如果某部電影的製作地區同時出現中國大陸、香港、臺灣,則這三列輔助列都標記為1,表示同時屬於這三個地區。對電影型別一列,也做類似的處理。

3.4 資料篩選

在爬取的電影中,可以看到有些電影的影片型別是綜藝節目、脫口秀、晚會等,另外有些電影有上映日期但未上映的。因此,對這部分資料進行剔除,只保留豆瓣電影篩選頁面顯示的22個分類以及已經上映的電影資料。

4. 資料分析

資料清洗處理完畢,接下來對資料進行分析。下文的畫圖工具,採用plotly庫,它可以使用簡單的程式碼實現較複雜的功能。

4.1 行業產量和質量分析

4.1.1 總體發展趨勢

雖然今天的我們到電影院或者在網上看電影已經是十分平常的事情了,可是對於上個世紀可能還是屬於一項相對“奢侈”的活動,那麼我們就首先從電影行業的整體發展情況來分析一下近些年來華語電影的趨勢。
華語電影年產量趨勢

注:此資料截止到2018年10月初

從圖中可以看到,整個華語地區,在1947年之前每年電影產量只有零星幾部;從上世紀60年代開始到21世紀00年代,處於平緩發展的階段;從2010年開始,華語電影發展迅猛,2017年年產量達到1730部,約為2010年的5.3倍。

下面以每年電影的均分來看,在數量增加的同時,質量是否有提升呢?
華語電影評分趨勢

從圖中看出,近些年來華語電影評分總體上呈現下降的趨勢,到2016年開始才略有回升。那到底是什麼導致了這個評分趨勢呢?接下來,我們畫個箱體圖來看下每年評分的分佈情況。
華語電影評分箱體圖趨勢

可以看到之前電影的分數段都比較集中,而近些年評分分佈越來越廣,從2分到接近10分的電影都有。在箱體圖中,q1(圖中每個長條形的下方)代表的是第一四分位,即有25%的電影評分小於此值。同理,q3(圖中每個長條形的上方)有75%的電影評分小於此值。通過觀察可以發現,q1、q3的值同均值的趨勢一致,近些年呈現下降的趨勢。這也就代表了,近年來高分片數量減少而爛片的比例增加,導致均分的下降。而此狀況的好轉,是2016年均分開始有所回升的原因。

結論:近些年華語電影的數量劇增,但質量並未提高,而是呈現相反的趨勢。除了影片本身製作的原因,也有部分是因為生活水平的提高,人們對精神需求質量的要求也越來越高。

4.1.2 地區對比

華語電影主要有大陸、香港、臺灣這幾個製作地區,那麼接下來,我們來對比這些地區的情況。
不同地區電影年產量對比

從圖中可以發現,香港電影是華語電影的先驅者,20世紀整個華語電影幾乎是由香港主導的。但進入2000年後,香港電影的產量下降,與此同時,大陸電影發展迅速,於2005年開始反超香港地區,替代其成為華語電影新的主導者。而臺灣地區,除了六七十年代有一波發展之外,幾乎處於停滯不前的狀態。

不同地區電影評分趨勢對比

可以看到雖然臺灣的產量較少,但從1983年以來,平均質量優於其他地區。而印象裡,八九十年代的香港電影還不錯,但從圖中觀察到,那時候香港電影的均值低於總體水平,反而是大陸地區的電影在那個年代整體質量比較高。

結論:可以看出大陸電影在這些年的發展比較迅猛,但是在電影市場如此繁榮的今天,大陸電影的質量卻越來越低,這或許是和這些年發展的過快而沒有注重質量有關係;香港地區進入21世紀後,產出影片數量減少,同時質量也呈現下降趨勢,但近些年總體質量優於大陸地區;相比之下臺灣電影雖然產量較少,但是整體的質量在三個地區中都比較高,也許與其追求文藝色彩,而不是商業化和娛樂化的特點有關。

4.2 影片型別分析

電影的題材有很多種,那麼華語電影中不同題材情況是怎樣的呢?我們首先分析一下不同型別的電影的數量情況。

不同型別電影數量

從圖中可以看到,劇情、喜劇、動作、愛情這幾類的電影數量遠超其他型別,其中劇情類最多,約為第二名喜劇類的1.85倍。而數量最少的型別是情色、災難、西部片。那麼哪種型別的電影關注度最多呢?
不同型別電影關注度

電影的評分人數越多,說明此電影看過的人數越多,可以從側面反映電影的關注度。所以我們用平均評分人數的指標,來看不同型別電影的關注度。數量最少的西部片竟然是排名第一的,為什麼關注度會這麼高呢?華語有哪些電影是屬於西部片呢?

華語西部片
原來是讓子彈飛和無人區這兩部電影拉高了西部片的平均評分人數。另外,讓子彈飛是在本次爬取的全部電影中關注度Top2的,第一名為霸王別姬,一共有848429條評分。

接著,我們來看一下不同電影型別的質量。

不同型別電影質量

西部、傳記、歌舞這三類質量為Top3,且這三者間差距都在0.1分以內。而排名墊底的是情色、驚悚、懸疑,而這幾類關注度並不是很高。評分人數與評分之間會不會有什麼關係呢?

不同型別電影評分人數與評分的關係

似乎沒發現什麼值得關注的結果,如果不以類別的平均值,而是以每部電影為維度呢?在這裡我們將評分人數小於500的電影剔除,避免一些因為評分人少而出現的偏頗情況。

評分人數與評分的關係

從圖中可以看到,評分較低的,關注人數也較少。如評分小於5分,除少數幾部外,其他的評分人數是在200k以下。而評分很高的電影,並不是都有很高的關注度,也有一些沒什麼人關注的。

結論:華語電影主要以劇情、喜劇、動作、愛情這幾種影片型別為主,其中西部、奇幻、同性關注度最高,而西部、傳記、歌舞這三類質量最高。評分與關注人數的關係,評分較低的關注人數也較少;而評分很高的電影中存在一些暫未被很多人發現的好電影。

4.3 導演、演員分析

這一部分,我們來看一下哪個導演、演員屬於好片或者爛片的專業戶。這裡好片的定義為評分大於等於8.5分,爛片為評分小於6分的電影。另外,此部分分析只針對執導或主演5部以上電影的導演和演員。

好片佔比排名前10的導演

圖中為好片佔比Top10的導演,排名Top2分為是臺灣導演楊德昌和香港導演王家衛,他們是拿過戛納電影節最佳導演獎的僅有的兩名華語導演。可能大家對王家衛比較熟悉,這裡就科普一下楊德昌。他是臺灣新電影的重要代表人物之一,一共執導過8部電影,其中5部評分在8.5分以上,好片佔比為62%,他的五部好片分別是《一一》、《獨立時代》、《牯嶺街少年殺人事件》、《恐怖分子》以及《麻將》。

另外,這10名導演中,除魏德聖、桑弧這兩位導演各有一部爛片外,其他的導演均沒有執導過6分以下的電影。
爛片佔比排名前10的導演
接著我們來看一下爛片佔比排名10的導演,鄭成峰、姜國民、管曉傑、黃柏基這四位導演的爛片比例達到了100%!

好片佔比排名前10的演員

而在演員中,臺灣演員文英的好片佔比最高,為50%。值得注意的是在這10位演員中,臺灣和內地演員各佔50%,臺灣演員除澎恰恰外,其他幾位近10年內都有作品;而內地演員不是配音演員,就是活躍在上個世紀的已經息影或離世的演員。

爛片佔比前10的演員

爛片佔比前10的演員榜中,除鄧家佳外,其他演員的爛片佔比都為100%。其中大部分為內地新生代且小透明的演員。
部分演員好爛片分佈情況

可能大家在剛剛的分析中都沒看到自己比較熟悉的演員,這裡將一些比較有名的演員挑出來。從圖中可以看到,部分演員參演作品的數量驚人,但好片數量卻只有幾部;也有幾位演員的演技是大家都比較認可的,但可能挑電影的眼光不太好,其參演的作品風評都比較一般。

結論:在好片佔比前10的導演中,可以看到這些導演都實至名歸,且被大家較為熟知;而在演員中,我們熟知的演員均不在好片佔比前10的榜單上,有些演員人氣很高但參演的好片寥寥無幾,有些演員演技可以但挑片眼光不佳。

5. 後記

資料集中其實還有更深入或者其他可以分析的地方,但因篇幅有限,只能先挑一部分。大家看完後,如果還有什麼想要了解的,可以在底下回復,小編會在下一篇進行分析哦。

最後,回顧一下本文的主要思路,先是確定主題,接著獲取資料,之後對資料進行清理、篩選,最後對資料進行視覺化和分析。而這也是做一個數據分析專案基本的流程,其中資料獲取和資料處理是最為基礎的。如果有現成的資料集,直接從csv檔案、資料庫等匯入即可。但一般來說,我們並不是經常能找到合適的、且最新的現成資料,這時就需要通過爬蟲獲取。爬蟲是一項挺耗時的工作,如何應對網站的反爬、提高爬蟲效率很關鍵。除了爬蟲外,資料清洗也是一項基礎、耗時又繁雜的工作,它直接決定後續資料分析的效率和質量。小編在完成本文的過程中,爬蟲和資料清洗佔了大部分的時間。

6.福利

關注『運籌OR帷幄』公眾號,回覆以下關鍵詞獲取福利:

  • 回覆【華語電影福利】,獲取9分以上且評價人數大於20萬的一定不要錯過的華語神片。
  • 回覆【華語電影程式碼】,獲取本文資料集和程式碼。