王文強 江遠帆 方冉冉 衛(wèi)清
編者按:在這個到處被流量充斥的時代,網絡直播惡俗彈幕不斷出現,影響網絡環(huán)境的同時,在一定程度上也影響著部分未成年用戶的身心健康,網絡彈幕的相關問題亟待解決。本項目基于利用Python爬蟲、 Selenium模塊、Matplotlib等模塊與技術完成對于bilibili惡俗彈幕問題的優(yōu)化處理。本項目將直播過程中出現的彈幕抓取并存儲于目標數據庫中,再通過設定的語義框架對抓取內容進行實時且有效地彈幕過濾,以此來管理彈幕中出現的惡俗詞匯與不良言論,從而達到凈化網絡環(huán)境的最終目的。
問題背景
網絡讓人們言論自由、話語權趨于平等的同時,也為一些人進行網絡暴力提供了機會。虛擬的網絡環(huán)境致使網絡發(fā)言者可以以虛擬的網名和網絡ID的形式,隱藏其真實身份,這就造成網民言說責任與真實身份的斷裂,使其有了放縱自身網絡行為的機會。雖然現在部分軟件已經開始漸漸提倡用實名認證的方式讓用戶做到文明發(fā)言,但是網絡暴力、惡俗彈幕的問題依舊存在。
目前彈幕言論監(jiān)管還主要依靠人工進行刪除與禁言,操作繁瑣且常常出現“漏網之魚”。“彈幕”最早時為軍事用語,指的是用炮彈對目標進行密集炮擊。后來因為niconico①播放器的評論功能與當時的彈幕射擊游戲很是相似,所以才漸漸發(fā)展成現在我們所說的視頻或是直播中的彈幕功能。隨著彈幕文化在大眾、尤其是年輕群體中的影響力不斷擴大,彈幕內容也逐漸成為視頻傳播過程中非常重要的一部分,但目前諸多平臺彈幕監(jiān)察措施和過濾手段卻遲遲沒有得到優(yōu)化,伴隨著的是惡俗彈幕內容的不斷出現。
系統設計思路
為了能夠達到直播間彈幕收集并快速有效屏蔽的目的,本項目使用Python + Selenium模塊模擬瀏覽器對bilibili網站某一直播間、某一具體時段的彈幕信息進行有效抓取,并將這些抓取到的彈幕數據保存到提前設定好的MySQL數據庫中。我們可以利用Matplotlib等模塊對數據進行可視化分析,觀察彈幕構成及一些彈幕中最常出現的詞匯,并對結果進行分析同時提出一些可行性建議。
此外通過對抓取彈幕信息進行語義分析與語義框架的相似度判斷,確定彈幕的過濾條件并進行快速的過濾操作。依據當前視頻彈幕文本的語義框架和一個經過過濾后的標準語義框架,計算兩個語義框架的相似度,根據此處的語義相似度,確定是否過濾所述當前彈幕。這在簡化用戶操作、提高視頻彈幕過濾效率的同時完成了對惡俗彈幕的過濾與屏蔽。
文本數據收集
文本數據選擇
我們利用Python爬蟲等技術來獲取視頻和直播的彈幕及其他信息,并以獲取的數據為基礎來對惡俗彈幕進行有效屏蔽。在視頻和直播的文本數據之間進行選擇,最終我們選擇對直播的數據進行采集,理由有如下幾點。
(1)直播相比于視頻更有時效性。視頻中彈幕時間跨度較大,視頻發(fā)布后的任意時間人們都可以進行彈幕評論,而直播中的彈幕只有在直播過程中才可以發(fā)送,因此直播彈幕更具有時效性。
(2)直播相比于視頻更具有針對性。根據前期問卷調查我們發(fā)現,觀看直播的人群一般只對特定分類的直播感興趣,而觀看視頻的人群通常對各類視頻都會有一定程度的瀏覽,人們發(fā)送的彈幕評論可能與視頻內容無關,而直播彈幕則絕大部分都與當前直播內容有關,因此直播彈幕更具有針對性。
(3)直播相比于視頻更有互動性。在觀看視頻的時候,觀眾往往無法與視頻發(fā)布者進行實時的互動,在同一個視頻中彈幕之間的互動也往往無法在同一時間進行。而在一場直播中,主播能很及時地與彈幕進行互動,且由于觀眾都在這一時間段觀看直播,使得直播彈幕更有互動性。
部分采集數據
以下是8月18日B站主播“向晚大魔王”直播間的部分數據。
(1)進場及互動數據
(2)彈幕數量統計
(3)彈幕詞頻統計
我們對部分主播直播情況進行了單場直播數據分析,與此同時,對于單個主播,我們也會進行每月的數據總結,并以此為基礎進行深層數據分析。
系統實現
功能實現
本項目功能實現主要依靠于Python和MySQL數據庫。以下是本項目功能實現部分的相關介紹。
(1)運行環(huán)境需求
采用Python3、requirements.txt中的庫以及MySQL數據庫。
(2)直播信息抓取
使用Selenium模塊模擬瀏覽器對直播間信息進行抓取,這部分主要用于抓取直播間的所有信息,例如彈幕、SC、進場等數據,并將抓取到的數據保存到提前設定的MySQL數據庫中。
(3)文件使用
修改直播房間中room_id、target_id、medal _room_id,通過修改這些關鍵數據我們可以抓取任意一位主播的直播間信息。在修改好文件中的參數后,運行程序會自動生成MySQL中的數據表,程序終端會有心跳包等信息輸出,操作者可以連接數據庫查看最新的信息。
(4)惡俗彈幕關鍵詞屏蔽
通過對抓取彈幕信息進行語義分析與判斷,確定彈幕過濾條件并進行過濾操作。依據當前視頻彈幕文本的語義框架和一個經過過濾后的標準語義框架,計算兩個語義框架的相似度,根據此處的語義相似度,確定是否過濾所述當前彈幕。
關鍵技術
該項目核心技術是利用Python抓取直播間的數據,并鏈接到MySQL數據庫自動生成一個數據表。該方法需要利用以下幾個Python庫實現:
其中每個庫都將負責不同的模塊:
PyMySQL庫的作用是鏈接Python與MySQL數據庫,這樣Python爬取的數據就可以存儲到數據庫中方便今后的調用;jieba庫的作用是將一些較長的彈幕進行分詞,以輸出較短的分詞進行詞頻統計;aiowebsocket庫的作用是獲取需要爬取網站的數據,是本項目所有數據的來源;Matplotlib庫的作用是利用我們所獲取的數據進行繪圖,將獲取的文字化數據進行可視化處理;NumPy庫的作用是處理多為數組的數據,一般我們將NumPy庫與Matplotlib聯合使用以達到數據可視化的標準;Imageio庫的作用是提供了一個簡單的接口來讀取和寫入大量的圖像數據,包括動畫圖像、體積數據和科學格式。
至于彈幕的過濾,該技術主要應用于播放器的彈幕識別與屏蔽,主要內容包括:獲取模塊,用于從數據庫中獲取彈幕字段;判斷模塊,結合具體語義分析用于判斷彈幕是否為惡性彈幕,過濾條件簡單來說就是采用預設的語義分析裝置對所述每個彈幕文本進行語義分析,并確定一個標準的過濾語義框架;分析模塊,主要用于判斷當前彈幕語義字段同標準的過濾語義框架之間的相似度;確定模塊,根據相似度確定是否對該彈幕字段采取屏蔽措施。
通過這些我們可以獲取所需要的數據,將這些數據進行可視化分析,并將這些彈幕數據帶入彈幕過濾功能模塊,完成彈幕從搜集到判斷過濾的整個流程,以此為基礎來發(fā)現并解決直播與視頻彈幕中所出現的一些惡俗問題。
系統測試
本部分為了完成該程序的測試工作,我們利用自己的B站賬號開啟了一次直播(測試結束后統計彈幕確定無其他非測試彈幕出現)。同時,安排其他8名測試人員作為直播觀眾有計劃地發(fā)送彈幕,計劃測試時長為六分鐘,規(guī)定發(fā)送彈幕數量為30條,其中每人發(fā)送的惡俗彈幕內容(采集于網站其他直播間惡俗彈幕條數排名前十的彈幕內容)數量為5條,彈幕發(fā)送先后順序沒有具體限制。我們調用程序并借助Google瀏覽器對該測試直播間的數據進行實時抓取,經過一系列的篩選與過濾后我們發(fā)現,程序后臺共抓取240條彈幕信息,其中被認定為惡俗彈幕遭到程序屏蔽的彈幕數量為38條,與理論值40相差不大,說明該程序能夠起到一定的惡俗彈幕過濾屏蔽作用。
結語
如今,眾多視頻網站因為彈幕質量低而常常飽受爭議,網絡暴力、“帶節(jié)奏”甚至是一些惡俗彈幕時常因為平臺監(jiān)察措施不足而呈現在用戶眼中。本項目雖然從一定程度上完成了對于惡俗彈幕的分析與過濾,但是結合用戶體驗,在使用過程中我們發(fā)現程序需要優(yōu)化的地方還有很多,例如通過推出不同的屏蔽功能的組合更精確地解決用戶對于彈幕管理的需求。最后,我們要在保持內容多元化的同時,讓彈幕文化朝著更健康的方向發(fā)展,彈幕生態(tài)建設之路任重道遠。
注釋:
①Niconico動畫(日語:ニコニコ動畫,簡稱:Niconico、N站、Nico等 )是日本NIWANGO公司所運營的在線彈幕視頻分享網站。其中“Niconico”在日文中為微笑之意,動畫在日文中則為“影片”的意思。
參考文獻:
[1]陳代波.近年來我國網絡暴力問題研究綜述[J].青少年犯罪問題,2011(02):63-66+53.
[2]楊彬彬. 基于多謂詞語義框架的網絡文本過濾技術研究[D].北方工業(yè)大學,2018.
[3]北京奇藝世紀科技有限公司. 視頻彈幕過濾方法及裝置的制造方法:中國105357585[P].2016-02-24.
[4]自動化技術、計算機技術[J].中國無線電電子學文摘,2011,27(06):163-242.
本文受安徽財經大學大學生創(chuàng)新創(chuàng)業(yè)訓練計劃資助(S202010378219)
第一作者:王文強(1999—)男,漢族,安徽蕪湖人,安徽財經大學統計與應用數學學院,2019級本科生,數據科學與大數據技術專業(yè)。