葉 霞,曹軍博+,許飛翔,郭鴻燕,尹列東
(1.火箭軍工程大學(xué) 作戰(zhàn)保障學(xué)院,陜西 西安 710025;2.中國航天科工集團(tuán)第二研究院 北京計算機(jī)技術(shù)及應(yīng)用研究所,北京 100039)
在文本情感分析任務(wù),文本的情感信息主要由文本中的情感詞體現(xiàn),這些情感詞決定了文本整體的情感傾向[1]。研究人員根據(jù)自己的研究領(lǐng)域,人工將相關(guān)情感詞以及對應(yīng)的情感傾向值提取出來,整理形成基礎(chǔ)情感詞典。情感詞典在文本情感分析任務(wù)中具有至關(guān)重要的作用,現(xiàn)有的基礎(chǔ)情感詞典主要針對基礎(chǔ)的、通用的情感詞進(jìn)行歸納整理,一般沒有收錄新產(chǎn)生的情感詞,難以滿足特定領(lǐng)域語料庫的文本情感分析任務(wù)。由于不同領(lǐng)域的情感表達(dá)方式不同,甚至有可能同一個詞語在不同領(lǐng)域表達(dá)相反的極性,很難構(gòu)建一個復(fù)雜的情感詞典滿足所有要求[2]。楊小平等[3]利用神經(jīng)網(wǎng)絡(luò)對大量中文語料訓(xùn)練,提出基于轉(zhuǎn)化約束集的情感詞典構(gòu)建方法,構(gòu)建的情感詞典在情感語義描述方面效果明顯。林江豪等[4]針對領(lǐng)域情感詞典在情感和語義表達(dá)方面的不足,根據(jù)TF-IDF(term frequency-inverse document frequency)值可以度量詞匯的重要程度,提出基于詞向量的領(lǐng)域情感詞典構(gòu)建方法,該方法可以有效實現(xiàn)情感詞的語義和情感表示。何成萬等[5]利用在情感詞典中加入領(lǐng)域情感詞,構(gòu)建輔助詞典進(jìn)行輔助情感分析,該方法在手機(jī)領(lǐng)域文本級情感傾向性分析中取得了較好的成績。
綜上所述,本文提出一種領(lǐng)域情感詞典自適應(yīng)學(xué)習(xí)方法,首先利用少量的情感種子詞,在語料庫中識別出有可能是情感詞的候選情感詞,然后利用改進(jìn)的PMI(pointwise mutual information)算法判斷是否屬于正負(fù)情感詞,從而得到符合該語料領(lǐng)域的情感詞典。
目前網(wǎng)絡(luò)上存在大量的情感詞典,它們是由很多研究人員根據(jù)自己的實際需要生成的不同領(lǐng)域情感詞典。其中知網(wǎng)(HowNet)中文情感詞典[3]、臺灣大學(xué)NTUSD(national taiwan university sentiment dictionary)中文情感詞典[7]和大連理工大學(xué)中文情感詞匯本體庫[8]是被廣泛使用的最具代表性的情感詞典。將這些情感詞典匯集到一起,形成中文情感基礎(chǔ)詞典。常用情感詞典概要情況見表1。
表1 常見情感詞典
知網(wǎng)中文情感詞典HowNet是由董振東教授構(gòu)建的被學(xué)術(shù)界廣泛認(rèn)可的基礎(chǔ)情感詞典。HowNet分為中英文各小類詞典,包括正(負(fù))情感詞、正(負(fù))評價詞、主張詞以及程度副詞共6類。通常情況下,每個情感詞都存在一個或者多個“概念”,而HowNet詞典將每個情感詞的“概念”細(xì)化到“義原”的層次。也就是說可以通過計算兩個詞的義原相似度達(dá)到求解兩個詞之間的相似性,這是HowNet詞典被廣泛使用的原因。HowNet詞典的中文情感詞分類見表2。
表2 HowNet中文情感詞分類
NTUSD是臺灣大學(xué)自然語言處理實驗室對外公開的簡體中文情感詞典。NTUSD詞典相對于HowNet詞典而言比較簡單,只對情感詞進(jìn)行了正負(fù)極性的判斷。NTUSD詞典收錄了一些情感短語以及副詞和情感詞的組合,如“勇敢的事跡”,“迷人的美”,“非常大方”等,這些詞一般不會被其它基礎(chǔ)情感詞典收錄。NTUSD詞典中包含正向情感詞2810個,負(fù)向情感詞8276個。
中文情感詞匯本體庫是大連理工大學(xué)信息檢索研究室在林鴻飛教授的指導(dǎo)下整理和標(biāo)注的一個中文情感本體庫。該本體庫從不同角度描述一個詞語或短語,包括詞語詞性種類、情感類別、情感強(qiáng)度及極性等信息;情感詞匯本體庫將情感詞分為7大類,21小類,共收錄27 466個詞語,其中負(fù)向詞10 783個,正向詞11 229個,中性詞5454個,具體分類見表3。
表3 詞匯本體庫分類
表3中的中性詞也包含了部分情感詞,這部分情感詞在詞匯本體庫中具有可正可負(fù)的情感傾向。如果將某中性詞歸類為正向情感,但該詞在實際語境下卻具有負(fù)向的情感傾向,由于各種語境下的語料是隨機(jī)的,因此會產(chǎn)生不可預(yù)計的情感誤差,反之亦然。在這種情況下,該類詞無法明確情感類型,故將其劃分為中性詞,不記入總詞典。
進(jìn)行文本情感分析時,采用已有中文基礎(chǔ)情感詞典具有一定通用性,但對于特定語料文本,如果構(gòu)建一個針對性更強(qiáng)的領(lǐng)域情感詞典,情感分析的效果將會更好[9]。本文構(gòu)建一種領(lǐng)域情感詞典自適應(yīng)學(xué)習(xí)方法,針對特定語料庫,根據(jù)一部分基礎(chǔ)情感種子詞,經(jīng)過自適應(yīng)學(xué)習(xí),生成領(lǐng)域情感詞典。中文領(lǐng)域情感詞典自適應(yīng)學(xué)習(xí)方法如圖1所示。
圖1 領(lǐng)域情感詞典自適應(yīng)學(xué)習(xí)框架
首先從中文基礎(chǔ)情感詞典中選取一定數(shù)量的情感詞,作為情感種子詞。然后利用CBOW(continuous bog-of-word model)模型[10]訓(xùn)練得到領(lǐng)域語料的詞向量,利用詞向量空間,獲取領(lǐng)域語料中與種子詞附近相似度超過一定閾值的詞,作為候選情感詞;同時分析領(lǐng)域語料中出現(xiàn)在種子詞附近的句法規(guī)則,如連詞關(guān)系等,也可以獲得候選情感詞。最后利用改進(jìn)的PMI判定算法[11]逐個對候選情感詞進(jìn)行分類,形成最終的領(lǐng)域情感詞典。
在進(jìn)行相似度計算時,在語義上與情感表達(dá)強(qiáng)烈的情感詞相似的詞更加可能是情感詞,相反情感表達(dá)較弱的詞,容易與中性詞相似[12]。所以選擇情感表達(dá)明確的情感詞作為情感種子詞。種子詞既是生成候選情感詞的依據(jù),又作為判定算法的基準(zhǔn)詞,在判定算法中,通常需要設(shè)定正向情感詞和負(fù)向情感詞。因此種子詞需要成對進(jìn)行選取,一組種子詞包括一個正向情感詞和一個負(fù)向情感詞,例如“美麗”與“丑陋”。一對種子詞需情感極性明確且對立,具有一定的代表性。
本文選取了30對正負(fù)情感種子詞,見表4。這些情感種子詞有兩個來源。其中28對種子詞來自大連理工大學(xué)中文情感詞匯本體庫,按照該基礎(chǔ)情感詞典中的情感詞使用頻率,通過人工篩選得到。另外,以文獻(xiàn)[13]中的情感詞為基礎(chǔ)與本文實驗領(lǐng)域語料進(jìn)行交集運(yùn)算后,挑選補(bǔ)充了兩對正負(fù)情感種子詞:[“爽快”,“沉悶”]、[“著名”,“無名”]。
表4 正負(fù)情感種子詞
2.3.1 基于CBOW模型的候選情感詞抽取
CBOW模型使用當(dāng)前詞的前后c個詞作為輸入來生成當(dāng)前詞的詞向量,其中,c的取值在區(qū)間[1,windows]上隨機(jī)選擇一個整數(shù)。CBOW模型利用深度學(xué)習(xí)技術(shù),采用無監(jiān)督的方式,將語料庫中的所有單詞映射成固定維數(shù)的實數(shù)向量。在獲得的詞向量空間中,詞與詞的相似性體現(xiàn)了語義的相似性[14]。因此,與已知情感詞有相似語義的詞,比沒有相似語義的詞更有可能是情感詞。
根據(jù)CBOW模型,本文首先將領(lǐng)域語料進(jìn)行訓(xùn)練,獲得詞向量空間,并不斷找尋與種子情感詞相似性超過一定閾值T的詞,將其抽取出來,作為候選情感詞。
2.3.2 基于句法規(guī)則的候選情感詞抽取
(1)連詞關(guān)系
連詞關(guān)系主要包含了并列和轉(zhuǎn)折兩種關(guān)系。通常情況下,文本中出現(xiàn)具有并列或者轉(zhuǎn)折關(guān)系的兩個詞都是情感詞,并且具有并列關(guān)系的兩個詞的情感極性相同,轉(zhuǎn)折關(guān)系的兩個詞情感極性相反[15]。例如在句子“這家/酒店/干凈/又/衛(wèi)生”和“這家/酒店/不僅/服務(wù)/好/而且/也/很/實惠”中,連詞“又”,“不僅…而且”是并列連詞,所連接的兩個詞都是正向情感詞;在句子“這個/手機(jī)/雖然/好看/,/但是/太貴/了”中,“雖然…但是”是轉(zhuǎn)折連詞,所連接的兩個詞是情感極性相反的情感詞。
在中文中一般轉(zhuǎn)折連詞所連接的兩個詞,在句子中通常距離相差較遠(yuǎn)。為了利用連詞關(guān)系來找到候選情感詞,采用Stanford parser[16]方法,對語料進(jìn)行句法和語法的分析,篩選出與情感種子詞具有連詞關(guān)系的詞語,并將這些詞放入到候選情感詞的集合中去。
(2)句法模板的短語識別
評論文本的語言自由度很大,隨著互聯(lián)網(wǎng)的發(fā)展,新的詞匯也在不斷的更新,為了自適應(yīng)獲取新的詞匯,建立一些基礎(chǔ)的句法規(guī)則進(jìn)行匹配,見表5。其中d表示副詞,a表示形容詞,n表示名詞,nz表示其它專有名詞,ng表示名詞性語素,v表示謂詞,z表示狀態(tài)詞。
表5 句法規(guī)則
句法規(guī)則第1條表示,要抽取第一個詞是副詞d,第二詞是形容詞a,第三個詞不是名詞n的短語組合。根據(jù)表5的句法規(guī)則,可判斷句子規(guī)則和詞的情感傾向。
之所以采用這些模式,是因為具有a,d詞性標(biāo)簽的詞經(jīng)常用于情感表達(dá)。通過句法擴(kuò)展可以在領(lǐng)域語料中獲得更加豐富的情感詞、更加準(zhǔn)確的情感信息。
2.4.1 PMI算法
描述的是兩個事物之間的相關(guān)性,在情感分析中,可以通過計算兩個詞之間的點(diǎn)互信息值來判斷詞的相似性。基于PMI的計算方法常常用于判斷中文詞語的情感極性。首先選取一些基準(zhǔn)詞,這些基準(zhǔn)詞需要包含正向和負(fù)向的情感,通過計算候選情感詞與這些基準(zhǔn)詞在語料庫中的共現(xiàn)概率,確定新詞的正負(fù)情感極性。
式(1)表示詞word1和詞word2之間的PMI相似性值
(1)
其中,P(word)表示word在語料庫中獨(dú)立出現(xiàn)的概率;P(word1&word2)表示詞word1和word2的真實共現(xiàn)概率,如果這兩個詞之間相互獨(dú)立,則兩個詞的共現(xiàn)概率為P(word1)P(word2)。
基于PMI的情感詞極性判定方法,就是判斷一個詞與一組情感詞的相似性大小的差值,如式(2)所示
SO(word)=PMI(word,PosWord)-PMI(word,NegWord)
(2)
情感極性SO(word)代表詞word與正向情感詞PosWord的PMI值和詞word與負(fù)向情感詞NegWord的PMI值的差值。設(shè)定合適的閾值就可以將詞劃分為正向、中性與負(fù)向情感詞。
2.4.2 改進(jìn)的SO_PMI算法
根據(jù)大數(shù)定理,當(dāng)樣本足夠多的時候,樣本的頻率可以視為樣本的概率[17]。P(word)表示樣本的頻率,如式(3)所示
(3)
其中,count({N|word∈N})表示詞word的個數(shù),N表示總詞數(shù)。
但是,由于基于PMI的計算過分依賴語料庫,一些不經(jīng)常使用的情感詞在語料庫中的頻率很低,代入式(3)計算后,將會產(chǎn)生較大的誤差,對這類情感詞很難獲取正確的情感極性。針對這一不足,對概率式(3)進(jìn)行改進(jìn),P(word)計算公式如式(4)所示
(4)
其中,tfword是詞word在文檔d中出現(xiàn)的頻率,dfword,+是指訓(xùn)練集中包含word的正例文檔數(shù),N+表示訓(xùn)練語料中的總正例文檔數(shù),N-表示訓(xùn)練語料中的總負(fù)例文檔數(shù)。
設(shè)正向情感詞PosWords={PosWord1,PosWord2,…,PosWordn},負(fù)向情感詞為NegWords={NegWord1,NegWord2,…,NegWordn},對于候選情感詞word,基于PMI的詞語極性SO_PMI(word)的計算公式如式(5)所示
(5)
當(dāng)SO_PMI(word)值大于正向情感詞閾值,將其分配到正向情感詞典中,若是小于負(fù)向情感詞閾值,則將其劃分到負(fù)向情感詞典中,最終得到正負(fù)向情感詞典。
根據(jù)前面的分析,本文提出領(lǐng)域情感詞典自適應(yīng)學(xué)生構(gòu)建方法,算法如下所述。
算法1:領(lǐng)域情感詞典自適應(yīng)學(xué)習(xí)過程
輸入:大眾點(diǎn)評語料,情感種子詞集合SD,正向情感閾值P,負(fù)向情感閾值N,相似度閾值T。
輸出:正向情感詞典POS與負(fù)向情感詞典NEG。
步驟1 初始化情感詞典,令Negative=set(),Positive=set(),U=SD。
步驟2 利用工具對語料進(jìn)行分詞及詞性標(biāo)注。
步驟3 將分詞后的語料作為輸入,通過CBOW模型得到詞向量空間。
步驟4 forSDinU:
(1)計算SD在詞向量空間中相似度大于T的詞new_word,執(zhí)行U.add(new_word)。
(2)對語料進(jìn)行句法規(guī)則分析,若詞new_word和種子詞具有連詞關(guān)系,則U.add(new_word)。
步驟5 重復(fù)步驟4,當(dāng)U不再增加時,U=U-SD。
步驟6 利用SD作為基準(zhǔn)詞,對于每一個U中的詞,計算SO_PMI,如果SO_PMI>P,則將該詞放入POS正向情感詞典中,SO_PMI 實驗環(huán)境為:Python 3,對領(lǐng)域語料采用Jieba分詞工具進(jìn)行分詞。本文實驗所用的語料庫是利用爬蟲,從大眾點(diǎn)評網(wǎng)站上爬取到的真實語料。情感種子詞為2.2節(jié)選取的30對正負(fù)情感詞。 實驗中一共有30對種子詞,為了探索不同種子詞數(shù)對最后候選情感詞的生成影響程度。實驗將相似度閾值保持一致,分別采用10對、20對、30對種子詞作為輸入,觀察生成的候選情感詞的數(shù)量變化。結(jié)果如圖2所示。 圖2 不同數(shù)量種子詞生成候選情感詞的結(jié)果 在相同相似值的情況下,增加種子詞的數(shù)量,能加快獲得情感候選詞的速度,由圖2可以看出:種子詞的數(shù)量越多,每次迭代獲得的情感候選詞的數(shù)量也在增加,迭代也越快達(dá)到收斂,最終獲得候選情感詞集趨于相同。 因此可以得到這樣的結(jié)論。 (1)一個情感詞是可以通過多次的語義相似傳遞得到另一個情感詞; (2)種子詞的數(shù)量不會影響情感候選詞的生成。 為了獲得一個較為恰當(dāng)?shù)脑~向量閾值T,開展以下探索性實驗。為了粗略估計閾值T的選取范圍,使用種子詞“美麗”與“丑陋”作為初步實驗,實驗結(jié)果中顯示的是每個語料中觀察的詞與種子詞的相似度值。實驗結(jié)果如圖3所示。 從圖3可以看出,實驗對“美麗”與“丑陋”這一對種子詞附近30個詞進(jìn)行觀察。種子詞“美麗”使用頻率較多,附近有很多詞,并且相似度都比較高,發(fā)現(xiàn)存在“智慧”、“精彩”、“動人”等表達(dá)情感的詞匯。種子詞“丑陋”附近高相似度的詞匯變少,但是其周圍還是存在表達(dá)情感的詞匯,如“艷麗”、“自信”等。當(dāng)觀察的詞與種子詞相似度值越高時,該詞為情感候選詞的可能性越高,但同時入選的情感詞越少。因此首次選取相似度閾值T=0.69為最低相似度進(jìn)行測試。 根據(jù)3.1節(jié)實驗,種子詞數(shù)量對情感候選詞的生成最終影響不十分明顯,本實驗中選擇10對種子詞。選擇語料中的詞,判斷它與種子詞的相似度值,若大于閾值,則判定為情感詞。判定的準(zhǔn)確性采用將該詞與已知的情感詞典進(jìn)行對比,以幫助選擇最佳閾值T的取值。實驗針對閾值T分別取0.69、0.7、0.71、0.72、0.75的值進(jìn)行對比,結(jié)果如圖4所示。圖4表示不同相似度閾值下的迭代次數(shù)與發(fā)現(xiàn)候選情感詞次數(shù),以及每次迭代出現(xiàn)的已知情感詞百分比的實驗結(jié)果。 圖4 相似度閾值選取實驗 由圖4顯示的實驗結(jié)果,可以得出以下結(jié)論。 (1)不論閾值選取多少,算法循環(huán)迭代6次之后,候選情感詞數(shù)量趨于穩(wěn)定; (2)相似度閾值越大,選擇出的候選情感詞數(shù)量就越少,這說明每次選擇詞的語義與種子詞更加相似; (3)在多次迭代后,候選情感詞的比例維持在0.11附近,隨著相似度的增加,比例值變化幅度不大。 根據(jù)實驗結(jié)果,可以觀察到,選取相似度閾值T=0.71時,其能夠迭代的次數(shù)更多,情感詞的比例相對稍高,這表示能相對獲得更多的情感詞并減少中性詞的出現(xiàn)。因此,本實驗的結(jié)果,選取相似度閾值T=0.71。按選取的閾值,得到候選情感詞。 根據(jù)圖1給出的領(lǐng)域情感詞典自適應(yīng)學(xué)習(xí)框架,由前面的實驗選取合適的種子詞數(shù)量及相似度閾值后,按算法1通過CBOW詞向量方法和句法規(guī)則的方法得到候選情感詞?,F(xiàn)在需要對這些候選情感詞進(jìn)行判定。為驗證本文提出方法的有效性,開展候選情感詞判定算法的對比性實驗。 本實驗以基準(zhǔn)系統(tǒng)WordNet[18](本文簡寫為WN),PMI算法和本文改進(jìn)的SO_PMI算法進(jìn)行對比性實驗。各自的判定方法分別如下。 (1)基于WordNet的情感詞典構(gòu)建方法:利用WordNet語義知識庫去判斷情感候選詞與種子詞之間的語義相似性,進(jìn)而得到候選情感詞的情感極性。 (2)基于PMI的情感極性判別算法:通過計算候選情感詞與所有種子詞的SO值之和,來判斷候選情感詞的正負(fù)情感傾向。 (3)基于SO_PMI的情感極性差別方法:計算值,當(dāng)大于正向情感詞閾值,判定為正向情感詞,小于負(fù)向情感詞閾值,判定為負(fù)向情感詞,最終得到正負(fù)向情感詞典。根據(jù)文獻(xiàn)[16]將正向情感詞的閾值P設(shè)置為0.01,負(fù)向情感感詞的閾值N設(shè)置為-0.02。 以種子詞10對,20對,30對的形式分別開展實驗。利用已知詞典與人工的方式判斷構(gòu)建的情感詞典的準(zhǔn)確性。實驗結(jié)果分別見表6、表7、表8。 表6 種子詞為10對的判定實驗結(jié)果/% 表7 種子詞為20對的判定實驗結(jié)果/% 表8 種子詞為30對的實驗結(jié)果/% 從以上實驗結(jié)果中可以發(fā)現(xiàn),在種子詞數(shù)量變化的情況下,基于WordNet方法的平均正確率相對較低,這是由于情感詞典的同義詞庫不能覆蓋語料庫中的所有詞,對于不在情感詞典中的詞無法識別,也不能擴(kuò)充?;谠~向量的PMI方法,能夠無差別的獲取更多的情感詞,但正確率仍然不高。本文提出的SO_PMI方法在種子詞數(shù)為10對,20對,30對的情況下,均獲得了較高的平均正確率,驗證了本文方法的優(yōu)越性。 領(lǐng)域文本情感分析的準(zhǔn)確性取決于情感詞典是否包含該領(lǐng)域的特殊情感詞,但由于新的情感詞不斷出現(xiàn),對領(lǐng)域情感詞典的構(gòu)建帶來了挑戰(zhàn)。本文提出一種中文領(lǐng)域情感詞典自適應(yīng)學(xué)習(xí)方法,通過在基礎(chǔ)情感詞典中選取一定數(shù)量的種子詞,對領(lǐng)域語料采取基于CBOW詞向量和基于句法規(guī)則兩種方式抽取出候選情感詞,再通過改進(jìn)的SO_PMI算法判定候選情感詞的極性,最終形成領(lǐng)域情感詞典。實驗結(jié)果表明,本文方法能夠自適應(yīng)學(xué)習(xí)領(lǐng)域情感詞,情感詞極性識別準(zhǔn)確率較高。3 實驗過程
3.1 種子詞數(shù)量影響實驗
3.2 相似度閾值T選取實驗
3.3 候選情感詞判定實驗
4 結(jié)束語