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