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