Python分析《羞羞的鐵拳》電影觀眾評論
專 欄
偉楠,Python中文社群專欄作者,資料分析師,知乎專欄:資料故事會。
https://www.zhihu.com/people/hao-wei-nan
❈前段時間上映的《羞羞的鐵拳》可謂是票房大豐收啊,截止到我寫這篇文章時,我看了眼貓眼的資料,票房已經21.7億了。這也使它成為繼《戰狼2》、《美人魚》和《捉妖記》後第四部票房過 20 億的國產電影,在國內票房史上排第6位啊啊啊~
貓眼資料
那麼面對這麼一部票房收割機,投資人肯定是笑的合不攏腿【大霧】嘴了,那麼我不禁想問,觀眾呢,觀眾到底對這部電影怎麼看。要知道很多電影那可是票房高漲口碑墊底啊,比如說.....算了不說了,我怕他們粉絲打我....(逃
為了搞清楚到底觀眾是怎麼看待這部電影的,而剛好我的好基友 @Marco Zhang 又說最近他想研究研究爬蟲,那可真是太好了,又省的自己爬了,全部拜託他搞定。(而且他還說他想寫一篇爬蟲的文章,雖然我表示不知道啥時候能等到)
選擇從豆瓣上爬取資料,原因是豆瓣有星級的指標,這對於我們在Part 2做情感分類時有巨大幫助啊。(情感分類本質上是一個有監督學習的分類問題)
嗯,截止到爬取之日,共爬取77726條評論(對的,沒有8萬,我四捨五入下了,主要是標題這樣好聽些),大體格式如下:
那麼開始幹活吧~
一、 特徵預處理
匯入資料
除了《羞羞的鐵拳》同時還爬取了開心麻花另外兩部電影《夏洛特煩惱》和《驢得水》,留待後面做情感分析時的訓練樣本。
(這裡不得不吐槽下,好像最新的Python (3.6.1)下在用Pandas讀取csv檔案的時候,如果直接用 pd.read_csv() 的話會報錯,必須要做如上處理才行(與中文路徑無關,我測試過了),但是神奇的是用pd.read_excel()讀取Excel檔案就不會報錯。還望知道怎麼回事的大神,不吝賜教啊~~~ )
處理缺失值
資料還是非常乾淨的,只有"user_name"有一個缺失值,可能是這名使用者的使用者名稱含有什麼emoji之類的特殊字元吧~
對於缺失值的處理,我們一般可以採取以下方式
1、刪除缺失值
2、填充缺失資料(均值等)
3、機器學習預測缺失值
如果缺失的資料不多,可以直接刪掉,但是如果缺失的資料比較多,那這樣做可能會刪除過多的樣本,導致分析結果可靠性不高。如果刪除過多特徵列的話則會導致面臨丟失有價值資訊的風險。而填充資料的話,最常用的就是插值技術,可以插均值、中位數或最高頻詞等。當然更復雜的你也可以用機器學習建模,來預測下缺失值。
不過對於我這次源資料有將近8萬條,所以這條就直接刪除了,影響不大。不過查看了下這條資料,其實有價值的資訊都還在,直接給他隨便補個名字也沒問題。
二、 EDA
好了,我們常說使用者一向“用腳投票”(當然這裡沒有惡意),一部電影好看不好看最直觀的就是看觀眾的評分了。電影拍得好,觀眾買賬,自然評分高;拍得爛片,觀眾覺得這錢花的不值,既浪費錢有浪費時間,自然打個低分,再正常不過了。
各星級評分人數
那麼我們首先就先來看看,不同星級之間打分人數的分佈吧。其中0星要特別說一下,這些是標記了想看但是還沒看的使用者,我們可以認為這些使用者是對這部片子有好感的,至少是感興趣的。(對,你成功引起我的注意了)
那我們來看一看,打一星的人數最少,佔2.54%;打四星的人最多,佔37.58%。三星跟五星的基本差不多,都在25%左右。可以說大家的打分割槽間基本集中在三星到五星,看來這部電影還是不錯的。另外標記想看的人數並沒有很多,只佔2.92%,估計是已經上映這麼久了,真正想看的人早就看過了。而且會使用“想看”這個功能的人數估計也不是很多,大抵都是影視發燒友,或者說是某個演員、導演的粉絲吧。
另外,作為對比,給大家看一個前段時間可以說是非常之火的豆瓣有史以來第一爛片(沒有之一,評分2.1分)的分佈~竟然還有977個人表示想看,你們是抱著奇文共賞的想法來的麼 【扶額】
P.S. 最近剛知道,原來奇文共賞最開始是夸人文章寫得好的 【再次扶額】
隨時間變化趨勢
接下來我們看看隨著時間的變化能不能發現神馬規律咧~
嗯,從評論時間上來看,基本上每天都是晚上10點的時候,大家發言最多。估計大部分人都是在外面happy了一天,晚上找家飯店吃個飯,然後吃完剛好看8點多到9點場次的電影,然後看完10點多出來趕緊發個朋友圈,上上豆瓣寫寫影評,簡直是一氣呵成,吃飯電影一條龍啊~ 【對了,插播條廣告,關於吃什麼好,可以看看我之前寫的文章哈~值得一去的飯店在哪裡?——讓資料分析告訴你】
另外,每天凌晨2點-6點之間的評論是最少的,畢竟夜貓子還是少數啊。(至於像我這樣每天4點睡的,已經不能稱謂夜貓子了,我是在修仙...)不過,在12點到1點這段時間大家評論數量也還是有不少的,然後過了2點數量就驟降了。看來有不少人的睡眠時間是在1點左右,而且有相當一部分朋友喜歡在睡前看看豆瓣~
至於上映時間嘛,我看了下電影是在9月30日上映的,所以從30日開始評論數量激增,在10月1日2日的時候達到頂峰,7日開始逐漸下降,在11號左右開始漸漸趨穩。熱度大約持續了十天左右。當然這十天中包含了一個國慶中秋假期,全年最長假期給了很多平時根本沒時間進影院的朋友一次看電影的機會,我想這也是為何在9號10號的時候評論數量出現驟降的原因吧——大家都上班了。【哭】
不過值得一提的是,在14、15日兩天,原本下降趨勢的數量來了一撥小反彈,我查看了下,這兩天是國慶假期結束後的第一個週末。這說明什麼呢,說明有一部分朋友在國慶期間並沒有看該片,但是又想看該片,所以選擇了國慶後的第一個週末。那麼這部分朋友,大概率國慶應該是出去旅遊了。畢竟這麼長的假期宅在家裡是對假期的不尊重,而在假期選擇出去旅(看)遊(人)則是對智商的不尊重【扶額】所以請選擇加班吧~此外21、22日又有個小反彈,同樣是週末。
我本來是想看看一部電影的熱度大概能持續多久,不過由於《羞羞的鐵拳》是一部上映沒多久的電影,所以用它來分析不太合適。因此我分別看了下同為“開心麻花”在2015、2016年出品的兩部電影——《夏洛特煩惱》和《驢得水》的情況。
《夏洛特》是2015年9月30日上映的,評論高峰期出現在10月6日,最終大約在11初熱度歸於平穩,整個熱度持續時間大約一個月,中間同樣跨過了一個國慶假期。不過有一點奇怪的地方引起了我的注意,在熱度已經消失後的11月底到12月初這段時間竟然有出現了一波小高潮。這不由得讓我陷入了深深地沉思,良久我有了一個大膽的想法。。。。
我去驗證了下,對的請看圖。
可能大家已經意識到了,沒錯就是盜版片源放出來了。很多沒去電影院觀看,一直苦苦等待盜版資源的朋友開始在觀看完電影后發表他們的影評了。老實說,這部分人還是不少的,大約佔到了評論最高峰時期的五分之一了。對於一部這樣熱門的電影(當時也算是半個現象級電影了),我認為這還是一個相當可觀的數量了。估計片方們在吐血吧,確實盜版對他們的利益損失不小。在此還是呼籲下大家,對於能在電影院看到的,口碑又不錯你又想看的,那就還是去電影院看吧。影院的視聽感覺是家裡沒法比擬的。畢竟不是誰都能像思聰一樣買得起100寸的電視【請腦補思聰配圖】
另外還有一點特別的發現是作為一部2015年的老片子,竟然在2017年10月份還出現了一波小小高潮。。。。 這。。。大家應該都想到了哈。很多人並沒有看過他們早期的電影,而是從《鐵拳》才開始接觸開心麻花的,看完發現他們拍的電影還有點意思,因而有翻回去看了看他們以前拍的電影
《驢得水》的情況大體跟《夏洛特》差不多,熱度持續時間從2016年10月末持續到11月中。持續時間不如《夏洛特》久,可能是缺少了國慶節的助攻吧。同樣在熱度消失後的某一天,如平地驚雷般的出現了一大批評論,這回不用看也知道,又是盜版資源出來了。(然而作為一個嚴謹的資料分析師,我還是去驗證了下....嘴上說的不要,身體還是很誠實的。。。逃)
不過可以看出這次的盜版的影響應該比上次要嚴重,評論數快佔到最高峰時的一半了 另外還是相似的,在2017年10月老樹發新芽,出現了波小高潮,原因就不說了~
不同星級的詞雲
我們來看看不同星級之間,大家的評論主要都說了些什麼。
對於打一星二星的朋友來說,普遍表示:尷尬、不好看、垃圾、爛片、低俗、不好笑等等。去掉像垃圾、爛片等無實質資訊的描述,我們可以發現打一星的觀眾,普遍認為這部電影非常尷尬,而尷尬的原因很大一部分是笑點低俗,另外就是劇情老套。這部分觀眾應該不是該片的主要受眾,就好像爸媽那一輩人也無法理解星爺的無厘頭一樣,都是正常的。我不由得想起王晶導演拍的《澳門風雲》系列,這部片可真是厲害了,引起了我深深的思考,而且還把這個思考從戲內延伸到了戲外——王晶究竟是多缺錢?發哥究竟是多缺錢?他們的晚年生活很悲慘麼?是不是娛樂圈普遍都是這種情況?????
一星的詞雲
二星的詞雲
三星的朋友表示(那蘋果的朋友呢 【這句劃掉笑點低俗】):還行、一般、有笑點等等,提及最高的竟然是“夏洛特煩惱”,看來大家都還是習慣於將同一部導演的不同影片做橫向對比。
而打四星、五星的觀眾則表示:哈哈哈哈哈哈哈。當然除了哈哈哈之外還說了,笑點密級、從頭笑到尾等,作為一個喜劇片獲得這樣的評價無意識成功的。另外我問一下,“好運來”是什麼梗,我看出現的頻次也很高啊,是電影裡面的麼?
四星的詞雲
五星的詞雲
三、 總結
這只是在做文字情感分析之前,先順手做個EDA,看一下資料大體的情況。瞭解資料的情況對於下一步情感分析會起到一定的幫助,比如我們從目前得到資訊可以發現,大家對這部電影的評分還是比較高的,情感普遍傾向於正面。這樣我們在接下來的時候,要注意下這個資料是不是不平衡的,會不會出現99%都是給出了正面評價,1%給出了負面評價這樣的情況發生。如果出現這種情況,不作處理的話,訓練出來的模型是沒有意義的。模型只要全部都預測為正,那都能有99%的正確率,但是沒有毛線用啊啊啊~~~
近期熱門文章:
長按掃描關注Python中文社群,
獲取更多技術乾貨!
Python 中 文 社 區
Python中文開發者的精神家園
合作、投稿請聯絡微信:
pythonpost
1MEwnaxmMz7BPTYzBdj751DPyHWikNoeFS