江 濤,黃昌昊,孫 斌
(西北民族大學 中國民族語言文學信息技術教育部重點實驗室,蘭州 730030)
研究表明,彈幕(Danmaku/Bullet Screen/Overlaid Comments)起源于日本,是當今新型的一種即時評論方式。用戶在觀看視頻的過程中,通過彈幕來表達自己的情緒感受,深受年輕用戶的喜歡。相對于普通的評論文本,彈幕具有更強的情感傾向,由于彈幕比較短,所以情緒較為單一,蘊含了有待挖掘的情緒價值。彈幕經(jīng)常會出現(xiàn)同詞不同義,或者一詞多義的情況。例如“東西”這個詞,在句子“這個東西很好看”中表示一種喜愛的情緒,但在“就這篇作文,你寫的什么東西!”這句話中,卻表達了一種極度反感的情緒。這給情感判別帶來了極大的挑戰(zhàn),也是傳統(tǒng)基于情感詞典的弊端。為了解決彈幕情緒分類問題,諸多研究人員從不同角度進行分析,提出相應的解決方案。
從彈幕文本分析的角度來看,文獻[1]中提出了搭建Albert-CRNN 模型,對彈幕進行積極情感與消極情感的二分類。該模型采集了上下文的語義信息,并且在嗶哩嗶哩彈幕視頻網(wǎng)、愛奇藝視頻和騰訊視頻等平臺的彈幕數(shù)據(jù)集上進行對比實驗,實驗數(shù)據(jù)約為1 萬條左右。通過對比實驗,驗證了該模型在彈幕的情感二分類任務中有較高的分類精度效果。該模型最大的特點,是通過對文本進行卷積操作,將得到的語義特征向量傳入到RNN 模型中,使其能夠充分利用上下文語義信息。文獻[2]對彈幕的口語化問題,構建了彈幕情感詞典。根據(jù)對比詞典中的詞匯計算其情感值,并融合詞匯的情感強度,綜合計算出一條彈幕的情感值。文獻[3]提出了一種融合了注意力機制的LSTM 情感二分類模型,通過利用Word2Vec 構建詞向量傳入LSTM 中來融合上下文信息。文獻[4]使用雙通道卷積神經(jīng)網(wǎng)絡對彈幕進行文本分類。2 個通道中,一個為字向量的通道,另一個為詞向量通道。這里,字向量通道主要用來輔助詞向量的通道,詞向量通道能夠捕捉上下文的語義信息。由于增加字向量通道后能夠將字和詞的語義特征同時融合,為單一的卷積做了充分的補充。文獻[5]中主要使用集成學習的方法,將彈幕分為帶情感詞和未帶情感詞。其中,帶情感詞匯的彈幕,在使用BS-CAL 算法的基礎上,再集成樸素貝葉斯(NB)算法計算其中的情感值;未含情感詞匯的彈幕使用ATT-GRU 結構進行預測。該方法融合了3 個模型的優(yōu)點??偟恼f來,基于Word2Vec 的ATT-GRU 分類模型,充分利用了詞之間的語義和位置關系;BS-CAL 方法擅長處理包含情感詞的彈幕,在對包涵很強情感極性的彈幕進行文本分類上,具有較高的性能;基于情感詞典的樸素貝葉斯方法,充分考慮了不同情感詞組合帶來的隱含影響。文獻[6]提出了基于奇異值分解SVD 算法的卷積神經(jīng)網(wǎng)絡模型,該方法替代傳統(tǒng)CNN 模型中的池化層進行特征提取和降維。文獻[7]在彈幕情感分類和情緒分類方面,利用多頭注意力機制的卷積神經(jīng)網(wǎng)絡框架進行情緒分類,但實驗精度僅在60%左右。
從短文本分類的角度,文獻[8-13]采用CNN、多頭注意力機制、語義抽取等相關的深度學習技術,融合了上下文信息進行短文本分類。文獻[14]采用融合注意力機制的BiLSTM,對短文本中的關鍵詞權重進行優(yōu)化,使準確率得到了提升。文獻[15]采用LDA 模型在新聞文本中進行主題抽取,拓展了單一的文本表示方法,取得了良好的結果。文獻[16]提出了一種融合卷積神經(jīng)網(wǎng)絡和多頭自注意力機制(CNN-MHA)的模型,使用多頭注意力機制降低了文本噪聲,該模型在搜狐新聞數(shù)據(jù)集上有明顯的提升。
從彈幕情緒應用的角度,文獻[17]通過構建隱含狄利克雷分布(LDA)的彈幕詞語分類模型,判斷出彈幕中的詞語在視頻片段中的多種情緒,再根據(jù)視頻片段之間的情感依賴關系推薦視頻的情感片段。文獻[18]通過改進的協(xié)同過濾算法對視頻進行推薦,將彈幕的情感作為一種視頻的特征,再計算視頻間的相似度,選擇相似度高的進行推薦。
由以上關于彈幕分類的研究可見,基本都只是情感的二分類,并未對彈幕的情緒進行分析,然而彈幕的情緒具有豐富的研究價值。本文意在將彈幕文本按照大連理工大學情感詞匯本體庫進行情緒分類,按照樂、好、怒、哀、懼、惡、驚7 個情緒標簽進行數(shù)據(jù)標注后,輸入到模型進行訓練。Bert 預訓練語言模型能充分學習上下文語義相關特征,提高在文本多分類的精度。
視頻的彈幕反映了觀看者當下的瞬時觀看體驗,能夠反映出觀看者當下的情緒反映或是視頻的高光時刻。圖1 是國外一個樂隊的演唱會視頻,彈幕大部分的情緒是好看和好聽的彈幕,能給人一種愉悅和歡樂的感覺,此時若結合彈幕的數(shù)量、再依據(jù)彈幕的情緒就可以具體定位到歌曲的氣氛高潮時刻。彈幕展示見表1。表中,在視頻的00:32 min 左右,視頻中的歌手開始登臺演唱,彈幕中幾乎都是對歌手的夸贊和贊美,彈幕的情感幾乎都是好的情感。
圖1 歌曲橋段Fig.1 The movie“Midnight Bell”bridge
表1 彈幕展示Tab.1 Danmaku display
再如圖2,這是一個乒乓球賽事視頻,由于運動員打出一個不可思議的旋轉球,彈幕中大多數(shù)情緒偏驚訝,比如:“哇!這球太厲害了”,“詭異的,弧圈”,“這球怎么旋轉的”,“這不科學”等字眼。彈幕展示見表2。表2 中,在視頻的03:08 min 左右,由于球員打出了一個旋轉弧圈球,彈幕中幾乎都是對這個球表示驚嘆和贊美,彈幕的情感幾乎都是驚的情感。
圖2 乒乓球比賽視頻片斷Fig.2 Videos chip of table tennis match
表2 彈幕展示Tab.2 Danmaku display
由上述實例可見,視頻彈幕情緒蘊含豐富的應用價值,可以用作視頻的推薦、輿情監(jiān)控等多方面的應用。
本文數(shù)據(jù)來源于BiliBili 彈幕視頻網(wǎng)的彈幕文本,先進行頁面的分析,通過request 請求包里get 方法獲取視頻的 url,將返回的 request傳入到BeautifulSoup 方法中,獲得視頻信息和視頻的彈幕。最終導出彈幕格式為Excel 格式,再通過數(shù)據(jù)分析的方式,找到數(shù)據(jù)的接口,為接下來的數(shù)據(jù)清洗和去重做準備。
數(shù)據(jù)清洗是情感分析中的第一個環(huán)節(jié),主要是對原始數(shù)據(jù)進行處理。比如:重復值的處理、文字噪音的處理等。首先通過python 中的文件讀取操作將數(shù)據(jù)讀取進來,按首字母進行排列,刪除噪音字符。例如:“&&&”,“%%%”等。接下來再進行去重處理,最后將預處理過的數(shù)據(jù)進行重新存儲,共計處理了1.6 萬條彈幕文本數(shù)據(jù)。
本文數(shù)據(jù)的標注主要依據(jù)大連理工大學《情感詞匯本體庫標準》中的7 大類、16 小類情感,對彈幕進行7 種情感類別劃分,將1.6 萬條彈幕進行情感標注,在人工標注的同時剔除掉不具有情感傾向的彈幕。
BiLSTM 是一個雙通道的LSTM 結構,模型將一個句子前向和后向的信息相融合,再將2 個時間序列相反的LSTM 輸出矩陣相結合。對于獲取輸入的一句話來看,前向LSTM 可以得到正向的語句信息,后向LSTM 可以得到反向的語句信息。例如:“長得”、“真有”、“創(chuàng)意”、“活得”、“富有”、“勇氣”是BiLSTM 所獲得的前向語義編碼信息,同時Bi-LSTM 還包含反向編碼信息,將文本逆序再進行一次編碼,將句子倒過來再次編碼為:“勇氣”、“富有”、“活得”、“創(chuàng)意”、“真有”、“長得”,逆序后再生成一次語義向量,最終把這2 個編碼信息合并成一個輸出矩陣。LSTM 單元結構見圖3。圖3 中,含有3 個門結構,分別為遺忘門、輸入門、輸出門。在時刻,W、W、W是權重矩陣,b、b、b、b是偏置矩陣。LSTM 模型單元結構設計可做闡釋分述如下。
圖3 LSTM 單元展示Fig.3 LSTM unit display
(1)遺忘門。這里用到的數(shù)學公式可寫為:
(2)輸入門。這里用到的數(shù)學公式可寫為:
(3)網(wǎng)絡內(nèi)記憶單元。這里用到的數(shù)學公式可寫為:
(4)輸出信息。這里用到的數(shù)學公式可寫為:
Bert_BiLSTM_CNN 模型由Bert 層、Bi-LSTM層、卷積和池化層、全連接層和層組成。整體模型流程如下:
(1)Bert 層。將彈幕文本輸入到模型的Bert 層中,文本分為字級別,輸入形式為,,…,X。其中,X表示該條彈幕文本中的第個字。獲取文本的位置編碼和每個字的字編碼,得到每個字的最終編碼向量:
將Bert 預訓練好的embedding 向量輸入到Bi-LSTM 中。
Bert 采用雙向Transform 組合,能更好地學習語義特征,最終得到動態(tài)特征向量,很好地解決了同詞不同義的情況。
(3)卷積和池化層。使用不同尺寸的卷積核進行多個卷積操作。本模型采用尺寸為2、3、4 的卷積核分別展開動態(tài)循環(huán),遍歷每一個句子向量進行卷積操作,最大能力獲取句子的語義信息,經(jīng)池化層下采樣降維得到該文本向量。池化層主要使用函數(shù),為了獲取每一個字向量的最大值,研究將一個句子向量維度壓縮到[_1] 維度,下采樣主要是為了特征降維、減少參數(shù)、壓縮數(shù)據(jù)。
(4)全連接層和層。將上述所得的向量進行全連接加權計算,最后利用函數(shù)進行歸一化,即可得到文本情緒分類的概率分布向量,取最大概率的類別,將彈幕分為好、樂、怒、悲、懼、惡、驚。Bert_LSTM_CNN 模型流程如圖4 所示。圖4 中,,,,…, X代表句子的每個字。
圖4 Bert_LSTM_CNN 模型流程Fig.4 Bert_LSTM_CNN model flow demonstration
本實驗所用數(shù)據(jù)是從B站(https:/ /www.bilibili.com/)根據(jù)不同主題的視頻隨機爬取的彈幕。對數(shù)據(jù)預處理后,最終將1.6 萬條彈幕文本按照7 ∶1.5 ∶1.5 的比例,劃分為訓練集、測試集、驗證集。數(shù)據(jù)分布見表3。
表3 文本情緒分布表Tab.3 Text sentiment distribution table 條
本文實驗的開發(fā)環(huán)境為Pytorch,開發(fā)語言為Python;使用RTX2080Ti 顯卡運行,運行內(nèi)存為12 GB。實驗所用模型參數(shù)見表4。其中包括:Word2Vec 詞向量維度、Bert 詞向量維度、BiLSTM 隱藏狀態(tài)向量維度、CNN 向量維度、濾波器窗口大小、優(yōu)化函數(shù)、損失函數(shù)、迭代次數(shù)、等。
表4 模型的參數(shù)設置Tab.4 Parameters setting of the model
通過為不同的參數(shù)設置適應性的學習率,不斷地迭代更新參數(shù),提高模型準確率。
為了驗證Bert_BiLSTM_CNN 模型的性能,將該模型與Bert-CNN、Bert-RNN、樸素貝葉斯(NB)進行對比實驗。實驗采用準確率、召回率、值作為評價指標,給出了不同模型在彈幕文本數(shù)據(jù)集上的準確率對比。實驗結果見表5。
表5 對比實驗效果Tab.5 Experimental results %
由表5 分析可見,相比樸素貝葉斯(NB)、Bert-CNN、Bert-LSTM模型,Bert_BiLSTM_CNN 模型在彈幕文本情緒分析中具有更佳的效果,精準度達到84.6%。
結合實驗效果可以得出,與Word2Vec 構建的詞向量模型相比,使用Bert 預訓練的語言模型有著很明顯的優(yōu)勢。由于Bert 語言模型能夠獲取的文本特征,可以充分利用語句里的上下文語義信息,從而使文本情緒分析效果得到極大的提升。另外,Bert_BiLSTM_CNN 模型相較于單一的Bert 模型在文本的情感分析的實際應用中具有更優(yōu)秀的表現(xiàn),同時也證明了采用BiLSTM_CNN 結構,通過雙向LSTM 所得到的向量,再通過卷積操作能更好地融合上下文的語義。
單類別的實驗結果見表6。表6 中列出了每類數(shù)據(jù)的精確度、召回率、值。
表6 各情緒類別精度Tab.6 Accuracy of each sentiment category %
本文通過Bert_BiLSTM_CNN 模型對彈幕文本的情緒進行判別,得到該彈幕的情緒分類。研究了彈幕中蘊含的大量情緒價值,可以應用在很多領域。比如:視頻精彩時刻的定位、視頻片段的推薦等等。驗證了該模型的有效性強于普通的Word2Vec 和單一的Bert 或CNN 模型;使用BiLSTM 和CNN 的結合對特征進行訓練,相較于單一的Bert 模型,雙向的LSTM 和卷積操作,能吸收文本的前后信息,在B站的彈幕文本里呈現(xiàn)出較好的分類效果。在下一步的研究中,將繼續(xù)探討如何將彈幕的情緒用于視頻推薦、精彩片段定位以及視頻創(chuàng)作等領域。