
詳解用Python分析EDG奪冠的22.3萬條彈幕資料以此來感受粉絲的熱情!
11月6日,在英雄聯盟總決賽中,EDG戰隊以3:2戰勝南韓隊,獲得2021年英雄聯盟全球總決賽冠軍,這個比賽在全網各大平台也是備受矚目:
1、微網誌熱搜第一名,截止2021-11-10已有億級觀看量,微網誌粉絲數到達638.4萬
2、哔哩哔哩已有幾億人氣,總彈幕有22.3萬,全站排行榜最高第2名,B站粉絲已有219.9萬
3、騰訊、愛奇藝、優酷等視訊平台800萬人看過
4、虎牙等直播平台熱度也是居高不下
5、央視新聞也發微網誌慶祝EDG奪冠
既然比賽熱度這麼高,那麼本次我們就以bilibili為基準,通過采集EDG奪冠比賽視訊在哔哩哔哩的22.3萬條彈幕資料,再通過Python來分析進而感受粉絲的熱情
利用爬蟲技術抓取EDG戰隊在B站奪冠比賽視訊的22.3萬條彈幕資料
通過jieba、numpy等Python庫對抓取來的彈幕資料進行分析并且可視化
利用pandas+自然語言處理(NLP)等對EDG奪冠比賽視訊的彈幕資料進行情感分析,根據分析結果得出一些結論
首先進入EDG奪冠比賽視訊URL:
https://www.bilibili.com/video/BV1EP4y1j7kV?p=1
哔哩哔哩已為大家整理好了EDG比賽視訊,從開幕式到奪冠時刻,共有7個視訊
哔哩哔哩彈幕資料接口:
http://api.bilibili.com/x/v1/dm/list.so?oid=XXX
這個接口就是B站彈幕資料專用接口,我們可以直接拿來用,這個接口中的oid可以了解為每個視訊中的唯一辨別符,它由數字組成,每一個視訊都有唯一的一個oid,那麼我們隻要找到oid就可以請求相應比賽視訊彈幕的API接口,進而抓取彈幕資料
擷取oid
打開開發者工具,切換到Network選項,然後找到以pagelist為開頭的請求接口
接着找到Request URL這個請求接口,打開新視窗直接用這個API接口請求,如下圖:
當我們直接請求這個API接口時可以看到JSON格式的資料,而在裡面的cid就是我們需要的oid,如下所示:
當然我們也可以點選Preview選項,點選data,打開資料,而裡面的JSON資料是折疊的,包括cid在内,如下圖所示:
可以看到,每個cid對應每一個比賽視訊。我們也可以點選Response選項,裡面的資料是真實的資料,意味着資料沒有經過折疊,與直接請求Request URL傳回的JSON資料是一樣的
控制台輸出如下:
拼接URL彈幕資料API接口
一共有7個網址,對應7個EDG比賽視訊的彈幕資料,我們點開第一個網址檢視
抓取彈幕資料
從上一張圖可以看到,每一條彈幕資料都在每一個<d>标簽中,面對這種格式我們思考一下用哪種解析工具比較合适?答案當然是正規表達式,接下來我們要擷取7個比賽視訊的22.3萬條資料,代碼如下:
避免亂碼,加上如下代碼:
由于彈幕資料共有22.3萬條,這裡僅展示EDG.txt部分彈幕資料,如下圖所示:
詞雲圖制作
我們已經抓取到彈幕資料,接下來利用EDG背景圖做一個詞雲圖
代碼如下:
把迪迦奧特曼背景圖檔也制作一波吧,哈哈哈!
制作成迪迦奧特曼詞雲圖形狀,如下所示:
當然你也可以使用pyecharts/echarts制作也行,還可以制作成你喜歡的圖檔形狀。如果你接觸過情感分析的話,也可以用這些彈幕資料分析一波
控制台輸出:
先安裝一下用于情感分析的Python庫:
效果如下:
情感分析
情感資料描述
資料說明:emotion的平均值為0.63,中位數為0.67,25%分位數為0.49,可見不到25%的資料造成了整體均值的較大下移。另外上圖的最下面可以看到,情感分析執行時間為48.8s,資料量還是挺大的。
資料說明:
由直方圖可見,彈幕情感呈逐漸上升的趨勢,說明粉絲對EDG奪冠情緒逐漸興奮,很激動;
彈幕資料中有約4500條彈幕情感分在[0.5,0.6區間内;同時,有約4800條彈幕情感分在[0.8,0.9]區間内,這個區間粉絲的情緒最亢奮,估計是奪冠時刻,哈哈哈!
從區間[0.5,0.6]過渡到[0.6,0.7]以及從區間[0.8,0.9]過渡到[0.9,1.0]彈幕情緒出現下降,可能是因為在比賽中出現一些問題或者是比賽落幕了
以上關鍵詞顯示,粉絲發的彈幕中“冠軍”是最多的,然後是“翻譯”,”我們”,“卧槽”,“小姐姐”,“EDG”,“淚目“,”聖槍哥“,”賀電“,”edg“,由此看來,EDG真的很受歡迎,翻譯小姐姐也挺受歡迎的。這在上面的詞雲圖中也可以看得出來
參數說明:
sentence是需要提取的字元串,必須是str類型,不能是list
topK表示提取前多少個關鍵字
withWeight表示是否傳回每個關鍵詞的權重
allowPOS表示允許提取的詞性,預設提取地名(ns)、名詞(n)、動名詞(vn)、動詞(v)
計算積極彈幕與消極彈幕各自的數目:
積極彈幕資料為:17941
消極彈幕資料為:6054
由上圖可見,由74.77%的彈幕資料是積極的,有25.23%的彈幕資料是消極的,總體來看,積極彈幕還是比較多的
取出部分消極彈幕資料
圖中的“回血”,“求生欲”等消極彈幕有可能是EDG戰隊或者南韓隊比賽不佳造成的
PIL庫
jieba庫
numpy庫
pandas庫
requests庫
wordcloud庫
matplotlib庫
json,re,chardet庫
snownlp情感分析庫
完整項目(包括源碼)擷取方式:下載下傳
也可添加本人微信号擷取完整項目:MakerChen66
本人原創公衆号原文連結:閱讀原文
本人CSDN部落格連結:閱讀原文
原創不易,如果覺得有趣好玩,希望可以随手點個贊,拜謝各位老鐵! 最近發現CSDN上好多人抄襲本人部落格,還比我熱度高,哎!畢竟是10月份剛剛建立的賬号,知名度和粉絲沒有别人高啊!
作者:南柯樹下,Goal:讓程式設計更有趣! 原創微信公衆号:『小鴻星空科技』,專注于算法、爬蟲,網站,遊戲開發,資料分析、自然語言處理,AI等,期待你的關注,讓我們一起成長、一起Coding! 版權聲明:本文禁止抄襲、轉載 ,侵權必究!
更多獨家精彩内容 請掃碼關注個人公衆号,我們一起成長,一起Coding,讓程式設計更有趣!
—— —— —— —— — END —— —— —— —— ————
歡迎掃碼關注我的公衆号
小鴻星空科技