杜茂康,李曉光,劉 崠
(重慶郵電大學(xué) 電子商務(wù)與現(xiàn)代物流重點實驗室,重慶 400065)
隨著互聯(lián)網(wǎng)的深度發(fā)展及應(yīng)用,社交媒體在過去幾年迅速發(fā)展,網(wǎng)絡(luò)用戶不斷增加,使得社交媒體成為最大的輿論數(shù)據(jù)來源。在社交媒體網(wǎng)站上發(fā)布消息已成為人們最受歡迎的活動之一[1],網(wǎng)絡(luò)上因而產(chǎn)生了海量的信息,怎樣從這些信息中獲取到用戶所需的內(nèi)容,快速而精準地滿足互聯(lián)網(wǎng)用戶的個性化服務(wù)需求是當(dāng)前的一個研究熱點。
文本情感分析是一種提取和評估文本意見的技術(shù),已被廣泛用于社交媒體的文本分析中[2-5]。文本情感不僅與主題相關(guān),而且與領(lǐng)域和時間也有聯(lián)系。一些研究者引入表情符號作為判別情感的依據(jù),并將情感維度與意見強度等結(jié)合起來進行情感分類[6-8],將多特征融合和上下文信息用于情感分類和強度識別過程中[9]。在文本情感分析中,情感詞庫作為關(guān)鍵的資源被廣泛使用,如與NB、SVM等算法結(jié)合進行情感分析[10-11]。當(dāng)前已有不少詞庫被用于情感分析的詞庫,如英文情感詞庫General Inquirer(GI)[12]、Bing Liu詞庫[13]等;中文情感詞庫,如知網(wǎng)(How Net)[14]、大連理工大學(xué)中文情感詞匯本體庫[15]等。傳統(tǒng)的情感詞庫由語言專家根據(jù)經(jīng)驗總結(jié)并進行標(biāo)注得到,需要耗費大量的時間且情感詞的數(shù)量也有所限制。一些研究收集整理了網(wǎng)絡(luò)上產(chǎn)生的新詞并對這些傳統(tǒng)情感詞庫進行擴展[16]。此外,F(xiàn)ernández-Gavilanes等[17]整理了網(wǎng)絡(luò)上常用的表情符號,并進行標(biāo)注以構(gòu)建表情符號詞庫用于判斷用戶的觀點、喜好等。盡管這些方法在一定程度上提升了情感詞的覆蓋率,但由于情感詞的情感強度或情感極性會隨著領(lǐng)域的不同而有所差異,使得這些情感詞庫的通用性受到了限制。
目前,很多研究針對特定領(lǐng)域構(gòu)建情感詞庫。Hung等[18]使用標(biāo)記化和消除歧義的方法,構(gòu)建了面向電影和酒店領(lǐng)域的情感詞庫,較好解決了原詞庫中部分單詞語義不清的問題。Wu等[19]提取目標(biāo)詞以及情感詞作為意見對,并對其極性進行分類。Oliveira等[20]利用StockTwits大型標(biāo)記數(shù)據(jù)集創(chuàng)建了股票市場的情感詞庫。在已有情感詞庫的基礎(chǔ)上,識別出特定領(lǐng)域的情感詞,對已有情感詞庫進行調(diào)整并進行擴展,在一定程度上提升了特定領(lǐng)域情感分析的性能[1,21-23]。這些方法都具有很強的領(lǐng)域相關(guān)性,但僅僅給出了情感詞的極性而沒有具體的情感分值。
由于領(lǐng)域的異質(zhì)性,不少情感詞往往具有專業(yè)性的特點,詞匯的情感取向因內(nèi)容領(lǐng)域的不同而存在很大差異,如“韭菜”在股市領(lǐng)域表達的是負向情感,而在其他領(lǐng)域往往與情感無關(guān)。目前,通用情感詞庫不能完全滿足特定領(lǐng)域情感分析的需求,現(xiàn)有研究構(gòu)建的特定領(lǐng)域情感詞庫存在以下問題:耗費大量時間、依賴于現(xiàn)有情感詞庫、方法適應(yīng)性較差、不能很好地移植到其他領(lǐng)域。為解決上述不足,本文利用遺傳算法構(gòu)建適應(yīng)于特定領(lǐng)域的情感詞庫,對情感詞的分值根據(jù)情感詞庫對文本分類的準確率自適應(yīng)調(diào)整,有效提高了該領(lǐng)域文本情感分類的準確率。本文構(gòu)建情感詞庫的方法主要具有以下優(yōu)勢:①耗時短;②情感詞分值可以根據(jù)領(lǐng)域的不同而自適應(yīng)調(diào)整;③方法可以很好地應(yīng)用到其他領(lǐng)域;④詞庫的構(gòu)建不依賴于現(xiàn)有情感詞庫。選取特定領(lǐng)域微博及Twitter評論文本作為語料,構(gòu)建特定領(lǐng)域的情感詞庫,相較于現(xiàn)有詞庫,在情感分析上優(yōu)勢明顯,證明了本文方法的有效性。
與傳統(tǒng)的情感詞庫構(gòu)建方式不同,本文借助機器學(xué)習(xí)思想來構(gòu)建針對特定領(lǐng)域的文本詞庫,構(gòu)建情感詞庫的框架如圖1所示。
圖1 基于遺傳算法的情感詞庫構(gòu)建框架
以微博文本為例,主要工作步驟如下。
步驟1利用網(wǎng)絡(luò)爬蟲技術(shù)從新浪微博獲取關(guān)于評論的微博文本。將文本進行必要的清洗和規(guī)整之后,對微博文本進行情感趨向的人工標(biāo)注。形成由若干短文本構(gòu)成的關(guān)于評論的情感語料庫。在爬取微博文本過程中,按照關(guān)鍵詞進行篩選,以得到特定領(lǐng)域的文本數(shù)據(jù)。
步驟2將這些文本中出現(xiàn)的超過一定頻率的詞均視為情感詞,并隨機為這些情感詞指定初始的情感值,形成初始的情感詞庫。
步驟3以情感詞庫對文本分類的準確率為目標(biāo),采用遺傳算法對情感分值進行調(diào)整。
1)計算文本的極性。對語料庫中的文本逐一進行掃描,根據(jù)情感詞庫,提取文本中的情感詞和情感值。將文本中所有情感詞的情感值進行累加得到該文本的情感極性,對應(yīng)的計算式為
(1)
(1)式中:P為文本的整體情感值,若P大于0,則為正向文本,反之則為負向文本;n為文本中包含的情感詞總數(shù);Vw為第w個情感詞的情感值。例如股市評論文本為“歐美股市下跌,A股或會低開”,包含情感詞“下跌”和“低開”,對應(yīng)的情感值為-7和-3,則該文本的情感分值為-7-3=-10,表明該文本的情感極性是負向的。
2)確定情感分類的準確率。將計算出的語料庫中所有文本的情感極性與人工標(biāo)注的極性進行比較,計算情感詞庫對文本進行情感分類的準確率。對應(yīng)的計算公式為
(2)
(2)式中:C為預(yù)測分類與人工標(biāo)注分類一致的文本數(shù);N為數(shù)據(jù)集中文本的總數(shù)。
3)確定反饋調(diào)整的策略。盡管情感分類的準確率與情感詞庫中的情感詞和情感詞的取值密切相關(guān),但是卻難以建立它們之間的解析關(guān)系式。因此,難以使用機器學(xué)習(xí)中的一些常用的反饋方式,比如梯度下降法。為此,從計算簡便的角度,采取隨機調(diào)整情感值的策略。同時,為了保證調(diào)整的有效性,采用啟發(fā)式算法對情感分值進行優(yōu)化,本文中用到的啟發(fā)式算法為遺傳算法。
步驟4以情感分類的準確率作為優(yōu)化目標(biāo)。通過隨機的方式,嘗試調(diào)整詞庫中情感詞的情感值,并以是否增加分類的準確率作為調(diào)整方案是否可行的判定。通過反復(fù)嘗試調(diào)整情感詞的值,逐步實現(xiàn)情感詞分值調(diào)整過程。
在基于遺傳算法的情感詞庫構(gòu)建框架中,目的是找到一個情感詞庫能夠使得文本分類的準確率最大。由于優(yōu)化算法采取的是先嘗試性修改,然后再判定是否進行更新的模式,這種模式希望優(yōu)化算法具備高效的隨機搜索能力。遺傳算法正好具備該能力,所以本文選用該算法作為基礎(chǔ),并作適當(dāng)?shù)母倪M,實現(xiàn)情感詞庫的構(gòu)建。
在本文算法中,將一個情感詞庫對應(yīng)為種群中的一個個體。將個體的適應(yīng)度值與詞庫情感分類的準確率相關(guān)聯(lián),適應(yīng)度值高的個體所對應(yīng)的情感分類的準確率越高。利用遺傳算法強大的優(yōu)化功能,個體的適應(yīng)度值不斷提高,保證了所構(gòu)建的情感詞庫向著提高分類準確率的方向不斷更新,直至產(chǎn)生最終的情感詞庫。
將情感詞庫編碼為一個個體,情感詞庫中的每個情感詞均被映射為個體中唯一的基因,即一個基因表示一個情感詞。初始時,采取隨機方式為個體中的基因隨機賦予-10到10之間整數(shù)值。正值表示正向的情感趨向,負值則表示負向的情感趨向,10和-10分別代表了最高的正向和負向情感傾向。按照上述編碼規(guī)則,初始化種群。種群中初始化的個體示例如表1所示。
表1 種群初始化
適應(yīng)度值大小反映了詞庫情感分類準確率的高低。此處,詞庫對文本的情感分類按照(1)式進行計算,若對文本分類正確,則詞庫對應(yīng)個體的適應(yīng)度值加1,若分類錯誤,則適應(yīng)度值減去一個懲罰值。為此,當(dāng)利用個體k對訓(xùn)練集D中的第i條文本Ti進行預(yù)測時,定義此時產(chǎn)生的預(yù)測準確率度量值R(k,D,Ti)表示為
(3)
(3)式中,ω為懲罰參數(shù)。根據(jù)(3)式定義個體k在數(shù)據(jù)集D中的適應(yīng)度表示為
(4)
保優(yōu)策略的目的是在遺傳過程中盡可能地保留種群中優(yōu)秀的個體或個體的基因。一般有2種常用的方式:①讓種群中較優(yōu)的個體作為精英集直接進入下一代;②選擇部分較優(yōu)的個體作為精英集,并讓精英集中的個體與非精英個體進行交叉變異操作產(chǎn)生新的個體[24]。第1種方式能防止精英個體的基因在交叉變異操作中遭到破壞,但是沒有充分利用精英個體的基因;第2種方式充分利用了精英個體,但卻有可能破壞了精英個體的基因。因此,本文將2種方式進行結(jié)合,設(shè)計的保優(yōu)與變異策略示意圖如圖2所示。
圖2 保優(yōu)策略
在產(chǎn)生子代個體時,將子代個體分為2部分:①從父代中挑選出的精英個體,未進行任何操作直接加入子代中,從而保留了精英個體的整體性;②采用輪盤賭的方式選擇父代個體,通過交叉產(chǎn)生。在這部分子代個體中,則很大概率地利用了精英個體的基因。
交叉過程具體為:采用輪盤賭的方式,從父代中選取個體p1,p2;根據(jù)交叉概率pc對p1,p2進行交叉操作,即將p1,p2上相同位置的基因值進行交換得到子代個體c1,c2。此處,交叉的位置隨機產(chǎn)生,交叉的基因個數(shù)由交叉概率進行控制。
文本的情感極性與情感詞極性之間有密切的聯(lián)系,在微博、博客等文本中,情感的表達方式是使用情感詞,通過對文本中情感詞的使用情況,就可以判斷該文本所表達的情感[25]。若某個情感詞以高概率出現(xiàn)在正向文本中,則該情感詞為正向情感詞的概率也很高。反之,則高概率為負向情感詞。在遺傳算法中,變異操作通常是隨機改變個體中某個或多個基因的值。為了更好引導(dǎo)種群的進化,此處將文本情感極性與情感詞極性的聯(lián)系考慮到了變異策略中?;赟IGMOD函數(shù),設(shè)計了新的變異策略。
對SIGMOD函數(shù)
(5)
求其反函數(shù),可得
(6)
由于本文情感詞分值的取值為[-10,10],并設(shè)情感詞w在數(shù)據(jù)集D中的正向文本中出現(xiàn)的概率為Pw,基于(6)式構(gòu)建的基因變異導(dǎo)向函數(shù)為
(7)
其對應(yīng)的函數(shù)曲線如圖3所示。
圖3 導(dǎo)向函數(shù)f(Pw)
從圖3可以看出,函數(shù)值為[-10,10],當(dāng)Pw∈(0.4,0.6),函數(shù)f(Pw)的值在0附近,且變化幅度不大,即當(dāng)情感詞出現(xiàn)在正向文本和負向文本中的比例差不多時,函數(shù)f(Pw)對變異過程的引導(dǎo)作用就很小;當(dāng)Pw∈[0,0.2],即當(dāng)情感詞80%以上都出現(xiàn)在負向文本中,函數(shù)f(Pw)極大可能引導(dǎo)情感詞的極性為負向極性;同理,當(dāng)Pw∈[0.8,1],即當(dāng)情感詞80%以上都出現(xiàn)在正向文本中,函數(shù)f(Pw)極大可能引導(dǎo)情感詞的極性為正向極性;當(dāng)Pw∈(0.2,0.4)或Pw∈(0.6,0.8),函數(shù)對變異過程的引導(dǎo)作用相對較小。
結(jié)合函數(shù)f(Pw)提出新的變異策略,公式表示為
Vw=R+f(Pw)
(8)
(8)式中:R是一個在[-10,10]的隨機數(shù);Vw為變異后情感詞的情感分值,Vw的值若超出[-10,10],則相應(yīng)地取邊界值10或-10。
步驟1對數(shù)據(jù)集進行整理并抽取出情感詞。
步驟2根據(jù)2.1節(jié)的編碼規(guī)則完成種群的初始化。
步驟3根據(jù)2.2節(jié)的方法計算每個個體的適應(yīng)度值,并根據(jù)2.3節(jié)的保優(yōu)策略產(chǎn)生部分子代個體。
步驟4采用輪盤賭的策略從父代種群中挑選出2條父染色體p1,p2,并根據(jù)2.3節(jié)的交叉策略產(chǎn)生新的子代個體c1,c2。
步驟5針對交叉產(chǎn)生的新子代個體c1,c2,對其進行變異操作。利用變異概率Pm控制個體中變異基因的總數(shù),變異基因的位置是隨機產(chǎn)生的。
步驟6重復(fù)步驟4和步驟5,直到子代種群個體的數(shù)量和父代種群一樣,完成父代種群與子代種群的更替。
步驟7重復(fù)步驟3—步驟6,直到種群收斂。
3.1.1 數(shù)據(jù)獲取
1)NLPCC2018數(shù)據(jù)集。中國計算機學(xué)會中文信息技術(shù)專業(yè)委員會學(xué)術(shù)年會(conference on natural language processing and Chinese computing,NLPCC)2018年發(fā)布的關(guān)于微博文本情感分析的通用數(shù)據(jù)集NLPCC2018(1)http://tcci.ccf.org.cn/nlpcc.php,該數(shù)據(jù)集包含正向文本1 049條,負向文本851條,總計1 900條文本。
2)股市評論數(shù)據(jù)集。以“上證指數(shù)”“上證綜指”“股市”“A股”等作為關(guān)鍵詞進行搜索,利用“八爪魚采集器”從新浪微博進行文本采集得到??傆?14 827條微博數(shù)據(jù)。
由于獲取的微博數(shù)據(jù)中摻雜了重復(fù)或無效的文本,需要對獲取的微博文本進行清洗。清洗規(guī)則是把無個人對股市觀點的微博文本進行剔除。通常需要清洗3種類型的微博文本,如表2所示。
表2 待清洗的文本示例
對數(shù)據(jù)集進行清洗之后,對數(shù)據(jù)集中的微博文本進行人工標(biāo)注,用“1”表示積極的情感傾向,“0”表示消極的情感傾向,最后形成的股市微博文本數(shù)據(jù)集,包括正向文本1 783條、消極文本2 287條,共計4 070條文本。
3)HCR數(shù)據(jù)集。HCR(healthcare reform dataset)數(shù)據(jù)集是關(guān)于醫(yī)療領(lǐng)域的英文情感分析數(shù)據(jù)集。該數(shù)據(jù)集包含1 286條tweets,其中,正向文本369條,負向文本917條。
3.1.2 文本分詞
由于文本情感分析的最小單元是詞語,而中文文本不像英文文本那樣天然地用空格將單詞進行了劃分,需要利用分詞工具對中文文本進行分詞處理。在本研究中,采用jieba分詞包對文本進行分詞處理,在分詞過程中,一些特定領(lǐng)域的專有詞匯,如“垃圾股”“翻綠”等,jieba分詞語料庫中并沒有包含,故將這部分詞匯進行人工總結(jié)并建立相應(yīng)的詞典添加至jieba分詞包中,以有效地發(fā)現(xiàn)新的情感詞,保證模型的強健性和時效性。
3.1.3 參數(shù)設(shè)定
實驗代碼采用Python語言編寫,在PyCharm環(huán)境中運行。設(shè)置種群數(shù)為2 000,交叉概率Pc為0.8,變異概率Pm為0.10,懲罰因子ω為60,保優(yōu)概率Pe為0.1。實驗將數(shù)據(jù)集80%作為訓(xùn)練集,20%作為測試集。
3.2.1 通用領(lǐng)域的詞庫性能測試
首先,本文方法構(gòu)建的詞庫具有一定的通用性。為了驗證其在通用領(lǐng)域的有效性,在NLPCC2018數(shù)據(jù)集上進行測試。利用本文構(gòu)建的情感詞庫、大連理工大學(xué)中文情感詞匯本體庫、清華大學(xué)情感詞庫[16]、臺灣大學(xué)情感詞庫[26]以及BosonNLP詞庫(2)https://bosonnlp.com/dev/resource在該數(shù)據(jù)集進行了情感分析對比。采用準確率和F1-Measure作為評價指標(biāo),所得結(jié)果如表3所示。
從表3可以看出,基于本文詞庫進行情感分類的準確率為79.53%,F(xiàn)1-Measure為78.83%,優(yōu)于其他常用的通用情感詞庫。這說明本文方法雖然是針對特定領(lǐng)域構(gòu)建情感詞庫,但所構(gòu)建的情感詞庫仍然具有良好的通用性,能夠很好地滿足情感分析的需求,為短文本的情感分析奠定了良好的基礎(chǔ)。
表3 NPCC2018數(shù)據(jù)集準確率及與F1-Measure對比
3.2.2 特定領(lǐng)域詞庫性能測試
1)股市領(lǐng)域?;?.1節(jié)中構(gòu)建的股市微博文本數(shù)據(jù)集,利用本文算法產(chǎn)生關(guān)于股市的情感詞庫。受文章篇幅所限,隨機選取該庫中的30個情感詞,如表4所示。從表4可以看出,由本文算法得到的情感詞可分為3類:①股市特殊情感詞,如表4中的“跌?!薄芭J小薄胺G”等詞;②通用情感詞,如“看好”“繁榮”“較差”等;③無實際作用的情感的噪聲詞,如表4中的“覺得”“調(diào)整”等詞,對這部分詞可以考慮從情感詞庫中刪除,從而精煉詞庫。
表4 股市情感詞庫部分信息
測試本文詞庫在股市微博文本數(shù)據(jù)集中的性能,結(jié)果如表5所示。同時,為了說明本文詞庫在特定領(lǐng)域比通用詞庫更具有優(yōu)勢,采用同樣的方法,測試大連理工大學(xué)中文情感詞匯本體庫、清華大學(xué)情感詞庫、臺灣大學(xué)情感詞庫、BosonNLP詞庫在股市微博文本數(shù)據(jù)集上的性能。
從表5可以看出,利用本文方法構(gòu)建的詞庫得到的準確率和F1-Measure分別為85.70%和83.53%,高出其他通用情感詞庫20%以上。由此可見,本文詞庫在特定領(lǐng)域更具有針對性,相對于通用詞庫的優(yōu)勢更加明顯。
表5 股市微博數(shù)據(jù)集準確率及與F1-Measure對比
2)醫(yī)療領(lǐng)域。同樣,隨機選取HCR數(shù)據(jù)集構(gòu)建的部分情感詞,如表6所示。從表6可以看出,“obstruction”在其他領(lǐng)域不帶有情感極性,在本文方法中,則將該詞分為負向情感詞,可以表明本文方法也能有效地識別英文數(shù)據(jù)集中特定領(lǐng)域的情感詞匯。
表6 醫(yī)療領(lǐng)域部分情感詞匯
為了說明本文方法在HCR數(shù)據(jù)集所構(gòu)建的情感詞庫的效果,同樣,選取英文常用的情感詞庫Bing Liu詞庫進行對比實驗,結(jié)果如表7所示。
表7 HCR準確率及與F1-Measure對比
從表7可以看出,本文方法構(gòu)建的詞庫準確率為83.72%,F(xiàn)1-Measure為76.40%,優(yōu)于Bing Liu詞庫。這表明通過本文方法所構(gòu)建的詞庫在醫(yī)療領(lǐng)域仍然具有優(yōu)勢。同時,也驗證了本文方法具有很好的擴展性和適應(yīng)性。
在本文算法中,通過種群適應(yīng)度值判斷算法是否收斂。種群每進行一次迭代都會更新,在HCR數(shù)據(jù)集上的算法收斂過程如圖4所示。
圖4 算法在HCR數(shù)據(jù)集上收斂過程
從圖4可以看出,種群在迭代140代后,適應(yīng)度值不再變化,即算法收斂。
通過以上結(jié)果可以得到:①本文算法利用遺傳算法進行情感詞庫構(gòu)建;②整個過程不需要外部情感詞庫資源;③能夠根據(jù)領(lǐng)域的不同構(gòu)建適應(yīng)的情感詞庫,證明了本文方法的優(yōu)勢。
情感詞庫是進行情感分析和情感決策的關(guān)鍵資源。針對特定領(lǐng)域急需高質(zhì)量情感詞庫的需求,提出了一種采用遺傳算法訓(xùn)練的方式,構(gòu)建專業(yè)領(lǐng)域情感詞庫的方法。該方法以文本分類的準確率作為學(xué)習(xí)目標(biāo),設(shè)計了針對情感詞庫構(gòu)建的遺傳算法。通過不斷調(diào)整情感詞的情感值,最終形成高質(zhì)量的情感詞庫。實驗結(jié)果表明,本文提出的方法在構(gòu)建情感詞庫上不僅具有良好的通用性,而且對股市、醫(yī)療等特定領(lǐng)域具有很好的針對性,綜合性能優(yōu)于傳統(tǒng)的情感詞庫,能夠為基于文本的情感分析及決策提供良好的支持,具有很好的應(yīng)用價值。
未來的工作中,可考慮從以下方面進一步完善:引入同義詞的度量方法,進一步優(yōu)化情感詞庫;對情感詞的選取進行專門研究,精煉情感詞庫中的情感詞。