葉 霞,曹軍博+,許飛翔,郭鴻燕,尹列東
(1.火箭軍工程大學 作戰保障學院,陜西 西安 710025;2.中國航天科工集團第二研究院 北京計算機技術及應用研究所,北京 100039)
在文本情感分析任務,文本的情感信息主要由文本中的情感詞體現,這些情感詞決定了文本整體的情感傾向[1]。研究人員根據自己的研究領域,人工將相關情感詞以及對應的情感傾向值提取出來,整理形成基礎情感詞典。情感詞典在文本情感分析任務中具有至關重要的作用,現有的基礎情感詞典主要針對基礎的、通用的情感詞進行歸納整理,一般沒有收錄新產生的情感詞,難以滿足特定領域語料庫的文本情感分析任務。由于不同領域的情感表達方式不同,甚至有可能同一個詞語在不同領域表達相反的極性,很難構建一個復雜的情感詞典滿足所有要求[2]。楊小平等[3]利用神經網絡對大量中文語料訓練,提出基于轉化約束集的情感詞典構建方法,構建的情感詞典在情感語義描述方面效果明顯。林江豪等[4]針對領域情感詞典在情感和語義表達方面的不足,根據TF-IDF(term frequency-inverse document frequency)值可以度量詞匯的重要程度,提出基于詞向量的領域情感詞典構建方法,該方法可以有效實現情感詞的語義和情感表示。何成萬等[5]利用在情感詞典中加入領域情感詞,構建輔助詞典進行輔助情感分析,該方法在手機領域文本級情感傾向性分析中取得了較好的成績。
綜上所述,本文提出一種領域情感詞典自適應學習方法,首先利用少量的情感種子詞,在語料庫中識別出有可能是情感詞的候選情感詞,然后利用改進的PMI(pointwise mutual information)算法判斷是否屬于正負情感詞,從而得到符合該語料領域的情感詞典。
目前網絡上存在大量的情感詞典,它們是由很多研究人員根據自己的實際需要生成的不同領域情感詞典。其中知網(HowNet)中文情感詞典[3]、臺灣大學NTUSD(national taiwan university sentiment dictionary)中文情感詞典[7]和大連理工大學中文情感詞匯本體庫[8]是被廣泛使用的最具代表性的情感詞典。將這些情感詞典匯集到一起,形成中文情感基礎詞典。常用情感詞典概要情況見表1。

表1 常見情感詞典
知網中文情感詞典HowNet是由董振東教授構建的被學術界廣泛認可的基礎情感詞典。HowNet分為中英文各小類詞典,包括正(負)情感詞、正(負)評價詞、主張詞以及程度副詞共6類。通常情況下,每個情感詞都存在一個或者多個“概念”,而HowNet詞典將每個情感詞的“概念”細化到“義原”的層次。也就是說可以通過計算兩個詞的義原相似度達到求解兩個詞之間的相似性,這是HowNet詞典被廣泛使用的原因。HowNet詞典的中文情感詞分類見表2。

表2 HowNet中文情感詞分類
NTUSD是臺灣大學自然語言處理實驗室對外公開的簡體中文情感詞典。NTUSD詞典相對于HowNet詞典而言比較簡單,只對情感詞進行了正負極性的判斷。NTUSD詞典收錄了一些情感短語以及副詞和情感詞的組合,如“勇敢的事跡”,“迷人的美”,“非常大方”等,這些詞一般不會被其它基礎情感詞典收錄。NTUSD詞典中包含正向情感詞2810個,負向情感詞8276個。
中文情感詞匯本體庫是大連理工大學信息檢索研究室在林鴻飛教授的指導下整理和標注的一個中文情感本體庫。該本體庫從不同角度描述一個詞語或短語,包括詞語詞性種類、情感類別、情感強度及極性等信息;情感詞匯本體庫將情感詞分為7大類,21小類,共收錄27 466個詞語,其中負向詞10 783個,正向詞11 229個,中性詞5454個,具體分類見表3。

表3 詞匯本體庫分類
表3中的中性詞也包含了部分情感詞,這部分情感詞在詞匯本體庫中具有可正可負的情感傾向。如果將某中性詞歸類為正向情感,但該詞在實際語境下卻具有負向的情感傾向,由于各種語境下的語料是隨機的,因此會產生不可預計的情感誤差,反之亦然。在這種情況下,該類詞無法明確情感類型,故將其劃分為中性詞,不記入總詞典。
進行文本情感分析時,采用已有中文基礎情感詞典具有一定通用性,但對于特定語料文本,如果構建一個針對性更強的領域情感詞典,情感分析的效果將會更好[9]。本文構建一種領域情感詞典自適應學習方法,針對特定語料庫,根據一部分基礎情感種子詞,經過自適應學習,生成領域情感詞典。中文領域情感詞典自適應學習方法如圖1所示。

圖1 領域情感詞典自適應學習框架
首先從中文基礎情感詞典中選取一定數量的情感詞,作為情感種子詞。然后利用CBOW(continuous bog-of-word model)模型[10]訓練得到領域語料的詞向量,利用詞向量空間,獲取領域語料中與種子詞附近相似度超過一定閾值的詞,作為候選情感詞;同時分析領域語料中出現在種子詞附近的句法規則,如連詞關系等,也可以獲得候選情感詞。最后利用改進的PMI判定算法[11]逐個對候選情感詞進行分類,形成最終的領域情感詞典。
在進行相似度計算時,在語義上與情感表達強烈的情感詞相似的詞更加可能是情感詞,相反情感表達較弱的詞,容易與中性詞相似[12]。所以選擇情感表達明確的情感詞作為情感種子詞。種子詞既是生成候選情感詞的依據,又作為判定算法的基準詞,在判定算法中,通常需要設定正向情感詞和負向情感詞。因此種子詞需要成對進行選取,一組種子詞包括一個正向情感詞和一個負向情感詞,例如“美麗”與“丑陋”。一對種子詞需情感極性明確且對立,具有一定的代表性。
本文選取了30對正負情感種子詞,見表4。這些情感種子詞有兩個來源。其中28對種子詞來自大連理工大學中文情感詞匯本體庫,按照該基礎情感詞典中的情感詞使用頻率,通過人工篩選得到。另外,以文獻[13]中的情感詞為基礎與本文實驗領域語料進行交集運算后,挑選補充了兩對正負情感種子詞:[“爽快”,“沉悶”]、[“著名”,“無名”]。

表4 正負情感種子詞
2.3.1 基于CBOW模型的候選情感詞抽取
CBOW模型使用當前詞的前后c個詞作為輸入來生成當前詞的詞向量,其中,c的取值在區間[1,windows]上隨機選擇一個整數。CBOW模型利用深度學習技術,采用無監督的方式,將語料庫中的所有單詞映射成固定維數的實數向量。在獲得的詞向量空間中,詞與詞的相似性體現了語義的相似性[14]。因此,與已知情感詞有相似語義的詞,比沒有相似語義的詞更有可能是情感詞。
根據CBOW模型,本文首先將領域語料進行訓練,獲得詞向量空間,并不斷找尋與種子情感詞相似性超過一定閾值T的詞,將其抽取出來,作為候選情感詞。
2.3.2 基于句法規則的候選情感詞抽取
(1)連詞關系
連詞關系主要包含了并列和轉折兩種關系。通常情況下,文本中出現具有并列或者轉折關系的兩個詞都是情感詞,并且具有并列關系的兩個詞的情感極性相同,轉折關系的兩個詞情感極性相反[15]。例如在句子“這家/酒店/干凈/又/衛生”和“這家/酒店/不僅/服務/好/而且/也/很/實惠”中,連詞“又”,“不僅…而且”是并列連詞,所連接的兩個詞都是正向情感詞;在句子“這個/手機/雖然/好看/,/但是/太貴/了”中,“雖然…但是”是轉折連詞,所連接的兩個詞是情感極性相反的情感詞。
在中文中一般轉折連詞所連接的兩個詞,在句子中通常距離相差較遠。為了利用連詞關系來找到候選情感詞,采用Stanford parser[16]方法,對語料進行句法和語法的分析,篩選出與情感種子詞具有連詞關系的詞語,并將這些詞放入到候選情感詞的集合中去。
(2)句法模板的短語識別
評論文本的語言自由度很大,隨著互聯網的發展,新的詞匯也在不斷的更新,為了自適應獲取新的詞匯,建立一些基礎的句法規則進行匹配,見表5。其中d表示副詞,a表示形容詞,n表示名詞,nz表示其它專有名詞,ng表示名詞性語素,v表示謂詞,z表示狀態詞。

表5 句法規則
句法規則第1條表示,要抽取第一個詞是副詞d,第二詞是形容詞a,第三個詞不是名詞n的短語組合。根據表5的句法規則,可判斷句子規則和詞的情感傾向。
之所以采用這些模式,是因為具有a,d詞性標簽的詞經常用于情感表達。通過句法擴展可以在領域語料中獲得更加豐富的情感詞、更加準確的情感信息。
2.4.1 PMI算法
描述的是兩個事物之間的相關性,在情感分析中,可以通過計算兩個詞之間的點互信息值來判斷詞的相似性。基于PMI的計算方法常常用于判斷中文詞語的情感極性。首先選取一些基準詞,這些基準詞需要包含正向和負向的情感,通過計算候選情感詞與這些基準詞在語料庫中的共現概率,確定新詞的正負情感極性。
式(1)表示詞word1和詞word2之間的PMI相似性值
(1)
其中,P(word)表示word在語料庫中獨立出現的概率;P(word1&word2)表示詞word1和word2的真實共現概率,如果這兩個詞之間相互獨立,則兩個詞的共現概率為P(word1)P(word2)。
基于PMI的情感詞極性判定方法,就是判斷一個詞與一組情感詞的相似性大小的差值,如式(2)所示
SO(word)=PMI(word,PosWord)-PMI(word,NegWord)
(2)
情感極性SO(word)代表詞word與正向情感詞PosWord的PMI值和詞word與負向情感詞NegWord的PMI值的差值。設定合適的閾值就可以將詞劃分為正向、中性與負向情感詞。
2.4.2 改進的SO_PMI算法
根據大數定理,當樣本足夠多的時候,樣本的頻率可以視為樣本的概率[17]。P(word)表示樣本的頻率,如式(3)所示
(3)
其中,count({N|word∈N})表示詞word的個數,N表示總詞數。
但是,由于基于PMI的計算過分依賴語料庫,一些不經常使用的情感詞在語料庫中的頻率很低,代入式(3)計算后,將會產生較大的誤差,對這類情感詞很難獲取正確的情感極性。針對這一不足,對概率式(3)進行改進,P(word)計算公式如式(4)所示
(4)
其中,tfword是詞word在文檔d中出現的頻率,dfword,+是指訓練集中包含word的正例文檔數,N+表示訓練語料中的總正例文檔數,N-表示訓練語料中的總負例文檔數。
設正向情感詞PosWords={PosWord1,PosWord2,…,PosWordn},負向情感詞為NegWords={NegWord1,NegWord2,…,NegWordn},對于候選情感詞word,基于PMI的詞語極性SO_PMI(word)的計算公式如式(5)所示

(5)
當SO_PMI(word)值大于正向情感詞閾值,將其分配到正向情感詞典中,若是小于負向情感詞閾值,則將其劃分到負向情感詞典中,最終得到正負向情感詞典。
根據前面的分析,本文提出領域情感詞典自適應學生構建方法,算法如下所述。
算法1:領域情感詞典自適應學習過程
輸入:大眾點評語料,情感種子詞集合SD,正向情感閾值P,負向情感閾值N,相似度閾值T。
輸出:正向情感詞典POS與負向情感詞典NEG。
步驟1 初始化情感詞典,令Negative=set(),Positive=set(),U=SD。
步驟2 利用工具對語料進行分詞及詞性標注。
步驟3 將分詞后的語料作為輸入,通過CBOW模型得到詞向量空間。
步驟4 forSDinU:
(1)計算SD在詞向量空間中相似度大于T的詞new_word,執行U.add(new_word)。
(2)對語料進行句法規則分析,若詞new_word和種子詞具有連詞關系,則U.add(new_word)。
步驟5 重復步驟4,當U不再增加時,U=U-SD。
步驟6 利用SD作為基準詞,對于每一個U中的詞,計算SO_PMI,如果SO_PMI>P,則將該詞放入POS正向情感詞典中,SO_PMI 實驗環境為:Python 3,對領域語料采用Jieba分詞工具進行分詞。本文實驗所用的語料庫是利用爬蟲,從大眾點評網站上爬取到的真實語料。情感種子詞為2.2節選取的30對正負情感詞。 實驗中一共有30對種子詞,為了探索不同種子詞數對最后候選情感詞的生成影響程度。實驗將相似度閾值保持一致,分別采用10對、20對、30對種子詞作為輸入,觀察生成的候選情感詞的數量變化。結果如圖2所示。 圖2 不同數量種子詞生成候選情感詞的結果 在相同相似值的情況下,增加種子詞的數量,能加快獲得情感候選詞的速度,由圖2可以看出:種子詞的數量越多,每次迭代獲得的情感候選詞的數量也在增加,迭代也越快達到收斂,最終獲得候選情感詞集趨于相同。 因此可以得到這樣的結論。 (1)一個情感詞是可以通過多次的語義相似傳遞得到另一個情感詞; (2)種子詞的數量不會影響情感候選詞的生成。 為了獲得一個較為恰當的詞向量閾值T,開展以下探索性實驗。為了粗略估計閾值T的選取范圍,使用種子詞“美麗”與“丑陋”作為初步實驗,實驗結果中顯示的是每個語料中觀察的詞與種子詞的相似度值。實驗結果如圖3所示。 從圖3可以看出,實驗對“美麗”與“丑陋”這一對種子詞附近30個詞進行觀察。種子詞“美麗”使用頻率較多,附近有很多詞,并且相似度都比較高,發現存在“智慧”、“精彩”、“動人”等表達情感的詞匯。種子詞“丑陋”附近高相似度的詞匯變少,但是其周圍還是存在表達情感的詞匯,如“艷麗”、“自信”等。當觀察的詞與種子詞相似度值越高時,該詞為情感候選詞的可能性越高,但同時入選的情感詞越少。因此首次選取相似度閾值T=0.69為最低相似度進行測試。 根據3.1節實驗,種子詞數量對情感候選詞的生成最終影響不十分明顯,本實驗中選擇10對種子詞。選擇語料中的詞,判斷它與種子詞的相似度值,若大于閾值,則判定為情感詞。判定的準確性采用將該詞與已知的情感詞典進行對比,以幫助選擇最佳閾值T的取值。實驗針對閾值T分別取0.69、0.7、0.71、0.72、0.75的值進行對比,結果如圖4所示。圖4表示不同相似度閾值下的迭代次數與發現候選情感詞次數,以及每次迭代出現的已知情感詞百分比的實驗結果。 圖4 相似度閾值選取實驗 由圖4顯示的實驗結果,可以得出以下結論。 (1)不論閾值選取多少,算法循環迭代6次之后,候選情感詞數量趨于穩定; (2)相似度閾值越大,選擇出的候選情感詞數量就越少,這說明每次選擇詞的語義與種子詞更加相似; (3)在多次迭代后,候選情感詞的比例維持在0.11附近,隨著相似度的增加,比例值變化幅度不大。 根據實驗結果,可以觀察到,選取相似度閾值T=0.71時,其能夠迭代的次數更多,情感詞的比例相對稍高,這表示能相對獲得更多的情感詞并減少中性詞的出現。因此,本實驗的結果,選取相似度閾值T=0.71。按選取的閾值,得到候選情感詞。 根據圖1給出的領域情感詞典自適應學習框架,由前面的實驗選取合適的種子詞數量及相似度閾值后,按算法1通過CBOW詞向量方法和句法規則的方法得到候選情感詞?,F在需要對這些候選情感詞進行判定。為驗證本文提出方法的有效性,開展候選情感詞判定算法的對比性實驗。 本實驗以基準系統WordNet[18](本文簡寫為WN),PMI算法和本文改進的SO_PMI算法進行對比性實驗。各自的判定方法分別如下。 (1)基于WordNet的情感詞典構建方法:利用WordNet語義知識庫去判斷情感候選詞與種子詞之間的語義相似性,進而得到候選情感詞的情感極性。 (2)基于PMI的情感極性判別算法:通過計算候選情感詞與所有種子詞的SO值之和,來判斷候選情感詞的正負情感傾向。 (3)基于SO_PMI的情感極性差別方法:計算值,當大于正向情感詞閾值,判定為正向情感詞,小于負向情感詞閾值,判定為負向情感詞,最終得到正負向情感詞典。根據文獻[16]將正向情感詞的閾值P設置為0.01,負向情感感詞的閾值N設置為-0.02。 以種子詞10對,20對,30對的形式分別開展實驗。利用已知詞典與人工的方式判斷構建的情感詞典的準確性。實驗結果分別見表6、表7、表8。 表6 種子詞為10對的判定實驗結果/% 表7 種子詞為20對的判定實驗結果/% 表8 種子詞為30對的實驗結果/% 從以上實驗結果中可以發現,在種子詞數量變化的情況下,基于WordNet方法的平均正確率相對較低,這是由于情感詞典的同義詞庫不能覆蓋語料庫中的所有詞,對于不在情感詞典中的詞無法識別,也不能擴充。基于詞向量的PMI方法,能夠無差別的獲取更多的情感詞,但正確率仍然不高。本文提出的SO_PMI方法在種子詞數為10對,20對,30對的情況下,均獲得了較高的平均正確率,驗證了本文方法的優越性。 領域文本情感分析的準確性取決于情感詞典是否包含該領域的特殊情感詞,但由于新的情感詞不斷出現,對領域情感詞典的構建帶來了挑戰。本文提出一種中文領域情感詞典自適應學習方法,通過在基礎情感詞典中選取一定數量的種子詞,對領域語料采取基于CBOW詞向量和基于句法規則兩種方式抽取出候選情感詞,再通過改進的SO_PMI算法判定候選情感詞的極性,最終形成領域情感詞典。實驗結果表明,本文方法能夠自適應學習領域情感詞,情感詞極性識別準確率較高。3 實驗過程
3.1 種子詞數量影響實驗

3.2 相似度閾值T選取實驗

3.3 候選情感詞判定實驗



4 結束語