Python 分析 10 萬條彈幕告訴你:《古董局中局2》到底好不好看?

作者 | 澤龍、Mika

來源 | CDA數據分析師

今天我們聊一聊《古董局中局2》

點擊下方視頻,先睹爲快: 

上週日,有一部鑑寶題材的劇靜悄悄上線了,那就是夏雨、魏晨等主演的古董局中局系列第二部《古董局中局2鑑墨尋寶》(下文簡稱爲《古2》)。

這部劇製作團隊是《怒晴湘西》《龍嶺迷窟》等網劇的經典配置——管虎監製+費振翔導演。按理說有了《龍嶺迷窟》的成功,費振翔導演應該更加得心應手,但是《古2》的就完全沒有《龍嶺迷窟》給人帶來的驚豔感了,有些地方還有點不盡人意。

 

經典鑑寶題材IP,從小說到桌遊

 

首先要給不知道《古董局中局》的小夥伴們科普下,《古董局中局》一共4部,是馬伯庸執筆的,小說連載後就引起了熱潮,備受追捧。

因爲題材和劇情設置,被知名桌遊公司改編成了桌遊,更在當時風靡一時,各大桌遊店都在玩古董局中局,最後騰訊出手,買下版權,改編成了電視劇。

關於《古董局中局》桌遊的玩法,簡單介紹下就是分爲紅黑兩個陣營,紅方以許願爲代表,家族遭到黑方陷害,想爲家族平冤昭雪,以打敗黑方爲己任。黑方以老朝奉爲代表,想統治古玩市場,勢力通天,雙方誰都不知道對方的真實身份,在各種古玩案件裏面鬥智鬥勇。

豆瓣7.1分,《古2》拍的怎麼樣?

 

其實這並不是《古董局中局》第一次影視化,在2018年時就由夏雨、喬振宇、蔡文靜主演了第一部,劇情較原著改編幅度較大,而且後期劇情較爲冗雜拖沓,無關緊要、可有可無的場面和對話太多,導致劇情崩壞,最終豆瓣評分只有6.7分。

本次第二部依舊夏雨飾演主角許願,而其他配角都大換血,藥不然和黃煙煙分別換成了阿麗亞。

故事主要根據原著第二部和第四部的內容,講的是夏雨飾演的許願是北京潘家園小古董店"四悔齋"的老闆,古董鑑寶界最具權威的"五脈梅花"家族之一許家,唯一的傳人。爲了楸出隱藏在五脈之中的"老朝奉"造假勢力,許願孤身一人入局破局,與龐大的古董造假集團展開層層較量,卻被設局指引牽扯出兩幅《清明上河圖》真贗難辨的驚天祕密。

夏雨的痞勁真是高度還原原著書中許願,一看就是衚衕串子,但是第二部女主換人,看看網上的評價,吐槽不少。

劇情方面雖然也存在各種槽點,但是這部劇後面還是高度還原小說的,現在豆瓣評分也穩定在7.1分,成績還是不錯的。

我們分析整理了《古2》在豆瓣的評分數據:

總體評分情況

首先看到總體評分情況,其中給四星的最多,共佔31.8%,其次20.8%的人給出了3星,19.6%的人給出了2星。

短評詞雲

在豆瓣大家對這部劇的評價如何呢?

通過分析豆瓣的短評可以看到,討論最多的就是夏雨的演技,夏雨的演技還是有保障的。同時女主黃煙煙也是討論的焦點之一,在許多書迷看來,黃煙煙本是個冰山美人,現在怎麼變成一這麼活潑的北京妞兒?實在是有點不符合人設。

除此之外,詞雲針對“劇情”“原著”方面的討論很多,除了吐槽,評論中表示“喜歡”“不錯”等肯定的聲音也不少。

 

看《古2》時,彈幕中大家都在討論些什麼

 

接着我們來分析下這部劇在騰訊視頻的彈幕數據,這次我們還是用的Python,我們總共收集整理了107570 條彈幕。

彈幕字數分佈

下面看到分析結果,首先在彈幕發送的數據上很有意思,發送彈幕字數最多的不是5字以下,而是5-10字,這部分彈幕共有38107條,其次10-15字的彈幕也不少,爲27948條。

單人彈幕發送量

看劇時大家發彈幕的習慣又如何呢?通過分析可以發現,高達58.73%的人都只發了一條彈幕。17.95%的人發了兩條彈幕。

彈幕關注人物分佈

發彈幕時,大家討論的主要人物都有哪些呢?經過數據分析整理可以發現,討論最多的當然是我們的男主夏雨。其次分別是魏晨、老朝奉、阿麗亞等演員。

人物彈幕畫像

夏雨飾演--許願

先看到夏雨飾演的許願這一角色彈幕畫像,彈幕中觀衆們都對夏雨的演技表示了肯定,“厲害”“好看”“喜歡”等都是高頻詞。夏雨不必多說,影帝就是影帝,演技一如既往得穩。總之,夏雨把許願這個有點吊兒郎當但是內心又充滿着正義感和使命感的北京小青年演繹得淋漓盡致。

魏晨飾演--藥不然

關於魏晨飾演的藥不然,觀衆們認爲,雖然比起第一部少了點貴公子的感覺,但魏晨版藥不然也還不錯,藥不然的玩世不恭、混不吝都變現的很有分寸。評論中感嘆魏晨演技還不錯,演出了“痞帥”的感覺,還挺令人眼前一亮。同時也有跟第一部喬振宇版進行對比的。

阿麗亞飾演--黃煙煙

最後看到阿麗亞飾演的黃煙煙角色詞雲,這個角色的爭議就很大了。比起第一部冷若冰霜的冰山美人,這一部版的黃煙煙轉眼變成了活潑的北京大妞。這方面還是讓觀衆們挺難接受的。在詞雲中感嘆“一言難盡”“齣戲”“失望”的詞頻出。

教你用Python分析《古2》騰訊視頻彈幕

 

關於數分析部分,我們獲取了騰訊彈幕的數據並進行了以下的分析,以下爲部分分析代碼。

  1. 彈幕發送字數分佈

  2. 單人彈幕發送總量分佈

  3. 彈幕情感評分分佈

  4. 彈幕主要關注人物分佈

  5. 彈幕人物畫像(代碼暫略)

首先導入數據處理和相關的繪圖庫。

# 導入庫
import numpy as np
import pandas as pd 
import matplotlib.pyplot as plt 
import jieba
import jieba.analyse
from snownlp import SnowNLP

from pyecharts.charts import Bar, Pie, Line, WordCloud, Page
from pyecharts import options as opts 

01 彈幕基本概況

爬取到的彈幕是這樣子的,一共包含了以下信息:集數、評論ID、用戶名、vip等級、評論內容、評論時間點和評論點贊。

# 讀入數據
df_1 = pd.read_csv('./data/古董局中局2騰訊彈幕.csv', encoding='utf-8', engine='python')
df_1.head() 

一共有107570條彈幕數據。

df_1.info() 
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 107570 entries, 0 to 107569
Data columns (total 7 columns):
episodes      107570 non-null int64
comment_id    107570 non-null int64
oper_name     25539 non-null object
vip_degree    107570 non-null int64
content       107570 non-null object
time_point    107570 non-null int64
up_count      107570 non-null int64
dtypes: int64(5), object(2)
memory usage: 5.7+ MB

02 彈幕字數分佈

# 計算字數
word_num = df_1['content'].apply(lambda x:len(x)) 

# 分箱
bins = [0,5,10,15,20,25,30,35,40,45,50,549]
word_num_cut = pd.cut(word_num, bins).value_counts().sort_index()

# 柱形圖
bar1 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px'))
bar1.add_xaxis(word_num_cut.index.astype('str').tolist())
bar1.add_yaxis("", word_num_cut.values.tolist(), category_gap='4%')
bar1.set_global_opts(title_opts=opts.TitleOpts(title="彈幕發送字數分佈"), 
                     visualmap_opts=opts.VisualMapOpts(max_=38107)
                    )
bar1.render() 

03 彈幕情感分析

def nlp_score(x):
    """
    功能:獲取情感評分
    """
    sn = SnowNLP(x)
    return sn.sentiments

# 計算情感得分
df_1['nlp_score'] = df_1['content'].map(lambda x: nlp_score(x))

# 分箱
score_bins = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1]
score_cut = pd.cut(df_1['nlp_score'], bins=score_bins)
score_cut = score_cut.value_counts().sort_index()

# 繪製折線圖
line1 = Line(init_opts=opts.InitOpts(width='1350px', height='750px'))
line1.add_xaxis(score_cut.index.astype('str').tolist())
line1.add_yaxis('', score_cut.values.tolist(),
                areastyle_opts=opts.AreaStyleOpts(opacity=0.5),
                label_opts=opts.LabelOpts(is_show=False))
line1.set_global_opts(title_opts=opts.TitleOpts(title='彈幕情感評分分佈[0~1]'),
#                       toolbox_opts=opts.ToolboxOpts(),
                      visualmap_opts=opts.VisualMapOpts(max_=22288))
line1.set_series_opts(linestyle_opts=opts.LineStyleOpts(width=4))
line1.render() 

04 彈幕關注人數數量佔比

def calculate_nums(words_list):
    """
    功能:給定關鍵詞列表,計算彈幕出現次數
    """
    pattern = '|'.join(words_list)
    num = int(df_1['content'].str.contains(pattern).sum())
    return num

# 關鍵詞
xiayu = ['許願', '夏雨', '下雨']
weichen = ['藥不然', '魏晨', '藥二爺', '晨晨', '老魏', '晨哥', '晨'] 
laochaofeng = ['老朝奉', '老朝鳳', '老朝', '老嘲諷', '老巢']
Aliya = ['黃煙煙', '阿麗亞', '煙煙'] 
liangjing = ['樑靜', '素姐']
liuyiming = ['一鳴', '畢彥君'] 

all_list = [xiayu, weichen, laochaofeng, Aliya, liangjing, liuyiming]

danmu_name = ['夏雨', '魏晨', '老朝奉', '阿麗亞', '樑靜', '劉一鳴']
danmu_num = [calculate_nums(i) for i in all_list]

# 柱形圖
bar2 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px'))
bar2.add_xaxis(danmu_name)
bar2.add_yaxis('數量', danmu_num) 
bar2.set_global_opts(title_opts=opts.TitleOpts('彈幕主要關注人物分佈'), 
                     visualmap_opts=opts.VisualMapOpts(max_=20000))
bar2.render() 

目前這部《古2》還在更新中,大家可以等都更新完了在看,畢竟免費看劇難道不香嗎?同時C君在這裏還是很推薦大家去玩下這個《古董局中局》的桌遊,的確比較燒腦的。

《古董局中局2》數據分享:

鏈接: https://pan.baidu.com/s/1bqpPDCcoBUNKPK4m15iE1g 提取碼: 9ywa

更多精彩推薦
☞登 GitHub 趨勢榜首德國疫情追蹤 App 號稱可保疫情隱私數據無憂,你信嗎?
☞百度否認退市;微信官方迴應「個人影響度報告」;微軟公佈 C# 9.0 計劃 | 極客頭條
☞200 萬年薪請不到!清華姚班到底有多牛?| 原力計劃
☞出任 Twitter 獨立董事,AI 女神李飛飛的傳奇人生
☞我們已經不用AOP做操作日誌了!| 原力計劃
☞從特斯拉CEO到推特CEO ,細數這9位持有比特幣的頂級富豪
你點的每個“在看”,我都認真當成了喜歡
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章