99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀分析20萬(wàn)條彈幕告訴你,8.9分的高分劇《隱秘的角落》到底好看在哪兒?
分析20萬(wàn)條彈幕告訴你,8.9分的高分劇《隱秘的角落》到底好看在哪兒?
2020-06-30
收藏


最近這部《隱秘的角落》徹底火了,目前在豆瓣高達(dá)8.9分,有45萬(wàn)余人進(jìn)行了評(píng)論。

一時(shí)間劇中張東升那句「爬山」、「你說(shuō)我還有機(jī)會(huì)嗎」 承包了6月份的梗。各種表情包和段子齊飛。



作為主演秦昊當(dāng)年的同學(xué),章子怡都出來(lái)打call。


刷完劇,那首「小白船」簡(jiǎn)直成了新的恐怖童謠,讓人在腦海中無(wú)限循環(huán),太上頭了。


那么這部制作精良的國(guó)產(chǎn)劇為何能收獲到觀眾的一致好評(píng)?大家在看劇時(shí)都在討論些什么?今天我們就用數(shù)據(jù)來(lái)帶你看看。

 01拿拍電影的態(tài)度拍網(wǎng)劇 ,不好看才怪

 該劇改編自紫金陳推理小說(shuō)《壞小孩》 ,講述了沿海小城的三個(gè)孩子在景區(qū)游玩時(shí)無(wú)意拍攝記錄了一次謀殺,他們的冒險(xiǎn)也由此展開。撲朔迷離的案情,將幾個(gè)家庭裹挾其中,帶向不可預(yù)知的未來(lái)......


劇剛開始的畫面就是,文質(zhì)彬彬的男青年帶著一對(duì)老人在山頂拍照,二老坐在石頭上,背后就是萬(wàn)丈深淵,男青年上前親自指導(dǎo)姿勢(shì),而就在一瞬間,他眼神一冷,兩只手同時(shí)發(fā)力,將二老從山頂推了下去,甚至在推完還在佯作驚慌失措的樣子大喊:“爸!媽!”而這一切卻被三個(gè)游玩的小孩無(wú)意拍了下來(lái)。


這一開場(chǎng)就把觀眾嚇了一跳,甚至都起了雞皮疙瘩。同時(shí)也讓人欲罷不能想看看接下來(lái)會(huì)發(fā)生什么故事。

 劇情不拖沓,演技全員在線

不同于國(guó)產(chǎn)劇一般動(dòng)輒四五十集的篇幅,《隱秘的角落》只有短短的12集,故事緊湊,劇情毫不拖泥帶水。

 而整部劇中,無(wú)論是從挑大梁的秦昊,到三位小演員,還是王景春、張頌文等一眾演員都奉獻(xiàn)出了無(wú)可挑剔的演技。

 令人印象深刻的配樂(lè)

配樂(lè)也是《隱秘的角落》中的亮點(diǎn)之一。配合影視劇的懸疑劇情,這些配樂(lè)聽起來(lái)確實(shí)分外驚悚恐怖,也給大家留下了不可磨滅的陰影,被網(wǎng)友調(diào)侃:“能不能整點(diǎn)陽(yáng)間的音樂(lè)?”如果問(wèn)為什么本劇配樂(lè)這么講究,要知道《隱秘的角落》的導(dǎo)演辛爽可是樂(lè)隊(duì)音樂(lè)人出身的。


02豆瓣8.9分 年度國(guó)劇之光!

 首先,我們看到豆瓣的數(shù)據(jù)。這部劇一開播在豆瓣評(píng)分就沖上9.0分,一度沖到9.2分,隨著劇集完結(jié),目前穩(wěn)定在8.9分,已經(jīng)有45萬(wàn)余人進(jìn)行了評(píng)分。


總體評(píng)分

細(xì)看評(píng)分的分布可以發(fā)現(xiàn),有54.4%的人都給出了五星好評(píng),其次23.4%的人給出四星。這個(gè)成績(jī)還是很不錯(cuò)的。

評(píng)論熱度走勢(shì)圖

從評(píng)論走勢(shì)圖可以看到,《隱秘的角落》在6月16日首播,評(píng)論熱度最高。之后不同于其他劇,隨著播出時(shí)間評(píng)論數(shù)量趨于平緩,這部劇再播出后也不時(shí)帶來(lái)熱度,引發(fā)觀眾的評(píng)論潮。

 評(píng)論中提及主演

大家在評(píng)論時(shí)都提到哪些角色了呢?


分析發(fā)現(xiàn),主演張東升的討論度果然是最高的,其次是三個(gè)小演員之一的朱朝陽(yáng)。演技派演員王景春和張頌文飾演的陳警官和朝陽(yáng)爸爸討論度也很高。

 主演評(píng)價(jià)分布

我們分析了豆瓣短評(píng)中用戶關(guān)于主演的好評(píng)/一般/差評(píng)分布占比。

細(xì)致到個(gè)人表演來(lái)看,小演員們的表現(xiàn)相當(dāng)突出,比如朱朝陽(yáng)的扮演者榮梓杉,有超過(guò)9成的觀眾肯定了他的表現(xiàn)。秦昊、王景春兩位的表現(xiàn)自然也是很厲害的。他們?cè)趧≈械谋憩F(xiàn),分別獲得了88.08%和89.29%的好評(píng)率。

 0320萬(wàn)條彈幕告訴你 

追劇時(shí)大家都在說(shuō)些什么?

 接下來(lái)我們分析一下《隱秘的角落》在愛(ài)奇藝的彈幕數(shù)據(jù),我們分析整理了全部12集的彈幕,共200672條。下面看到分析結(jié)論:

 用戶使用的彈幕角色

觀眾在愛(ài)奇藝追劇發(fā)彈幕時(shí),可以選擇自己喜歡的角色頭像。那么觀眾都最喜歡用哪些用人物角色發(fā)彈幕呢?

 可以看到,這方面張東升在這方面是榜首。其次是朱朝陽(yáng),然后可愛(ài)的小妹妹普普位居第三。

彈幕字?jǐn)?shù)分布


在彈幕的字?jǐn)?shù)上我們可以看到,5-10個(gè)字的是最多的,共有11萬(wàn)余條彈幕。其次是10-15個(gè)字,48032條彈幕。0-5個(gè)字的彈幕也有不少,共25420條??梢娫谧穭“l(fā)彈幕時(shí),大家還是傾向多說(shuō)點(diǎn),表達(dá)自己的想法。

 整體彈幕詞云

在整體彈幕詞云中,「孩子」、「嚴(yán)良」、「普普」被提到的頻率很高??吹饺恍≈餮莸囊慌e一動(dòng)還是牽動(dòng)著觀眾的心的。

 接下來(lái),我們分別看到幾位主演的人物彈幕詞云吧。

 張東升

首先就是張東升了,不同于一般臉譜化的反派角色。在張東升的身上,大家既看到他的冷酷,兇殘,也看到他的無(wú)奈和隱忍。在彈幕中,關(guān)于他,提到「爬山」、「機(jī)會(huì)」的特別多,這幾句張東升的話實(shí)在太出圈了。

有意思的是,張東升的「頭發(fā)」也被頻頻提及,畢竟這個(gè)禿頭造型實(shí)在是太令人印象深刻了。

 朱朝陽(yáng)

下面再看到三位小主演中最受關(guān)注的朱朝陽(yáng)。品學(xué)兼優(yōu)的他,因?yàn)楦改鸽x異性格有些內(nèi)向和孤僻。在詞云中,他與「爸爸」、「媽媽」的感情也是大家討論最多的。其次他與「張東升」間的對(duì)手戲,以及后面他角色的「黑化」也是討論焦點(diǎn)。

 普普

劇中的小妹妹普普也是很多人喜歡的角色了,在詞云中可以看到觀眾對(duì)她的「喜歡」,以及對(duì)她「演技」的肯定。此外,「善良」等詞也常被提到。

 嚴(yán)良

劇中的另一位小演員角色——嚴(yán)良也是彈幕中關(guān)注度很高的。關(guān)于他,大家經(jīng)常會(huì)提到跟他形影不離的「普普」,此外「演技不錯(cuò)」「厲害」等詞也頻出。



04教你用Python分析愛(ài)奇藝彈幕數(shù)據(jù)

 我們使用Python獲取并分析愛(ài)奇藝的彈幕數(shù)據(jù),整個(gè)數(shù)據(jù)分析的流程分為以下三個(gè)部分:


下面看到具體步驟:


首先導(dǎo)入所需包,其中pandas用于數(shù)據(jù)讀入和數(shù)據(jù)處理,os用于文件操作,jieba用于中文分詞,pyecharts和stylecolud用于數(shù)據(jù)可視化。


# 導(dǎo)入庫(kù)
import pandas as pd 
import os  
import jieba

from pyecharts.charts import Bar, Pie, Line, WordCloud, Page
from pyecharts import options as opts 
from pyecharts.globals import SymbolType, WarningType
WarningType.ShowWarning = False

import stylecloud
from IPython.display import Image


我們將爬取的數(shù)據(jù)存放在data文件夾下,使用os操作獲取需要讀取的csv文件列表。

# 文件列表
data_list = os.listdir('../data/')
data_list


['df_第一集.csv',
 'df_第七集.csv',
 'df_第三集.csv',
 'df_第九集.csv',
 'df_第二集.csv',
 'df_第五集.csv',
 'df_第八集.csv',
 'df_第六集.csv',
 'df_第十一集.csv',
 'df_第十二集.csv',
 'df_第十集.csv',
 'df_第四集.csv']


然后使用pandas將csv文件讀入并循環(huán)追加到總表df_all中,打印以下數(shù)據(jù)集大小看一下,一共有200672條。

# 存儲(chǔ)數(shù)據(jù)
df_all = pd.DataFrame()

# 循環(huán)寫入
for i in data_list:
    df_one = pd.read_csv(f'../data/{i}', engine='python', encoding='utf-8', index_col=0)  
    df_all = df_all.append(df_one, ignore_index=False)

# 打印數(shù)據(jù)集大小
print(df_all.shape) 


(200672, 6)


再預(yù)覽一下前五行數(shù)據(jù)。


# 預(yù)覽數(shù)據(jù)
df_all.head() 



數(shù)據(jù)讀入之后,接下來(lái)簡(jiǎn)單對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理的工作,我們針對(duì)name字段進(jìn)行以下處理:使用strip操作去除字符串前后的空格;定義一個(gè)轉(zhuǎn)換函數(shù),根據(jù)name字段新增name_level字段,標(biāo)注用戶等級(jí),效果如下:


# 字符串處理
df_all['name'] = df_all.name.str.strip() 

def transform_name(x):
    if x=='張東升' or x=='朱朝陽(yáng)' or x=='普普' or x=='嚴(yán)良' or x=='陳冠聲' or x=='周春紅' or x=='朱永平' or x=='葉軍':
        return 'VIP用戶'
    elif x=='未知用戶':
        return '未知用戶'
    else:
        return '普通用戶'

# 新增列
df_all['name_level'] = df_all.name.apply(transform_name)
df_all.head() 



接下來(lái)使用pyecharts進(jìn)行數(shù)據(jù)可視化。主要分析內(nèi)容包含:


  1. 用戶最喜歡使用的彈幕角色-條形圖
  2. 彈幕發(fā)送字?jǐn)?shù)分布-條形圖
  3. 彈幕角色-詞云圖

首先統(tǒng)計(jì)不同等級(jí)用戶的數(shù)量。

level_num = df_all.name_level.value_counts()
level_num 


未知用戶     157722
VIP用戶     41127
普通用戶       1823
Name: name_level, dtype: int64


使用pyecharts中的Pie類繪制餅圖,效果如下:


data_pair =  [list(z) for z in zip(level_num.index.tolist(), level_num.values.tolist())]

# 繪制餅圖
pie1 = Pie(init_opts=opts.InitOpts(width='1350px', height='750px'))
pie1.add('', data_pair, radius=['35%', '60%'])
pie1.set_global_opts(title_opts=opts.TitleOpts(title='彈幕發(fā)送人群等級(jí)分布'), 
                     legend_opts=opts.LegendOpts(orient='vertical', pos_top='15%', pos_left='2%'))
pie1.set_series_opts(label_opts=opts.LabelOpts(formatter=":geybsqlxm7mc%"))
pie1.set_colors(['#3B7BA9', '#6FB27C', '#FFAF34'])
pie1.render() 


name字段中標(biāo)注了用戶發(fā)送彈幕時(shí)候使用的彈幕角色,統(tǒng)計(jì)并篩選不同彈幕角色的使用頻次。


role_num = df_all.name.value_counts()[1:9]
role_num






張東升    18734
朱朝陽(yáng)     8742
普普      4688
嚴(yán)良      2595
陳冠聲     2122
周春紅     1879
朱永平     1333
葉軍      1034
Name: name, dtype: int64


然后使用pyecharts中的Bar類繪制一張餅圖。


# 柱形圖
bar1 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px'))
bar1.add_xaxis(role_num.index.tolist())
bar1.add_yaxis("", role_num.values.tolist(), category_gap='5%')
bar1.set_global_opts(title_opts=opts.TitleOpts(title="VIP用戶最喜歡使用的彈幕角色"), 
                     visualmap_opts=opts.VisualMapOpts(max_=18734),
                    )
bar1.render() 


content字段記錄了用戶評(píng)論的彈幕信息,此處根據(jù)這個(gè)字段計(jì)算字?jǐn)?shù)并按照步長(zhǎng)5進(jìn)行分箱處理,得到不同字?jǐn)?shù)段下的頻次分布。


word_num = df_all.content.apply(lambda x:len(x)) 

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


(0, 5]       25420
(5, 10]     113834
(10, 15]     48032
(15, 20]      9864
(20, 25]      2385
(25, 30]       645
(30, 35]       274
(35, 40]       109
(40, 45]        49
(45, 50]        46
Name: content, dtype: int64


同樣使用Bar類繪制一張條形圖。


# 柱形圖
bar2 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px')) 
bar2.add_xaxis(word_num_cut.index.astype('str').tolist())
bar2.add_yaxis("", word_num_cut.values.tolist(), category_gap='4%')
bar2.set_global_opts(title_opts=opts.TitleOpts(title="彈幕發(fā)送字?jǐn)?shù)分布"), 
                     visualmap_opts=opts.VisualMapOpts(max_=113834),
                    )
bar2.render()


接下來(lái)我們定義一個(gè)分詞函數(shù)get_cut_words,這個(gè)函數(shù)的功能是傳入一列數(shù)據(jù),得到使用jieba分詞之后的列表。


# 定義分詞函數(shù)
def get_cut_words(content_series):
    # 讀入停用詞表
    stop_words = [] 

    with open(r"C:\Users\wzd\Desktop\CDA\CDA_Python\Python文本分析\10.文本摘要\stop_words.txt", 'r', encoding='utf-8') as f:
        lines = f.readlines()
        for line in lines:
            stop_words.append(line.strip())

    # 添加關(guān)鍵詞
    my_words = ['秦昊', '張東升', '王景春', '陳冠聲', '榮梓杉',
                '朱朝陽(yáng)', '史彭元', '嚴(yán)良', '王圣迪', '普普',
                '岳普', '張頌文', '朱永平', '十二集', '十二萬(wàn)',
                '十二時(shí)辰']  

    for i in my_words:
        jieba.add_word(i) 

    # 自定義停用詞
    my_stop_words = ['真的', '這部', '這是', '一種', '那種',
                    '哈哈哈']   
    stop_words.extend(my_stop_words)               

    # 分詞
    word_num = jieba.lcut(content_series.str.cat(sep='。'), cut_all=False)

    # 條件篩選
    word_num_selected = [i for i in word_num if i not in stop_words and len(i)>=2]

    return word_num_selected


將角色張東升的彈幕數(shù)據(jù)傳入函數(shù),得到分詞之后的列表。


text1 = get_cut_words(content_series=df_all[df_all.name=='張東升']['content'])
text1[:5] 


Building prefix dict from the default dictionary ...
Dumping model to file cache C:\Users\wzd\AppData\Local\Temp\jieba.cache
Loading model cost 1.280 seconds.
Prefix dict has been built successfully.
['爬山', '老弟', '十二集', '知足', '伊能靜']


然后使用stylecloud工具包繪制一張心形的詞云圖,效果如下:



# 繪制詞云圖
stylecloud.gen_stylecloud(text=' '.join(text1), max_words=1000,
                          collocations=False,
                          font_path=r'?C:\Windows\Fonts\msyh.ttc',
                          icon_name='fas fa-heart',
                          size=653,
                          output_name='./詞云圖/彈幕角色-張東升詞云圖.png')
Image(filename='./詞云圖/彈幕角色-張東升詞云圖.png')



數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }