- 概述:
對B站視頻中的彈幕進行數據采集與分析,實現如下目標:
(1)分析某一視頻的用戶情感傾向;
(2)從評論文本中挖掘出該視頻的精彩片段;
- 數據采集
本例對嗶哩嗶哩中一款國創動漫《領風者》第四集的彈幕進行采集,視頻鏈接如下:
(1)下載網頁源代碼(利用request庫)
用瀏覽器打開comments_file.xml文件,如下所示:
(2)將抓取到的彈幕信息寫入csv文件中,csv文件中為原始數據集
- 數據處理
進行數據分析時,從原始數據集中提取自己所需的數據,並根據后續要進行的數據分析對對采集獲取的數據進行基本處理操作,包括中文分詞、 停用詞過濾等。具體過程見詞頻分析。
- 數據分析
本次實例涉及的數據分析包括對視頻彈幕進行詞頻分析、情感分析以及根據根據彈幕推斷視頻精彩片段所處時間。
(1)詞頻分析
從原始數據集中提取出彈幕內容,將全部彈幕整合成一個長字符串,調用jieba庫對其進行分詞操作得到word列表;
提取彈幕內容
分詞
舍棄word列表中的單字項以及一些沒有意義的詞類似語氣詞等;
對保留下來的詞項進行詞頻分析,統計每個此項出現的次數(可輸出到控制台查看);
停用詞過濾及統計詞頻
生成詞雲更加直觀地了解詞頻信息。
將詞雲圖保存至wordCloud.html文件
(2)情感分析:
主要依賴庫:snownlp
官方描述:SnowNLP是一個python寫的類庫,可以方便的處理中文文本內容,是受到了TextBlob的啟發而寫的,由於現在大部分的自然語言處理庫基本都是針對英文的,於是寫了一個方便處理中文的類庫,並且和TextBlob不同的是,這里沒有用NLTK,所有的算法都是自己實現的,並且自帶了一些訓練好的字典。注意本程序都是處理的unicode編碼,所以使用時請自行decode成unicode。
簡單來說,snownlp是一個中文的自然語言處理的Python庫,支持的中文自然語言操作包括:中文分詞、詞性標注、情感分析、文本分類、轉換成拼音、繁體轉簡體、提取文本關鍵詞、提取文本摘要、tf,idf、Tokenization(分割成句子)、文本相似;對情感分析而言,官網沒有介紹具體原理,但是指明購物類的評論的准確率較高,因為它的語料庫主要是購物方面的。
由餅狀圖可知,3600條彈幕中,積極彈幕約占將近半數,中立彈幕較多於消極彈幕;
在實際情況中,彈幕多存在調侃、重復經典台詞、以及一些網絡流行用語,字面表述可能與實際意義不符,會對情感分析造成很大的障礙。比如,打印被歸為消極屬性的彈幕,可以看到“沒筆桿子,槍桿子只是個自爆炸彈”被判別為消極情緒,推測可能因為帶有“自爆”“炸彈”而被判別為消極情緒,但實際上,它反映的的確是積極情緒。
注:
s.sentiments>0.6 positive
s.sentiments<0.4 negative
the others neutral
類似的誤判不在少數,結合情感分析對應的語料庫主要時購物方面,初步判斷情感分析對彈幕內容的判別不夠准確。
(3)精彩片段
根據彈幕時間統計視頻播放到某一分鍾發出的彈幕數量;
據此,以時間為x軸,以彈幕數量為y軸可視化為折線圖,明確發現在第4、13分鍾左右的劇情更能引起觀眾共鳴;
- 結論展望
- 就詞頻分析而言,可以從詞雲圖中直觀地看到用戶對該視頻的評價以及用戶在觀看當下內心的真實感受,反映了受眾情感集結的內核;創作者可以據此優化創作目標,提高作品的受眾率。
- 就情感分析而言,本實例中情感分析所得的結論可信度不高;准確的情感分析可以判斷某視頻內容對用戶帶來的影響;該站運營者可以據此篩選合理恰當的作品。
- 就精彩片段而言,折線圖可以直觀地展示出每集視頻中或最引人注目、或最受人喜愛、或能引起用戶其他共鳴的部分,對創作者以及運營商具有參考價值。