柳文婷
( 安徽理工大學 計算機科學與工程學院, 安徽 淮南 232001 )
微博新情感詞的提取一般分為新詞提取和新詞情感識別[1].目前,新詞提取方法主要分為基于規(guī)則的方法和基于統(tǒng)計的方法.基于規(guī)則的方法提取新詞[2]主要是根據(jù)構(gòu)詞學原理或詞性信息來匹配新詞,但由于該方法需要人工標注信息,所以需要耗費大量的人力物力.基于統(tǒng)計的方法提取新詞[3]是使用統(tǒng)計學方法來建造模型并判斷字串是否為新詞,該方法適用于大規(guī)模的語料庫.也有學者將上述兩種方法結(jié)合起來提取新詞,這種方法雖然效果較為穩(wěn)定,但在實際應用中很難獲得高質(zhì)量的標記語料[4].
近年來,在微博情感傾向的相關(guān)研究中,大多數(shù)學者都是通過對微博中的詞匯和句子進行情感判斷來分析微博的情感傾向[5-7],而對微博新情感詞的相關(guān)研究較少.對微博的情感分析目前可分為基于詞典的方法、基于機器學習的方法和基于詞典與機器學習相結(jié)合的方法.基于詞典的方法[8]主要是通過構(gòu)造情感詞典和制定一系列的規(guī)則來計算新詞的情感值,該方法雖然判斷新詞情感的準確率較高,但召回率偏低,且構(gòu)建不同領(lǐng)域情感詞典的成本較高.基于機器學習的方法[9]是將文本的情感分析作為分類問題進行分析,分類算法主要有深度學習的方法和支持向量的方法.前者計算量大,但準確率較高;后者準確率相對較高,但不適用于大規(guī)模數(shù)據(jù).基于詞典與機器學習相結(jié)合的方法[10]是將詞典融合到機器學習的模型中進行文本情感分析,該方法雖然可提高機器學習性能,但卻需要人工收集情感詞,因此使得情感詞庫的覆蓋面較低.基于上述研究,本文結(jié)合新詞構(gòu)詞特點,提出一種基于互信息和構(gòu)造情感詞庫的微博新情感詞提取方法,并通過實驗驗證該方法的可行性.
微博作為一種服務類的社交網(wǎng)站,它具有公開性、及時性以及多樣性.絕大多數(shù)用戶都能隨時隨地以文字、圖片或視頻來表達自己的所思所想,但由于微博用戶的教育背景、生活習慣、語言表達等的不同,因此使得微博數(shù)據(jù)較為混亂,其中最常見的問題有: ①重復性.微博上內(nèi)容重復的網(wǎng)頁較多,且其真實性有待確認.②隨意性.微博用詞(包括文本、圖片等)缺少規(guī)范,隨意性很大.③領(lǐng)域廣.微博文本涉及的領(lǐng)域廣,僅使用某一領(lǐng)域的提取方法會極大地影響新詞的提取準確率.④人造詞多.用戶使用的一些新詞或是來自某地方言或是自創(chuàng),不存在于字典中,因此難以判斷其情感傾向.為解決以上問題,并達到快速、準確地提取新情感詞,本文提出一種基于多字互信息和詞間情感相似度的微博新情感詞提取方法.該方法主要分為兩個階段:新詞提取和新詞情感傾向分析.
1)新詞提取階段.該階段的主要工作是對預處理的數(shù)據(jù)進行N元切分,以此得到候選字串;然后再根據(jù)多字互信息和左右側(cè)鄰接熵計算候選字串的內(nèi)部統(tǒng)計量和外部統(tǒng)計量的值,以此得到候選新詞集;最后將得到的候選新詞集與詞典進行對比,刪除詞典中已有的詞后即得到新詞集.
2)新詞情感傾向分析階段.該階段主要是根據(jù)新詞之間的情感傾向影響來改進情感傾向點互信息公式,以此得到詞間情感相似度的計算公式; 根據(jù)該公式計算新詞的情感傾向值,并依據(jù)該值判斷新詞的情感傾向,刪除中性新詞后剩下的即為新情感詞.
新情感詞的提取過程如圖1所示.
圖1 微博新情感詞的提取過程
由于微博具有用戶背景不同、包含領(lǐng)域廣、文本書寫不規(guī)范、字數(shù)有限等特點,因此通過爬取方法所獲得的微博數(shù)據(jù)中存在大量的噪聲.為此,本文對微博數(shù)據(jù)進行預處理,預處理后文本的處理時間和數(shù)據(jù)的存儲空間可得到有效提高.預處理的主要方法是刪除和替換.
1)刪除.刪除微博數(shù)據(jù)中的鏈接、重復的標點符號以及“#***#”、“@+用戶名”等微博程序自帶的固定字串.
2)替換.用ICTCLAS詞法分析系統(tǒng)切分微博文本中的詞句,將切分后得到的標點符號和停用詞用空格代替,并將繁體字換成簡體字.
1)N元切分方法.一般的分詞系統(tǒng)都是根據(jù)已有的字典對句子進行切分,這種切分方法可能會造成錯誤切分或遺漏新詞.例如“王經(jīng)/理/了/理/袖口”,分詞系統(tǒng)有可能會將這個句子劃分成“王/經(jīng)理/了/理/袖口”,遺漏掉“王經(jīng)”這個新詞.所以,本文采用N元切分方法來切分文本.N元切分方法的基本思想是對文本進行逐一掃描、N字切分,切分后的每N個單字構(gòu)成一個字串.因目前二元和三元切分技術(shù)較為成熟,且新詞一般由2~4個字組成[11],所以本文中的N取2和3.
2)多字互信息.互信息是表示兩個字之間的依賴程度,傳統(tǒng)的互信息的表達式為
(1)
其中:P(xy)表示x和y在語料庫中共同出現(xiàn)的頻次與語料庫中總詞數(shù)的比;P(x)和P(y)分別表示x和y單獨出現(xiàn)在語料庫中的頻次與語料庫中總詞數(shù)的比.
由公式(1)可以看出,傳統(tǒng)的互信息只考慮了候選詞被劃分成兩部分的構(gòu)成模式,即該方法只可對2字詞進行劃分,而無法對多字詞進行劃分.因此,本文對傳統(tǒng)互信息進行改進,即考慮多字候選詞(字數(shù)超過2的候選詞)的構(gòu)成模式.3字詞的所有構(gòu)成模式如圖2所示.根據(jù)圖2可類推4字詞的構(gòu)成模式(7種),且所有構(gòu)成模式包含的元素為9種.
圖2 3字詞的構(gòu)成模式
為了擴大新詞識別的范圍和提高新詞識別的準確率,本文對多字互信息進行如下定義:
定義1多字互信息(multiword mutual information,MMI)是在多種構(gòu)成模式下衡量多字詞的內(nèi)部凝聚度,其計算公式為
(2)
3)左右側(cè)鄰接熵.左右側(cè)鄰接熵能夠反映字符串鄰接元素的不確定性,熵值越大鄰接元素的不確定性越大,即該字符串成為詞的可能性也越大.左側(cè)鄰接熵和右側(cè)鄰接熵的計算公式[12]分別為:
(3)
(4)
其中: |Vl|和|Vr|分別為左右側(cè)鄰接字種類的數(shù)量;n和m分別為左右側(cè)鄰接字的總個數(shù);ni和mj分別為左右側(cè)某一種鄰接字的個數(shù).
本文提出的微博新詞提取算法(算法1)如下:
輸入:微博文本集合T, 字頻閾值θ1, 多字互信息閾值θ2, 左右側(cè)鄰接熵閾值θ3和θ4, 詞典D
輸出:微博新詞集合E
step 1 對微博文本集合T進行預處理.
step 2 對step 1中得到的內(nèi)容進行N元切分得到二元字串和三元字串,并統(tǒng)計每個字串的頻率,刪除頻率小于θ1的字串后得到候選字串.
step 3 計算step 2中候選字串的多字互信息MMI(a1,a2,…,an), 刪除多字互信息小于θ2的字串.
step 4 計算step 3中剩余候選字串中二元字串的左右側(cè)鄰接熵{El,Er}.若El≥θ3,且Er≥θ4, 則將該字串添加到新詞集合E中.
step 5 計算step 3中剩余候選字串中三元字串的左側(cè)鄰接熵El.若El≥θ3, 字串的左邊界確定,執(zhí)行step 6;否則,字串向左擴展一個字后,執(zhí)行step 6.
step 6 計算step 5中得到的字串的左側(cè)鄰接熵{El,Er}.若El≥θ3,且Er≥θ4, 則將該字串添加到新詞集合E中.
step 7 對比新詞集合E和詞典D,刪除共有的詞后即得到最終的新詞集合.
從上述的算法中可以看出:算法首先對微博文本進行掃描,以此判斷并建立候選字串集,此時的時間復雜度為O(n),n為候選字串的個數(shù).然后再對候選字串集進行多字互信息過濾,此時的時間復雜度為O(n).候選字串為二元字串的有k個,三元字串的有(n-k)個.通常情況下,三元字串運用左右側(cè)鄰接熵進行擴展的次數(shù)極少超過2次,因此擴展的時間復雜度可記為O(n).
在微博中,表情符號和情感詞都是用戶情感的直接表達,因此本文使用基于詞典的方法分析新詞情感傾向.本文將知網(wǎng)情感詞典與臺灣大學簡體中文情感極性詞典合并、去重后的情感詞集作為基礎(chǔ)情感詞典,然后選取傾向性明顯的(出現(xiàn)頻次在前36個)的褒貶義表情符號作為微博表情符號詞表,如表1所示.最后將基礎(chǔ)情感詞典與微博表情符號詞表去重、合并得到微博基礎(chǔ)情感詞庫.
表1 微博褒貶義表情符號
一般情況下,微博中出現(xiàn)的新詞是用戶情緒的一種宣泄或表達,而情感詞是用戶情感的直接體現(xiàn).因用戶發(fā)表的微博內(nèi)容中出現(xiàn)的新詞和情感詞的情感傾向大多是類似的,所以可以從用戶使用的情感鮮明的情感詞來分析新詞的情感傾向.由于傳統(tǒng)的情感傾向點互信息只考慮了微博情感詞庫中已經(jīng)存在的情感詞,未考慮新詞的情感對與其共同出現(xiàn)的其他新詞情感的影響,因此需對傳統(tǒng)的情感傾向點互信息進行改進.本文通過分析新詞之間的情感傾向影響,對情感傾向點互信息進行改進,即通過分析詞間相似度來分析新詞之間的情感傾向影響.詞間情感相似度的相關(guān)定義和公式如下:
定義2詞間情感相似度(sentiment similarity between the words,SW)是衡量同一個文本中某個新詞和情感詞對同一條微博中的其他新詞的情感傾向的影響程度,其計算公式為:
SWj=α(PA_PMIj-NA_PMIj).
(5)
由以上可知,由算法1得到的微博新詞只有經(jīng)過詞間情感相似度的判斷才能確定某個新詞是否是具有情感的新詞.微博新情感詞提取算法(算法2)如下:
輸入:微博新詞集合E, 微博基礎(chǔ)情感詞庫C, 詞間情感相似度閾值θ5和θ6
輸出:微博新情感詞集合S
step 1 結(jié)合微博基礎(chǔ)情感詞庫,計算新詞集合中每個詞的詞間情感相似度SW;
step 2 如果SW<θ5或SW>θ6, 則判定該詞為微博新情感詞.
從算法2中可看出,只需對微博新詞集合進行1次掃描即可完成所有新詞的情感傾向分析,其時間復雜度為O(m), 新詞個數(shù)為m.
1)新情感詞提取.爬取2018年11月—2019年3月3個不同熱門話題(“軍訓式應援”“楊超越登上《人物》雜志”“翟天臨學術(shù)造假”)的40 000條微博,用于微博新情感詞提取.
2)停用詞庫.對哈工大停用詞詞庫、四川大學機器學習智能實驗室停用詞庫、百度停用詞表進行整理、去重后得到本文的停用詞庫共計1 598個停用詞,(不包括英文詞和中文標點符號),用于微博數(shù)據(jù)預處理階段.
3)詞典.將知網(wǎng)文本詞庫與同義詞詞林相結(jié)合后得到的詞語集合即為本文中使用的詞典,用于候選新詞篩選.
4)微博基礎(chǔ)情感詞庫.將知網(wǎng)情感詞典、臺灣大學簡體中文情感極性詞典以及本文列出的微博褒貶義表情符號(表1)進行合并、去重,所得的情感詞集即為本文的基礎(chǔ)情感詞典,用于新詞情感傾向識別階段.
采用準確率P(precision)、召回率R(recall)、綜合指標F(F-score)來評價算法的準確性,各指標的計算公式為:
P=TP/(TP+FP)×100%,
(6)
R=TP/(TP+FN)×100%,
(7)
F=2PR/(P+R)×100%.
(8)
其中:TP表示將待測的詞語預測為新(情感)詞,實際也為新(情感)詞的數(shù)量;FP表示將待測的詞語預測為新(情感)詞,實際為非新(情感)詞的數(shù)量;FN表示將待測的詞語預測為非新(情感)詞,實際為新(情感)詞的數(shù)量.
為了驗證本文算法的有效性,進行兩方面實驗:一是微博新詞提取算法(算法1)的有效性驗證,二是微博新情感詞提取算法(算法2)的有效性驗證.由于各個話題討論的內(nèi)容不同,所以本文將他們分開討論.話題1(“軍訓式應援”)是針對國內(nèi)某個明星而提出的,由于該明星形象良好,因此微博中出現(xiàn)的都是情感偏正向的詞.話題2(“楊超越登上《人物》雜志”) 是剛出道的明星(楊超越)登上《人物》雜志而出現(xiàn)的各種不同評價.話題3(“翟天臨學術(shù)造假”)由于是因翟天臨學術(shù)造假而引起的話題,所以該話題中的詞大部分都是情感負向的詞.算法1在3個話題中得到的部分高頻新情感詞如表2所示.
表2 高頻新詞識別結(jié)果示例
表3為本文算法1、傳統(tǒng)的N元方法和文獻[3]算法的新詞提取結(jié)果.由表3可知,本文算法1比傳統(tǒng)的N元方法的準確率、召回率和F1值分別提高了25.86%、31.52%和30.60%,比文獻[3]算法的準確率、召回率和F1值分別提高了10.16%、11.47%和11.03%.算法1的提取效果優(yōu)于傳統(tǒng)的N元方法和文獻[3]算法的主要原因是:傳統(tǒng)的N元方法對多字詞的識別率較低,而且也未考慮新詞內(nèi)部統(tǒng)計量和外部統(tǒng)計量對新詞識別的影響;文獻[3]的算法過度依賴于分詞系統(tǒng),使一些詞被錯分.
表3 不同方法的新詞提取結(jié)果 %
表4是通過本文算法2得到的微博新情感詞示例,表5是算法2和文獻[4]算法的新情感詞提取結(jié)果.從表5可以看出,算法2比文獻[4]算法的準確率、召回率和F1值分別提高了13.14%、5.81%和8.59%.其主要原因是文獻[4]的算法只考慮了內(nèi)部統(tǒng)計量和外部統(tǒng)計量對新情感詞提取的影響,并沒有考慮新詞的語義信息,進而導致提取結(jié)果中有很多新詞不是情感詞;而算法2在統(tǒng)計量的基礎(chǔ)上加入了詞在情感詞典中的語義信息,進而使得新情感詞的提取準確率有所提高.
表4 微博新情感詞示例
表5 2種算法的新情感詞提取結(jié)果 %
本文基于新詞構(gòu)詞模式多樣的特點,提出了一種基于多字互信息和詞間情感相似度的微博新情感詞提取方法.實驗結(jié)果表明,本文方法的微博新詞提取的準確率(50.51%)、召回率(43.55%)和F1值(46.77%)均優(yōu)于傳統(tǒng)的N元方法和文獻[3]的方法,新詞情感傾向識別的準確率、召回率和F1值比文獻[4]方法分別提高了13.14%、5.81%和8.59%,因此本文算法具有很好的應用價值.在今后的研究中,我們將通過完善微博情感詞庫以及使用融合機器學習的方法來進一步提高新詞情感傾向識別的準確率和召回率.