王春東,張 卉,莫秀良,楊文軍
(天津理工大學(xué)計算機科學(xué)與工程學(xué)院,天津 300384)
微博(MicroBlog)是一種可以在網(wǎng)上便捷地發(fā)布或獲取消息的微型博客,普通用戶可以通過WEB、WAP及其它客戶端,以一般不多于140字的文字量或者圖片、短視頻等方式隨時在微博上發(fā)布消息。由于這種操作具有方便快捷的特點,微博贏得了大量的用戶[1]。根據(jù)官方統(tǒng)計顯示,截止到2020年3月,微博的月活躍用戶達(dá)到了5.5億,日活躍用戶達(dá)到了2.41億,相比于去年同期分別增長了8.5千萬和3.8千萬。由此可見,微博已經(jīng)成為了公眾在網(wǎng)絡(luò)上發(fā)表評論并以此來表達(dá)自己的觀點和訴求的主要途徑之一。
不難發(fā)現(xiàn)用戶發(fā)表的微博里所攜帶的情感因素,不僅能影響微博傳播的廣度和深度,還能感染其他用戶的情緒,甚至使得某種情感在短時間內(nèi)快速積累,造成社會輿論的爆發(fā)[2]。尤其是一些事關(guān)公眾人身安全的破壞性事件,由于輿論信息的不對稱性,往往會引發(fā)社會恐慌。例如2020年,因為新冠疫情的原因多國禁止糧食出口,盡管當(dāng)時國內(nèi)糧食儲備充足,但關(guān)于“糧荒”的輿論信息還是在國內(nèi)引發(fā)了“搶米搶面”事件。因此,對微博輿情的情感分析有必要被納入到公共突發(fā)事件管理范圍內(nèi)。識別微博輿論的情感,洞悉公眾對某些突發(fā)事件的態(tài)度和反應(yīng),并以此來對微博輿論進行有效的干預(yù)和引導(dǎo),對促使社會輿論良性發(fā)展有著很重要的意義[3,4]。
情感分析的概念最初由Nasukawa等[5]提出,情感分析是指從寫下的文字中提取出人們的情感或觀點。目前情感分析方法主要有基于情感詞典的方法、基于機器學(xué)習(xí)的方法和基于深度學(xué)習(xí)的方法,其中研究熱度最高的是基于深度學(xué)習(xí)的方法?;谇楦性~典的方法[6]需要先建立情感詞典,然后以情感詞典為依據(jù)進行情感計算?;跈C器學(xué)習(xí)的方法[7 - 12]需要先進行人工特征提取,然后采用機器學(xué)習(xí)算法對微博文本進行情感分類,常用的分類算法有NB(Na?ve Bayes)、SVM(Support Vector Machine)、ME(Maximum Entropy)、KNN(K-Nearest Neighbor Classification)和CRF(Conditional Random Field) 等?;谏疃葘W(xué)習(xí)的方法[13 - 16]不需要人工特征提取且具有較強的語義表達(dá)能力,常用的神經(jīng)網(wǎng)絡(luò)模型有CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、LSTM(Long Short-Term Memory)和GRU(Gated Recurrent Unit)等。
近年來很多研究者將注意力機制[6]引入到自然語言處理NLP(Natural Language Processing)任務(wù)中,用以解決深度學(xué)習(xí)在提取語義信息時會忽略重要詞匯的特殊作用以及難以考慮到全部文本信息的問題。2017年Vaswani等[17]提出了Transformer模型,模型中使用的自注意力(Self-Attention)機制可以充分考慮到每個詞在全局的作用。2018年Devlin等[18,19]在Transformer模型的基礎(chǔ)上提出了BERT(Bidirectional Encoder Representations from Transformers)模型,自此很多研究者開始基于BERT模型進行情感分析方法的研究。
本文后續(xù)章節(jié)安排如下:第1節(jié)介紹一些相關(guān)知識點;第2節(jié)介紹微博情感分析的準(zhǔn)備工作,即數(shù)據(jù)采集和預(yù)處理;第3節(jié)介紹主流的情感分析方法,即基于情感詞典的、基于機器學(xué)習(xí)的和基于深度學(xué)習(xí)的方法;第4節(jié)介紹注意力機制和BERT模型在情感分析中的應(yīng)用;第5節(jié)總結(jié)現(xiàn)有情感分析方法的不足并探討未來的發(fā)展趨勢;第6節(jié)對本文做一個全面的總結(jié)。
由于計算機無法直接讀懂人類所創(chuàng)造的詞匯,不能直接處理文本數(shù)據(jù),因此需要將文本數(shù)據(jù)轉(zhuǎn)化為計算機可以識別的數(shù)值化的數(shù)據(jù),即將文本數(shù)據(jù)轉(zhuǎn)換成詞向量,詞向量的表示如圖1所示。
Figure 1 Word vector representation of One-Hot coding圖1 One-Hot編碼的詞向量表示
將文本數(shù)據(jù)表示為詞向量的過程,也可以稱為詞嵌入的過程,主要有基于統(tǒng)計學(xué)的和基于語言模型的2種方式?;诮y(tǒng)計學(xué)的方法有詞袋模型、One-Hot編碼和TF-IDF(Term Frequency- Inverse Document Frequency)[20]等;基于語言模型的方法有著名的word2vec和后文將重點介紹的BERT等。word2vec[21,22]是谷歌提出的一種基于深度學(xué)習(xí)的開源詞嵌入工具,主要包括2種模型,即跳字模型(Skip-Gram)和連續(xù)詞袋模型CBOW(Continuous Bag Of Words) 。 文獻(xiàn)[23]中介紹了3種提取詞向量的方式,分別是TF-IDF、word2vec和一種加權(quán)的word2vec。
人類在觀察物體的時候,總會把視覺的注意力有選擇地局限在某些重點部位,自動忽略一些非必要的信息。例如,我們在閱讀的時候,通常只有少量要被讀取的詞會被關(guān)注和處理。人類視覺的這種特點正是注意力機制(Attention Mechanism)的思想起源。注意力機制模擬的是人類觀察事物的過程,2014年Mnih等[24]首次在圖像處理領(lǐng)域使用了注意力機制。
最初的注意力機制大多都是依附于Encoder-Decoder模型實現(xiàn)的,模型結(jié)構(gòu)如圖2所示,對于不同的輸入給予不同的注意力關(guān)注,即對需要重點關(guān)注的部分賦予較大的權(quán)重,對非重點關(guān)注部分賦予較小的權(quán)重。
Figure 2 Structure model of attention mechanism圖2 注意力機制圖示
基于這種Encoder-Decoder模型,Bahdanau等[25]創(chuàng)新性地將注意力機制應(yīng)用到了機器翻譯中,其翻譯過程可以看作是一個使用注意力機制來理解語義并預(yù)測輸出的過程。若將源文本看成是一個鍵-值對序列,分別用K=(k1,k2,…,kN)和V=(v1,v2,…,vN)表示,則可以將該預(yù)測過程看作是一個查詢過程,查詢序列用Q=(q1,q2,…,qM)表示,其中,N為鍵-值對序列長度,M為查詢序列長度,其計算過程可以歸納如下:
(1)計算相似度:計算qt和每一個ki的相似度得分eti,常用的計算方法如式(1)所示:
(1)
(2)歸一化:使用softmax函數(shù)對式(1)中計算的得分進行歸一化處理,得到每個鍵的權(quán)重ati,如式(2)所示:
(2)
(3)加權(quán)求和:將每個鍵的權(quán)重ati與其在V中對應(yīng)的值vi加權(quán)求和,作為注意力的輸出,如式(3)所示:
Attention(qt,K,V)=∑iativi
(3)
其中,W和U代表可以學(xué)習(xí)的參數(shù)矩陣,h代表參數(shù)向量,[;]代表向量的拼接操作。
不同類型的注意力關(guān)注范圍不同,組合方式也不同,本文對注意力機制進行了分類,整理如表1和表2所示。
Table 1 Classifing attention mechanism according to the attention scope
Table 2 Classifing attention mechanism according to the combination mode
自注意力機制[30]源自于Cheng等[32]提出的內(nèi)部注意力機制,是一種作用在源文本序列內(nèi)部或目標(biāo)文本序列內(nèi)部的特殊的注意力機制。自注意力機制主要用于捕獲同一個文本(句子)之間的語義信息,是注意力機制在Q=K=V時的一種改進。
RNN在提取文本內(nèi)部信息的時候,隨著文本序列長度的增加,網(wǎng)絡(luò)在學(xué)習(xí)后面的字詞時對前面字詞的記憶會越來越少,很容易出現(xiàn)梯度消失或梯度爆炸等問題。另外,RNN在進行計算的時候必須把前一時刻的輸出作為后一時刻的輸入,沒辦法并行計算。
自注意力機制可以在序列內(nèi)部建立長距離依賴關(guān)系[33 - 35],自注意力機制會計算每個詞和所有詞之間的權(quán)重,不管2個詞之間的距離有多大,它們之間的路徑長度都是1。自注意力機制以矩陣運算的方式進行并行運算,運算速度快于RNN。因此,在提取文本內(nèi)部特征的時候,自注意力機制明顯優(yōu)于RNN。
采集微博數(shù)據(jù)的途徑主要有2種:一種是通過微博上公開的API接口來采集;另一種是通過爬蟲程序來采集[36]。
(1)基于公開API。
微博開放平臺上提供了一些公開的API接口,開發(fā)者在通過微博公開平臺認(rèn)證后,可以通過符合微博格式規(guī)定的GET和POST方法來調(diào)用這些接口。
使用微博開放平臺提供的API采集數(shù)據(jù)相對簡單,但是普通的開發(fā)者用戶每小時只能訪問這些接口1 000次,這給采集微博數(shù)據(jù)帶來了一定的困難。另外,微博對搜索條數(shù)也進行了限制,一般只顯示一頁以內(nèi)的搜索內(nèi)容,對其他的內(nèi)容則采取了屏蔽或不顯示的策略。所以,使用微博公開平臺API這種采集方式并不適合實時的、大規(guī)模的微博數(shù)據(jù)采集。
(2)基于爬蟲程序。
爬蟲程序可以自動抓取網(wǎng)頁上的信息,一般根據(jù)預(yù)先設(shè)定好的規(guī)則,從一個URL開始抓取頁面,在抓取該頁面的時候,會將該頁面中新的URL放入到采集列表,然后根據(jù)一定的策略選擇下一個要抓取的頁面,直到采集列表為空或者采集到的數(shù)據(jù)滿足一定的條件為止。具體流程如圖3所示。
Figure 3 Process of crawling data by crawler圖3 爬蟲爬取數(shù)據(jù)的流程
雖然爬蟲能夠自動抓取網(wǎng)絡(luò)數(shù)據(jù),但是微博有著很強的反爬蟲機制,例如登錄機制、驗證碼、驗證塊拖條、限制單個用戶單位時間內(nèi)的訪問次數(shù)等,因此傳統(tǒng)的爬蟲程序并不適用于獲取大量微博的數(shù)據(jù)。現(xiàn)在很多研究者在大規(guī)模采集微博數(shù)據(jù)時采用的方法都是把API接口訪問和爬蟲程序結(jié)合起來。文獻(xiàn)[37,38]中描述了如何改進爬蟲程序以使其適用于大規(guī)模采集微博數(shù)據(jù)。
在獲取到微博語料之后,需要對微博語料進行預(yù)處理,將計算機不能識別的非結(jié)構(gòu)化的文本數(shù)據(jù)轉(zhuǎn)換成計算機可以識別的結(jié)構(gòu)化數(shù)據(jù)。微博語料預(yù)處理的流程如下:首先對文本數(shù)據(jù)進行分詞,然后進行詞性標(biāo)注、停用詞刪除等操作,接著進行句法分析,最后根據(jù)需要生成詞向量。
在預(yù)處理過程中,詞性標(biāo)注、停用詞刪除、句法分析和詞向量生成等步驟,中文的處理方式與英文的處理方式相差不大,唯獨分詞的過程中文要比英文復(fù)雜很多。中文不像英文那樣,每個單詞之間都有空格,在分析中文文本的時候,需要有專門的分詞算法來輔助計算機識別中文文本中的詞語、短語和固定搭配等。
最初的中文分詞是基于分詞詞典和規(guī)則的,文獻(xiàn)[39]中描述了如何構(gòu)建一個完備的分詞詞典以及隨著詞典規(guī)模不斷增大該如何提高檢索效率。隨后機器學(xué)習(xí)和深度學(xué)習(xí)也被應(yīng)用到了中文分詞當(dāng)中,本文對中文分詞方法進行整理,如表3所示。張婧等[40]提出了一種針對微博語料的分詞方法,該方法可以進行自主學(xué)習(xí),能從大規(guī)模未標(biāo)注的語料中挑選出具有標(biāo)注價值的微博分詞語料。
Table 3 Chinese word segmentation method
基于情感詞典進行情感分析只需要將預(yù)處理后的詞匯與情感詞典中的詞匯進行匹配,然后根據(jù)詞匹配程度計算情感得分并判斷情感極性,該方法計算簡單且不需要額外的資源。文獻(xiàn)[48,49]中介紹了基于情感詞典進行情感分析的代表性研究?;谇楦性~典進行情感分析的核心在于情感詞典的構(gòu)建。情感詞典是指一些帶有固定的情感傾向的名詞、動詞、形容詞和副詞等詞匯的集合,例如帶有積極情感的詞匯“愉快”“高興地”“英雄”,帶有消極情感傾向的詞匯 “傷心”“悲傷地”“漢奸”等。目前使用比較廣泛的中文情感詞典有知網(wǎng)的HowNet[50]、臺灣大學(xué)的NTUSD(National Taiwan University Sentiment Dictionary)[51]和大連理工大學(xué)情感本體庫[52]等。
情感詞典的構(gòu)建是一個工作量巨大且復(fù)雜的工程。傳統(tǒng)的情感詞典構(gòu)建方法大多是基于語義相似度的,其核心思想是度量候選詞與正負(fù)情感標(biāo)簽之間的距離,一般采用逐點互信息PMI(Point-wise Mutual Information)作為度量方法[6]。另有姚天昉等[53]基于主題模型建立情感詞典。近年來隨著人工智能的快速發(fā)展,很多人開始使用基于機器學(xué)習(xí)的方法[54]和基于深度神經(jīng)網(wǎng)絡(luò)的方法[55]來構(gòu)建情感詞典。
為了增強要表達(dá)的情感,用戶在微博上發(fā)布消息的時候通常都會使用一些情感色彩很強烈的情感符號,如表情符號、流行網(wǎng)絡(luò)用語、情感副詞或程度副詞等。因此,在對微博內(nèi)容進行情感分析的時候必須要考慮到這些情感符號的作用。文獻(xiàn)[56,57]中分別闡述了情感符號的重要性和如何基于情感符號來分析微博內(nèi)容的情感傾向。
基于情感詞典的情感分析方法操作簡單,但通常其情感分類精度比基于機器學(xué)習(xí)的方法和基于深度學(xué)習(xí)的方法要低,這主要是因為:(1)情感詞典的構(gòu)建難度較大,構(gòu)建的情感詞典一般是領(lǐng)域內(nèi)適用,這就使得基于情感詞典的方法通用性較差,魯棒性較低;(2)中文本身存在很多的一詞多義和反諷等現(xiàn)象,同一個詞在不用的語境下會有不同的情感傾向。另外,微博語料的時效性強,更新速度快,網(wǎng)絡(luò)上每天都會產(chǎn)生大量的網(wǎng)絡(luò)新詞,如“錦鯉”“盤他”等,若情感詞典不能及時更新,就很有可能誤判這些詞的情感傾向,導(dǎo)致分析結(jié)果出現(xiàn)較大偏差。
基于機器學(xué)習(xí)的情感分析方法需要從大量的語料中進行特征篩選,篩選方式主要是人工篩選,然后用選擇好的特征表示整個文本,最后采用機器學(xué)習(xí)算法對文本進行分類?;跈C器學(xué)習(xí)的情感分析方法可分為有監(jiān)督的和無監(jiān)督的2種方式。
(1)有監(jiān)督的機器學(xué)習(xí)方法。
采用有監(jiān)督的機器學(xué)習(xí)方法進行情感分析,首先需要對大量的微博數(shù)據(jù)進行人工標(biāo)注,即標(biāo)注出每一條微博文本的情感傾向,然后將這些標(biāo)注好的數(shù)據(jù)用作訓(xùn)練集,進行文本分類的訓(xùn)練。常用的分類方法有樸素貝葉斯NB、支持向量機SVM、最大熵ME、K近鄰KNN和條件隨機場CRF等方法。
Pang等[7]使用電影評論作為基礎(chǔ)數(shù)據(jù),分別采用了機器學(xué)習(xí)方法中的NB、ME和SVM 3種分類器實現(xiàn)了對影評數(shù)據(jù)的二分類。
另有Ni等[8]同樣將情感分析看作是一個二分類問題,再分別用NB、SVM和Recchio方法進行情感分類,同時還選擇了卡方(Chi)和信息增益(IG)進行特征選擇。Ye等[9]在旅游博客評論數(shù)據(jù)集上,對NB、SVM和N-Gram等情感分析方法進行了比較,實驗結(jié)果表明,SVM和N-Gram的分類效果優(yōu)于NB的分類效果。而Yang等[10]則利用網(wǎng)絡(luò)博客語料庫對SVM和CRF進行了比較,證明CRF的分類結(jié)果優(yōu)于SVM的。
(2)無監(jiān)督的機器學(xué)習(xí)方法。
有監(jiān)督的機器學(xué)習(xí)方法雖然精度較高,但是高度依賴于人工數(shù)據(jù)的標(biāo)注。通常人工標(biāo)注數(shù)據(jù)不僅工作量巨大,而且還會存在不一致性等問題。無監(jiān)督的機器學(xué)習(xí)方法則不需要人工標(biāo)注數(shù)據(jù),但是其精度一般較低。采用無監(jiān)督的機器學(xué)習(xí)方法進行情感分析,通常需要選取基準(zhǔn)的情感詞匯,然后進行主題劃分,常用的方法有概率潛在語義分析模型PLSA(Probabilistic Latent Semantic Analysis)[11]和潛在狄利克雷分配模型LDA(Latent Dirichlet Allocation)[12]等。PLSA和LDA一般用于處理文檔級別的長文本,對于微博等短文本并不適用,為此Yan等[58]提出了針對短文本主題建模的BTM(Biterm Topic Model)模型,顯式地建立單詞共現(xiàn)模式。
基于機器學(xué)習(xí)的中文微博情感研究相較于英文起步較晚,且研究資源和方法也比較落后,這主要是由于以下幾個原因:中文文本在進行情感分析前需要進行分詞處理;中文中存在很多一詞多義、褒義貶用、貶義褒用等現(xiàn)象;中文文本的上下文關(guān)聯(lián)性較大。針對中文文本,Zhao等[59]基于CRF來捕捉句子情感的語境約束,同時引入冗余特征來捕捉情感類之間的冗余標(biāo)簽; 李壽山等[60]基于中文研究了NB、EM、SVM和隨機梯度下降4種分類方法,并基于Stacking進行組合分類,在不同領(lǐng)域中使用不同的組合方法。
相較于基于機器學(xué)習(xí)的方法,基于深度學(xué)習(xí)的方法不需要人工提取特征,它可以自動提取初級特征并組合成為高級特征,然后自動進行情感分類。在諸多神經(jīng)網(wǎng)絡(luò)模型中,適用于情感分析的主要有卷積神經(jīng)網(wǎng)絡(luò)CNN[14]和循環(huán)神經(jīng)網(wǎng)絡(luò)RNN。
卷積神經(jīng)網(wǎng)絡(luò)CNN是一種通過卷積核來進行局部特征計算的神經(jīng)網(wǎng)絡(luò)。CNN具有分層抽取特征的能力,且可進行多層次的深度組合,經(jīng)常被用到圖像識別中。Kim[15]提出了適用于文本分類的TextCNN,在TextCNN中文本數(shù)據(jù)通過詞嵌入的方式被映射成詞向量,然后用所有的詞向量構(gòu)成一個矩陣作為CNN的輸入。該模型中的CNN網(wǎng)絡(luò)結(jié)構(gòu)相當(dāng)簡單,只包含1個卷積層和1個池化層,但卻在多個數(shù)據(jù)集上取得了當(dāng)時最好的準(zhǔn)確率。針對微博文本,劉龍飛等[16]以詞為單位訓(xùn)練詞向量,然后將訓(xùn)練好的詞向量送入到CNN中,進行句子特征的提取并依此判斷情感傾向,這證明了CNN能夠提取短文本的句子特征,適用于微博情感分類。
循環(huán)神經(jīng)網(wǎng)絡(luò)RNN是由很多需要串行計算的神經(jīng)網(wǎng)絡(luò)單元組成的,每個單元的輸入都包含前一個單元的輸出,這使得RNN具有記憶性,適合處理具有序列性質(zhì)的數(shù)據(jù)。文本數(shù)據(jù)正好具有這種序列性,例如“貓吃老鼠”與“老鼠吃貓”,盡管文字是一樣,但是由于文字序列的不同,表達(dá)的意思完全不相同。
圖4描述了基于RNN進行情感分析的過程,RNN中的每個神經(jīng)單元依次讀取文字信息,hi為隱藏的輸出單元,每一個hi中都包含了hi-1中的信息,因此最后一個隱藏的輸出單元hN中包含了前面所有文字的語義信息,最后分類器根據(jù)hN中的信息來進行情感分類。
Figure 4 Process of sentiment analysis based on RNN圖4 采用RNN進行情感分析的過程
RNN模型需要根據(jù)文本長度設(shè)置神經(jīng)單元數(shù)目,當(dāng)文本數(shù)據(jù)過長的時候,RNN中的單元數(shù)據(jù)過多,就會出現(xiàn)梯度消失或梯度爆炸[61]。為此很多研究在RNN的基礎(chǔ)上做出了改進,本文整理如表4所示。
Table 4 Improvement of RNN
基于深度學(xué)習(xí)的情感分析方法通常將文本當(dāng)作一個整體進行編碼,并不能充分考慮到情感符號的效果。而基于情感詞典的情感分析方法則過于依賴情感因素的影響,不能充分考慮到整個文本之間的語義關(guān)系[66,67]。另外,基于深度學(xué)習(xí)的方法通常只是對單條微博進行分析,沒有考慮到全局的文本結(jié)構(gòu)和情感因素。為了解決上述問題,現(xiàn)在很多的研究者都將注意力機制引入到了情感分析中[32,68]。本文總結(jié)了近兩年來注意力機制在情感分析中的使用情況,如表5所示。
Table 5 Application of attention mechanism in sentiment analysis
Transformer模型是由Vaswani等[17]提出的,它是一個用Self-Attention實現(xiàn)的Encoder- Decoder模型。通常Encoder-Decoder模型的核心結(jié)構(gòu)都是基于RNN實現(xiàn)的,但是RNN存在無法并行運算且容易出現(xiàn)梯度消失或梯度爆炸等一系列問題。為此,Transformer模型中使用Self- Attention代替了傳統(tǒng)的RNN。
從圖5中可以看出,Encoder的輸入是一句話的詞向量表示,隨后加上這句話的位置編碼信息,然后經(jīng)過一個Self-Attention層,該層能幫助Encoder在編碼每個字的時候查看到該字的前后字的信息;Self-Attention層的輸出會進入到一個Add&Norm層,Add表示將Self-Attention層的輸入和輸出進行相加,Norm表示將相加過的輸出做歸一化處理;歸一化的結(jié)果會傳入一個全連接的前饋神經(jīng)網(wǎng)絡(luò),然后再進行一次Add&Norm操作。
Figure 5 Structure model of Encoder in Transformer圖5 Transformer中Encoder部分圖示
BERT模型最主要的部分就是基于上述這種Encoder模型實現(xiàn)的。
BERT是谷歌的 Devlin 等[18]在2018年提出的一個語言模型,它基于雙向的Transformer模型實現(xiàn),其結(jié)構(gòu)如圖6所示,其中E1,E2,…,EN表示輸入,T1,T2,…,TN表示輸出。
Figure 6 Structure of BERT model 圖6 BERT模型結(jié)構(gòu)圖
BERT模型的輸入是3個向量的和,分別是詞向量、分段向量和位置信息。其中,詞向量表示對當(dāng)前詞的編碼,分段向量表示對當(dāng)前詞所在句子的位置編碼,位置向量表示對當(dāng)前詞的位置編碼,每一句話使用CLS和SEP作為開頭和結(jié)尾的標(biāo)記。
為了增強模型的語義表示能力,BERT在預(yù)訓(xùn)練的時候同時考慮到了每個詞左右兩邊的詞,創(chuàng)新性地提出了2個預(yù)訓(xùn)練任務(wù):MLM(Masked LM)和NSP(Next Sentence Prediction)。MLM任務(wù)是指給定一句話,隨機抹去其中的一個或幾個詞,用剩余的詞去預(yù)測這幾個詞分別是什么,一般隨機抹去15%的詞匯;NSP任務(wù)是指給定一篇文章中的2句話,判斷第2句話在文章中是否緊跟在第1句話之后。BERT在NLP領(lǐng)域的很多任務(wù)中取得了很好的結(jié)果,例如情感分類、問答系統(tǒng)等。
利用BERT模型進行微博情感分析屬于BERT的一個下游任務(wù),一般需要利用預(yù)訓(xùn)練好的BERT模型生成文本的向量表示,然后再采用相關(guān)的分類算法進行情感分類。BERT生成詞向量的過程不同于word2vec,BERT生成詞向量是一個動態(tài)的過程,能更充分地考慮到語義之間的信息。表6中總結(jié)了最近一年來使用BERT模型進行情感分析的方法。
Table 6 Methods of sentiment analysis based on BERT
隨著互聯(lián)網(wǎng)的快速普及和微博用戶數(shù)量的迅速增加,越來越多的研究者開始關(guān)注微博情感分析,本文對現(xiàn)有情感分析方法進行了總結(jié):
(1)基于情感詞典的方法。基于情感詞典的方法操作簡單且有著不錯的分類效果,但是嚴(yán)重依賴于情感詞典,一旦文中出現(xiàn)情感詞典中沒有的詞將很難判斷出情感傾向。另外,微博文本中的詞匯時效性強,情感詞典的更新速度很難滿足網(wǎng)絡(luò)詞匯快速變化的現(xiàn)狀。
(2)基于機器學(xué)習(xí)的方法?;跈C器學(xué)習(xí)的方法需要以人工的方式從原始特征空間中選取出符合標(biāo)準(zhǔn)的特征子集,這在一定程度上保留了特征的原始含義,具有較強的可解釋性。但是,這種方法嚴(yán)重依賴于特征工程,很多時候人工特征提取的好壞直接影響到分類的結(jié)果。
(3)基于深度學(xué)習(xí)的方法。基于深度學(xué)習(xí)的方法不需要人工提取特征,能充分考慮到文本的上下文語義信息,分類效果優(yōu)于基于情感詞典的方法和基于機器學(xué)習(xí)的方法。但是,基于深度學(xué)習(xí)的方法在提取語義信息時只是針對單條微博文本進行編碼,不能結(jié)合全部微博數(shù)據(jù),也不能充分考慮到表情符號的作用。
為了解決深度學(xué)習(xí)方法不能對影響分類效果的情感詞匯給予更多關(guān)注的問題,研究者將Attention機制應(yīng)用到了深度學(xué)習(xí)模型當(dāng)中。Attention機制不僅可以考慮到全部的文本信息,還能為關(guān)鍵詞匯分配更高權(quán)重,進而可以加強模型提取有用信息、減弱無用信息的能力。谷歌提出的BERT模型,本質(zhì)上就是基于Self-Attention實現(xiàn)的深度神經(jīng)網(wǎng)絡(luò)模型,其情感分類效果明顯優(yōu)于其它的神經(jīng)網(wǎng)絡(luò)模型。因此,在情感分析未來的發(fā)展中,注意力機制的使用肯定會是一個很重要的研究方向。
微博用戶發(fā)布的消息常常會伴隨著圖像或視頻,但是目前的微博情感分析方法大多數(shù)是基于文本數(shù)據(jù)的,缺少對圖像、視頻等數(shù)據(jù)的情感分析。因此,未來的發(fā)展中,研究者應(yīng)該深入對圖像、視頻等數(shù)據(jù)的分析。
為了監(jiān)督和引導(dǎo)微博輿論,對微博內(nèi)容進行情感分析是非常必要的。采集微博數(shù)據(jù)的方式主要通過微博公開的API和爬蟲程序,采集到數(shù)據(jù)后需要對數(shù)據(jù)進行預(yù)處理操作,如分詞、去停用詞和句法分析等;另外,還需要根據(jù)需求將非結(jié)構(gòu)化的文本數(shù)據(jù)轉(zhuǎn)化為計算機能夠識別的結(jié)構(gòu)化數(shù)據(jù),即將文本數(shù)據(jù)向量化。對預(yù)處理后的數(shù)據(jù)進行情感分析的方法主要有基于情感詞典的方法、基于機器學(xué)習(xí)的方法和基于深度學(xué)習(xí)的方法。為了提高情感分類的精度,很多研究者將注意力機制引入到了深度學(xué)習(xí)模型中,取得了很好的分類效果。目前在NLP領(lǐng)域取得突破的BERT模型就是基于注意力機制實現(xiàn)的,注意力機制在NLP領(lǐng)域有著舉足輕重的地位。