bilibili(2)-彈幕語言處理分析

bilibili數(shù)據(jù)分析-彈幕語言分析

前面爬蟲爬取bilibili視頻信息進(jìn)行數(shù)文章中做了爬蟲的源代碼和思路以及基礎(chǔ)播放數(shù)據(jù)的思路,今天繼續(xù)上次的文章,對(duì)彈幕語言進(jìn)行分析。

1.載入所需要的庫包

#xml包里進(jìn)行解析的方法
import xml.etree.ElementTree as ET
import pandas as pd
import numpy as np
import jieba
#scipy中處理圖像的函數(shù)
from scipy.misc import imread
from wordcloud import WordCloud,ImageColorGenerator
import matplotlib.pyplot as plt
%matplotlib inline
import warnings
warnings.filterwarnings('ignore')

2.解析彈幕xml文件

定義解析xml的方法,獲取節(jié)點(diǎn)

#解析xml
def parseXml(file):
    text_all = ''''''
    tree = ET.parse(file)
    #獲取節(jié)點(diǎn)
    root = tree.getroot()
    for child in root:
        if child.tag == 'd':
            text_all = text_all + child.text
    return text_all

以B站敖廠長的“貪玩藍(lán)月”視頻彈幕作為事例

text_all = parseXml('tanwanlanyue.xml')

3.繪制詞云

載入準(zhǔn)備好的背景圖片和字體弥鹦,為詞云做美化

#設(shè)置背景圖片以及字體
back_color = imread('bilibili.png')
font = 'Tensentype-DouDouJ.ttf'

設(shè)置wordcloud的參數(shù),背景顏色為白色爷辙,最大詞匯量會(huì)1000,面板遮罩為載入好的圖片朦促,字體膝晾。

# 獲取WordCloud對(duì)象
wc = WordCloud(background_color='white',
              max_words=1000,
              mask=back_color,
              font_path = font,
              random_state = 15 )

使用jieba分詞,生成迭代器务冕,載入數(shù)據(jù)為空格字符串血当。

# jieba分詞,形成有空格的字符串
word_list = []
word_generator = jieba.cut(text_all,cut_all=False)
for word in word_generator:
    word_list.append(word)
text = ' '.join(word_list)

wc.generate(text)

繪制詞云圖片

plt.figure(figsize=(20,10))
plt.axis('off')
plt.imshow(wc)

以背景圖片的主色彩來做字體顏色

#獲取背景圖片的色彩
image_colors = ImageColorGenerator(back_color)
plt.figure(figsize=(20,10))
plt.imshow(wc.recolor(color_func=image_colors))
plt.axis('off')
plt.show()

4.彈幕情感分析

運(yùn)用準(zhǔn)備好的停用詞禀忆、情感詞臊旭、否定詞等詞典,載入對(duì)文本進(jìn)行處理

#載入停用詞
f=open('stopword.dic')  
stopwords = f.readlines()  
stopwords=[i.replace("\n","") for i in stopwords]  

from collections import defaultdict  

#載入情感詞  
f1 =open("BosonNLP_sentiment_score.txt")  
senList = f1.readlines()  
senDict = defaultdict()  
for s in senList:  
    s=s.replace("\n","")  
    senDict[s.split(' ')[0]] = float(s.split(' ')[1])  

#載入否定詞  
f2=open("notDict.txt")  
notList = f2.readlines()  
notList=[x.replace("\n","") for x in notList if x != '']  

#載入程度副詞  
f3=open("degreeDict.txt")  
degreeList = f3.readlines()  
degreeDict = defaultdict()  
for d in degreeList:  
    degreeDict[d.split(',')[0]] = float(d.split(',')[1])

#將文本數(shù)據(jù)進(jìn)行分詞箩退,載入列表
def sent2word(sentence):
    seglist = jieba.cut(sentence)
    segResult = []
    for w in seglist:
        segResult.append(w)
    newSent = []
    #如果詞匯是在停用詞中离熏,則過濾掉
    for word in segResult:
        if word in stopwords:
            continue
        else:
            newSent.append(word)
    return newSent

t = []
t.append(sent2word(text_all))

#評(píng)分方法
def word_score(word_list):
    id = []
    for i in word_list:
        if i in senDict.keys():
            id.append(1)
        elif i in notList:
            id.append(2)
        elif i in degreeDict.keys():
            id.append(3)
    
    word_nake = []
    for i in word_list:
        if i in senDict.keys():
            word_nake.append(i)
        elif i in notList:
            word_nake.append(i)
        elif i in degreeDict.keys():
            word_nake.append(i)
    
    score = 0
    w = 1
    score0 = 0
    for i in range(len(id)):
        if id[i] == 1:
            score0 = w*senDict[word_nake[i]]
            w = 1
        elif id[i] == 2:
            w = -1
        elif id[i] == 3:
            w = w*degreeDict[word_nake[i]]
        score = score+score0
        score0 = 0
    return score

導(dǎo)出為DataFrame便于處理數(shù)據(jù)。

score_list = []
for i in t[0]:
    score_list.append(class_score(i))
score_df = pd.DataFrame()
score_df['word'] = t[0]
score_df['score'] = score_list
score_df = score_df.drop_duplicates('word',keep='first')

這是負(fù)面評(píng)分評(píng)價(jià)戴涝,分值越低越消極:



這是正面評(píng)分評(píng)價(jià)(充滿了譏諷-笑)滋戳,分值越高越積極:


5.bilibili人氣視頻彈幕分析

1.咬人貓-極樂凈土 播放量1336.6W

作為舞蹈區(qū)的播放量大人,視頻播放量一直在B站居高不下啥刻,up主咬人貓一直以可愛的形象出現(xiàn)在視頻中奸鸯,也因此收獲了一大批粉絲。

詞云:



看到了大大的“啊啊啊”可帽,“喜歡”娄涩,也代表了彈幕對(duì)于這一視頻的主要情感和文字。

情感分析:



整體趨于平滑映跟,情感更偏向于喜歡蓄拣。


特別在這里解釋一下扬虚,“prprprpr”是舔屏的擬聲詞,ssr是陰陽師的鬼神等級(jí)弯蚜,為最高等級(jí)孔轴。負(fù)面情感中“啊啊啊”,“咋辦”碎捺,“吐血”路鹰,“困住”其實(shí)是表達(dá)對(duì)于這一視頻里的妹子有多吸引人,無法自拔收厨,咋辦晋柱,吐血,被視頻困住的意思诵叁。

2.面筋哥x波瀾哥-我的烤面筋融化你的心 播放量610.2W

面筋哥可謂是三月份B站最火的人雁竞,和波瀾哥,李根拧额,高音哥并稱“追夢四人組”碑诉,經(jīng)過鬼畜區(qū)大佬的調(diào)教和制作,將面筋哥和波瀾哥合體為“義結(jié)筋瀾”的歌曲

詞云:



其中“Microsoft YaHei”侥锦、“SimHei true”进栽、“Yahei true”是高級(jí)彈幕的設(shè)置文件(大部分內(nèi)容為歌詞),在此沒有做更多的處理恭垦,AlanWalk是目前世界DJ電音界的牛人快毛,在此視頻中由此調(diào)侃AlanWalk看中了面筋哥和波瀾哥,以達(dá)到娛樂效果番挺。

情感分析:



負(fù)極情感詞匯其實(shí)很多都沒有太多表達(dá)的意思唠帝,咳咳更多的其實(shí)是表示一種不可言說的意義。


2.敖廠長-變態(tài)做出來的游戲 播放量427.0W

敖廠長是游戲區(qū)一股清流玄柏,運(yùn)用獨(dú)有的游戲知識(shí)深度和風(fēng)趣的解說方式襟衰,一直位列游戲區(qū)前列,做過很多童年時(shí)候玩過或者聽過的游戲粪摘,深度揭秘其中的秘密和故事右蒲。

詞云:


整個(gè)詞云充斥著變態(tài)、臥槽赶熟,沙耶之歌是日本一款反式轉(zhuǎn)角游戲瑰妄,主角因?yàn)槠湟暯遣煌吹降氖澜缫卜譃楝F(xiàn)實(shí)和血腥世界映砖。

情感分析:


6.總結(jié)

其實(shí)可以看出间坐,B站整體彈幕風(fēng)格還是以積極風(fēng)趣、玩笑一樂為主,這也其實(shí)代表了當(dāng)下很多年輕人所希望的心理狀態(tài)竹宋,在現(xiàn)實(shí)世界認(rèn)真的活著劳澄,在虛擬的一面又很風(fēng)趣的傳達(dá)快樂。

B站的彈幕已經(jīng)逐漸發(fā)展蜈七,超越“論壇”這一緩慢形式的正式交談秒拔,形成了高速流式的非正式隨機(jī)娛樂。因?yàn)榻邮芏群蛢?nèi)容理解度的降低飒硅,B站的受眾群體往往是較為年輕的一代砂缩,但其實(shí)很多梗或者彈幕中的段子所需要的理解力三娩,也逐漸的提升庵芭。這會(huì)為年輕一代對(duì)于新鮮事物的接受度,自我認(rèn)知雀监,善惡識(shí)別等双吆,形成重要的渠徑。這也是需要B站對(duì)于彈幕文化的把控和引導(dǎo)会前。


ps.因?yàn)楹髢蓚€(gè)的分詞數(shù)據(jù)沒有做壓縮好乐,出現(xiàn)了大量的“6666666666”的詞匯,導(dǎo)致整體函數(shù)圖像上揚(yáng)瓦宜。后期會(huì)加上更改曹宴,運(yùn)用正則進(jìn)行壓縮。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末歉提,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子区转,更是在濱河造成了極大的恐慌苔巨,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件废离,死亡現(xiàn)場離奇詭異侄泽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蜻韭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門悼尾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肖方,你說我怎么就攤上這事闺魏。” “怎么了俯画?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵析桥,是天一觀的道長。 經(jīng)常有香客問我,道長泡仗,這世上最難降的妖魔是什么埋虹? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮娩怎,結(jié)果婚禮上搔课,老公的妹妹穿的比我還像新娘。我一直安慰自己截亦,他們只是感情好爬泥,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著魁巩,像睡著了一般急灭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谷遂,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天葬馋,我揣著相機(jī)與錄音,去河邊找鬼肾扰。 笑死畴嘶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的集晚。 我是一名探鬼主播窗悯,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼偷拔!你這毒婦竟也來了蒋院?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤莲绰,失蹤者是張志新(化名)和其女友劉穎欺旧,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛤签,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辞友,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了震肮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片称龙。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖戳晌,靈堂內(nèi)的尸體忽然破棺而出鲫尊,到底是詐尸還是另有隱情,我是刑警寧澤沦偎,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布马昨,位于F島的核電站竞帽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鸿捧。R本人自食惡果不足惜屹篓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望匙奴。 院中可真熱鬧堆巧,春花似錦、人聲如沸泼菌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哗伯。三九已至荒揣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間焊刹,已是汗流浹背系任。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留虐块,地道東北人俩滥。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像贺奠,于是被迫代替她去往敵國和親霜旧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • ——?jiǎng)Ⅺ惉?——2016年2月01日 目錄 一儡率、行業(yè)背景1 二挂据、競品選擇1 1、AB站“斗爭”歷史1 2儿普、版權(quán)崎逃、許...
    阿玳閱讀 15,201評(píng)論 1 39
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,799評(píng)論 25 707
  • 建議彈幕不做回復(fù)!不做回復(fù)箕肃!不做回復(fù)!重要的話說三遍今魔。 彈幕一詞最早用于軍事領(lǐng)域勺像,指代對(duì)某一區(qū)域進(jìn)行密集火力攻擊。...
    劉東閱讀 1,973評(píng)論 0 6
  • 劉潤5分鐘商學(xué)院第二季第80篇筆記 概念:迭代策略 "小步快跑错森,快速迭代"吟宦,和"一次性把事做對(duì)" 到底哪個(gè)更正確,...
    麥子沒熟閱讀 896評(píng)論 0 1
  • 剛開始接觸我的婆婆涩维,第一印象不愛說話殃姓,做事要求嚴(yán)格袁波,不停的忙碌,很勤勞的人蜗侈。接觸時(shí)間長了篷牌,感覺婆婆是個(gè)立...
    紅時(shí)雨閱讀 179評(píng)論 1 1