作者 | 徐麟
責編 | 郭芮
隨著春節腳步的臨近,想必各位都已經開始規劃幸福的春節長假該如何度過。闔家團聚,探親訪友,與好久沒見的好基友一起談天說地,懟天懟地,想想都是讓人感到幸福。
除此之外,每年的春節檔電影都會如約而至與大家見面,春節檔誕生了許多的經典電影,2019的春節檔電影也是佳片雲集,被稱作「史上最強春節檔」。今天我們就帶大家一起用數據去解讀其中最值得看的影片。
數據獲取
本次我們的數據主要來源於貓眼,一部分是貓眼的實時預售票房數據:
這部分數據可以通過selenium去獲取,代碼如下:
driver = webdriver.Chrome()
driver.maximize_window()
driver.close()
driver.switch_to_window(driver.window_handles[0])
url = 'https://piaofang.maoyan.com/dashboard?date=2019-02-05'
js='window.open("'+url+'")'
driver.execute_script(js)
driver.close()
driver.switch_to_window(driver.window_handles[0])
另一部分數據則來源於貓眼的觀眾評論。由於電影目前都還沒有上映,觀眾評論給出的分數,表示了其對電影的期待值。需要注意的是,有許多觀眾在評論中並沒有給出評分,會直接顯示為0,在後續計算時需要排除。
數據如下:
這部分數據的獲取方法可以參照「3天破9億!上萬條評論解讀《西虹市首富》是否值得一看」這篇文章,參考代碼如下:
tomato = pd.DataFrame(columns=['date','score','city','comment','nick'])
for i in range(0, 1000):
j = random.randint(1,1000)
print(str(i)+' '+str(j))
try:
time.sleep(2)
url= 'http://m.maoyan.com/mmdb/comments/movie/1212592.json?_v_=yes&offset=' + str(j)
html = requests.get(url=url).content
data = json.loads(html.decode('utf-8'))['cmts']
for item in data:
tomato = tomato.append({'date':item['time'].split(' ')[0],'city':item['cityName'],
'score':item['score'],'comment':item['content'],
'nick':item['nick']},ignore_index=True)
tomato.to_csv('西虹市首富4.csv',index=False)
except:
continue
預售票房
衡量一個電影關注度的重要方法就是去看首日的預售情況,我們此次選取八部春節檔最主要的影片進行對比,代碼如下:
p<-ggplot(data[order(data$sale,decreasing = T),][1:8,],
aes(x=reorder(name,sale),y=sale,fill=name))+
geom_bar(stat='identity',width = 0.5)+
geom_image(aes(x=name,y=0,image=image),size=0.08)+
geom_text(aes(x=name,y=2500,label=label_sale),size = 7,col='black',fontface='bold')+
ggtitle('春節檔電影預售票房排名(萬)') + theme_economist()+ scale_fill_tableau()+
theme(axis.text.x = element_blank(),
axis.text.y = element_blank(),
plot.title = element_text(hjust=0.5,size=30),
panel.grid = element_blank(),
legend.position = 'none',
panel.background = element_blank(),
axis.title = element_blank(),
axis.line = element_blank(),
axis.ticks = element_blank()
)+coord_flip()+ylim(0,6500)
ggsave("春節檔上映前預售排名.png", p, width = 10, height = 16)
看一下最終的結果:
目前預售排名前三位的都是喜劇題材,看來在春節的時候大家還是更加希望能夠放鬆自己,看一下輕鬆題材的影評。但是預售票房並不能完全覺得最終的票房走勢,可以參考之前上映後口碑崩塌的《地球最後的夜晚》和《愛情公寓》。
排名前兩位的影片都有沈騰的參與,看來目前沈騰的票房認可度還是不錯的,希望兩部影片最終都會取得不錯的結果。
從預售票房上看,《廉政風雲》和《神探蒲松齡》都有比較大的撲街危險,考慮到港片近期略顯低迷的表現,希望這兩部影片能夠帶來一些驚喜。
上映前口碑
另外我們也看一下上映之前,觀眾對於影片的整體評價情況,這也會在一定程度上體現觀眾的期待值。代碼如下:
p<-ggplot(data[order(data$score,decreasing = T),][1:8,],
aes(x=reorder(name,score),y=score,fill=name))+
geom_bar(stat='identity',width = 0.5)+
geom_image(aes(x=name,y=0,image=image),size=0.08)+
geom_text(aes(x=name,y=2,label=label_score),size = 7,col='black',fontface='bold')+
ggtitle('春節檔電影上映前評價') + theme_wsj()+ scale_fill_tableau()+
theme(axis.text.x = element_blank(),
axis.text.y = element_blank(),
plot.title = element_text(hjust=0.5,size=30),
panel.grid = element_blank(),
legend.position = 'none',
panel.background = element_blank(),
axis.title = element_blank(),
axis.line = element_blank(),
axis.ticks = element_blank()
)+coord_flip()+ylim(0,5)
ggsave("春節檔上映前評分排名.png", p, width = 8, height = 12)
看一下最終的結果:
《熊出沒》出人意料的在評分中排在首位,這也一定程度上提高了筆者對這部影片的期待值,雖然以筆者的年齡,應該是不適合去看這部影片。《小豬佩奇》憑藉此前的超強營銷,成功引起了大家的主要,然而最終表現如何,還是需要上映後接受觀眾的檢驗。
同時我們看到成龍大哥領銜的《神探蒲松齡》在評分上要落後於其他影片,看來大家對於這類題材的影片持保留意見比較多一些,我們也期待上映後口碑是否能夠實現翻盤。
影片看點
我們最後通過評論去挖掘上映前大家比較關注的點,主要採用jieba分詞,需要注意的是,我們需要在分詞前增加一些自定義詞典,比如「黃景瑜」,如果不加這個自定義詞典,就會被分為「黃景」,之後我們會根據詞語出現頻率篩選出重要的關鍵詞:
def key_words(df):
comment_str = ' '.join(df)
words_list = []
jieba.load_userdict('spring_film_dict.txt')
word_generator = jieba.cut(comment_str)
for word in word_generator:
words_list.append(word)
words_list = Counter([k for k in words_list if len(k)>1])
return list(dict(words_list.most_common(30)).keys())
最後我們在每個影片中選取了五個能夠體現其看點的詞語,並進行可視化:
我們選取一些比較有趣的看點組合,進行一下深刻(suixing)解讀:
《神探蒲松齡》:大家都在期待成龍大哥的表演,雖然有很多人提前給其打上了「爛片」的標籤,但是依然期待影片口碑的翻盤。同時大家也會認真關注影片特效,不知是否會致敬此前5毛錢「duang」的特效。
《飛馳人生》《瘋狂的外星人》:感覺沈騰大有承包今年春節檔的態勢,預售排名前兩位影片中,觀眾最關注的看點都是沈騰,期待沈騰春節霸屏同時也能收穫不錯的口碑。沈騰又是和外星人打交道,又是要體驗飛馳的人生,喜歡沈騰的觀眾在春節檔可以大飽眼福了。
《小豬佩奇過大年》:一部適合孩子觀看的影片,也是一部宣傳片獲得極大討論度的影片,希望不要步此前《地球最後的夜晚》上映後口碑崩盤的後塵。
《新喜劇之王》:顯然大部分觀眾對這部影片的期待來自於星爺,有了此前經典版的《喜劇之王》珠玉在前,《新喜劇之王》不可避免地會被哪來與原作對比,我們期待能夠簡直有一部經典的影片出現。
最後提前祝願大家新年愉快,體會與家人團聚的幸福同時也能看到精彩的影片!同時也可以在留言區與我們互動,分享自己春節檔會選擇去觀看的影片。
作者介紹:徐麟,目前就職於網際網路公司數據部,哥大統計數據狗,從事數據挖掘&分析工作,喜歡用R&Python玩一些不一樣的數據。本文首發於個人公眾號:數據森麟(shujusenlin),知乎同名專欄作者。
聲明:本文為作者投稿,版權歸其個人所有。
熱 文 推 薦
☞ 春運車票為誰「秒空」?第三方軟體的困與危
☞ 編程 25 年後,現實將我打回菜鳥程式設計師的起點
☞ 前方 Bug 出沒?盤他!
☞「離開360時,它只給了我一塊錢」
☞ 原子互換:一統公鏈江湖的神來之筆
☞ AI找Bug,一鍵快速預測
☞ 5G大規模商用來臨之前,你必須知道的幾個知識點
☞ 女程式設計師:我敲代碼養家,老公負責貌美如花!
print_r('點個好看吧!');
var_dump('點個好看吧!');
NSLog(@"點個好看吧!");
System.out.println("點個好看吧!");
console.log("點個好看吧!");
print("點個好看吧!");
printf("點個好看吧!\n");
cout << "點個好看吧!" << endl;
Console.WriteLine("點個好看吧!");
fmt.Println("點個好看吧!");
Response.Write("點個好看吧!");
alert("點個好看吧!")
echo "點個好看吧!"