陳 力 黃樹成
(江蘇科技大學(xué)計(jì)算機(jī)學(xué)院 鎮(zhèn)江 212003)
伴隨著互聯(lián)網(wǎng)體量的快速擴(kuò)張,互聯(lián)網(wǎng)技術(shù)也在飛速發(fā)展,在給人們的生活帶來便利的同時(shí),也改變著人們的生活習(xí)慣。越來越多的人會(huì)在社交平臺(tái)上,針對(duì)某一事件發(fā)表自己的態(tài)度和看法,或者在網(wǎng)絡(luò)購(gòu)物平臺(tái)上分享自己對(duì)某個(gè)產(chǎn)品或者服務(wù)的使用體驗(yàn)。這些網(wǎng)絡(luò)評(píng)論里蘊(yùn)含著網(wǎng)民的觀點(diǎn)、態(tài)度、情感信息等。分析其中隱含的信息,挖掘出評(píng)論者的情感傾向[1],可以為政府了解民眾對(duì)于某一政策的滿意程度提供數(shù)據(jù)支撐,為消費(fèi)者是否產(chǎn)生購(gòu)買行為提供信息參考,還能對(duì)企業(yè)改進(jìn)產(chǎn)品或者服務(wù)起到指導(dǎo)作用。
由于網(wǎng)絡(luò)發(fā)展迅速,當(dāng)前的語言文化日新月異,出現(xiàn)了很多新興詞匯,并且隨著網(wǎng)絡(luò)文化的不斷發(fā)展,還會(huì)不斷產(chǎn)生更多新事物。傳統(tǒng)情感詞典中包含了大量常用詞語,具有一定的普適性。但是對(duì)于近年來網(wǎng)絡(luò)上出現(xiàn)的新詞匯,情感詞典中都沒有涉及,因此想要使用情感詞典的方法進(jìn)行情感傾向的判別,還需要在傳統(tǒng)詞典的基礎(chǔ)上進(jìn)行擴(kuò)展。
為了提升情感詞典的擴(kuò)展效果。本文將SO-PMI 和Fast Unfolding 算法結(jié)合,提出FU-PMI算法。1)使用TF-IDF 改進(jìn)傳統(tǒng)SO-PMI 選取種子詞的方法。2)結(jié)合PMI 和FU 算法的特點(diǎn),提出FU-PMI 算法。 3)分別使用SO-PMI 算法和FU-PMI 算法擴(kuò)展的詞典進(jìn)行情感傾向性分析,比較他們的效果。經(jīng)實(shí)驗(yàn)結(jié)果證明,相較于傳統(tǒng)的SO-PMI 算法,本文提出的算法可以有效地提高情感詞典的擴(kuò)展效果。
基于情感詞典方法是將構(gòu)建好的情感詞典作為判別工具,通過對(duì)原始語料的處理(分詞、去停用詞等)后得到的數(shù)據(jù)在情感詞典中遍歷,根據(jù)設(shè)定的規(guī)則給予不同詞語單獨(dú)的權(quán)重,最后計(jì)算出它們的得分,最后根據(jù)得分對(duì)它們進(jìn)行分類。
1988年,Whissell[2]邀請(qǐng)148人使用若干個(gè)詞語來對(duì)9 部情景劇的片段進(jìn)行描述并打分,然后與常用的情感詞進(jìn)行配對(duì),這是最早使用情感詞典的案例。之后Whissell[3]又對(duì)原先的情感詞典進(jìn)行了修訂,提高了單詞的匹配率。由于中文情感詞典的資源較少,考慮到國(guó)外情感詞典發(fā)展較早,語料和詞典較為豐富,李壽山等[4]使用機(jī)器翻譯系統(tǒng),在英文種子詞典的基礎(chǔ)上,構(gòu)建出了中文情感詞典。
陽愛民等[5]通過選取若干個(gè)種子詞,利用搜索引擎返回的共現(xiàn)數(shù)來計(jì)算權(quán)值,構(gòu)建情感詞典。Rao等[6]提出了一種基于主題建模的方法來構(gòu)建主題級(jí)別的詞典。王志濤等[7]提出了基于詞典和規(guī)則集的中文微博情感分析方法,根據(jù)不同規(guī)則進(jìn)行了從詞語到句子的多粒度情感計(jì)算[8]。周杰[9]通過改進(jìn)C4.5 決策樹分類算法,并在此基礎(chǔ)上利用拉普拉斯平滑的SO-PMI 算法對(duì)詞典進(jìn)行擴(kuò)展,提出一種新的基于情感詞典和句型分類的中文微博分析方法。韓煦[10]等為解決中英文共同使用時(shí)但以中文詞典無法解決的情況,提出了構(gòu)建雙語多類情感詞典的分析方法。Vilares[11]未解決多語言極性分類問題,通過融合單語言資源,并引入帶有情感標(biāo)簽的語料庫(kù),給出了在多語言數(shù)據(jù)集上訓(xùn)練的多語言模型。
對(duì)于基于機(jī)器學(xué)習(xí)的方法,國(guó)內(nèi)外研究者也取得了很多成果。Sharma等[12]提出一種混合模型,該模型將SVM(支持向量機(jī))與Boosting 結(jié)合,在在線評(píng)論分類上證明了該方法的有效性。Shi等[13]通過介紹基于隨機(jī)條件的情感識(shí)別模型,提出了一種改進(jìn)的情感詞強(qiáng)度計(jì)算方法。Giatsoglou 等[14]給出了一種基于詞典、詞嵌入和混合矢量的研究方法。梁斌等[15]提出了一種基于多注意力卷積神經(jīng)網(wǎng)絡(luò)的特定情感分析方法。
本文以手機(jī)評(píng)論信息作為案例,使用某電商平臺(tái)銷量前6 的手機(jī)評(píng)論作為原始數(shù)據(jù)集。在去重、刪除無用評(píng)論信息等操作后,得到的數(shù)據(jù)如表1 所示。
表1 評(píng)論數(shù)據(jù)
為了方便統(tǒng)計(jì)和計(jì)算,選取正面評(píng)論和負(fù)面評(píng)論各5000 個(gè)作為實(shí)驗(yàn)語料,從中各隨機(jī)抽取3000條分別作為正負(fù)面評(píng)論訓(xùn)練集,剩下的各2000 條作為測(cè)試集。
目前有很多機(jī)構(gòu)發(fā)布了情感詞典,如《知網(wǎng)》情感詞詞典等,但是它們都有著各自的局限性。為了保證實(shí)驗(yàn)的準(zhǔn)確,本文通過搜集整理,合并了知網(wǎng)Hownet 情感詞典、臺(tái)灣大學(xué)NTUSD 情感詞典以及清華大學(xué)中文褒貶義詞典作為實(shí)驗(yàn)的基礎(chǔ)情感詞典。各情感詞典和合并去重后的詞典詳情如表2所示。
表2 基礎(chǔ)情感詞典
表3 劃分示例
表2 中,展示了不同詞典中褒義詞和貶義詞的數(shù)量,其中NTUSD 為臺(tái)灣大學(xué)情感詞典,Qinghua為清華大學(xué)中文褒貶義詞典,Co 為幾種情感詞典合并后去掉重復(fù)的詞得到的情感詞典[16],即基礎(chǔ)情感詞典。
3.3.1 SO-PMI算法
點(diǎn)互信息(Pointwise Mutual Information,PMI)是SO-PMI 算法的核心,用來表示詞與詞之間的關(guān)聯(lián)程度。Turney[17]等根據(jù)PMI 的概念將其應(yīng)用到詞語間互信息的計(jì)算,計(jì)算公式如下所示。
其中,p(wi,wj)代表詞i 和j 在同一條文本中共同出現(xiàn)的概率。p(wi)和p(wj)分別表示詞i和詞j在單位文本中獨(dú)自出現(xiàn)的概率。在實(shí)際計(jì)算中,上述概率值可以用頻率來表示,即有如下公式:
式(2)~(4)中:count(wi,wj)表示詞i 和詞j 在語料中共同出現(xiàn)的文本數(shù);count(wi)表示包含詞i 的文本數(shù),count(wj)同理;q為數(shù)據(jù)集中總的文本條數(shù)。根據(jù)上述計(jì)算方式便可以通過將情感傾向未知的詞分別與不同類別情感傾向的詞的互信息值得差值來給其分類,可以用式(5)表示。
其中w是待分類的詞,w+和w-分別代表褒義和貶義種子詞。實(shí)際應(yīng)用中會(huì)選取一定規(guī)模的帶有明顯情感傾向的正向種子詞和負(fù)向種子詞,因此,公式調(diào)整為如下所示,
選定n 個(gè)正向情感詞和負(fù)向情感詞,分別計(jì)算待分類的詞w 和他們的SO 值,設(shè)定相應(yīng)閾值,大于閾值則判定w 為正向情感詞;小于閾值則為負(fù)向情感詞;等于閾值則代表w不具有情感傾向性。
傳統(tǒng)的SO-PMI 基準(zhǔn)詞選取方式為人工地從情感詞典中選取若干組帶有強(qiáng)烈情感傾向性的詞匯作為待選基準(zhǔn)詞,這種方式帶有一定的主觀性,并且除了效率低下外還可能導(dǎo)致基準(zhǔn)詞出現(xiàn)頻率過低,與候選詞共現(xiàn)頻率為0 的情況。根據(jù)式(1)可知,這種情況就無法計(jì)算其情感傾向了。因此本文采用以下方式選取基準(zhǔn)詞:1)讀取評(píng)論文本數(shù)據(jù),將讀取到的數(shù)據(jù)放入集合T={t1,t2,…,tn};2)對(duì)T 中的每個(gè)文本元素進(jìn)行預(yù)處理、去停用詞等操作得到ti*;3)使用TF-IDF 算法對(duì)ti*進(jìn)行計(jì)算,選取其中詞性為/v,/vi,/vn,/a 的詞語加入候選詞集合T_CONDI ={tc1,tc2,…,tcn};4)遍歷tci,若其在基礎(chǔ)積極情感詞典中,則放入積極情感基準(zhǔn)詞集合P_CONDI 中;若在基礎(chǔ)消極情感詞典中,則放入消極情感基準(zhǔn)詞集合N_CONDI 中;若不在基礎(chǔ)情感詞典中,則分別比較tci在正向語料和的負(fù)向語料中的TF-IDF 值,若前者大,則將tci放入P_CONDI,反之放入N_CONDI。至此,情感基準(zhǔn)詞集合選取完畢。流程如圖1所示。
圖1 基準(zhǔn)詞選擇流程
3.3.2 Fast Unfolding算法
Fast Unfolding 算法是一種基于圖理論的社區(qū)發(fā)現(xiàn)算法。社區(qū)劃分的目的是使得劃分后的社區(qū)內(nèi)部連接較為緊密而社區(qū)間的連接較為稀疏。算法通過模塊度來評(píng)判社區(qū)劃分的效果。模塊度的概念由Newman[18]等提出,簡(jiǎn)單來說,連接越緊密的點(diǎn)劃分到一個(gè)社區(qū)中,模塊度的值越大,模塊度最大的劃分就是最優(yōu)的社區(qū)劃分[19],公式如下:
將節(jié)點(diǎn)i放入社區(qū)后,Q的變化值為
其中ki,in代表社區(qū)中的節(jié)點(diǎn)和i 節(jié)點(diǎn)的連邊權(quán)重之和。算法基本流程如下:
Step1:將圖中每個(gè)節(jié)點(diǎn)當(dāng)做獨(dú)立的社區(qū);
Step2:嘗試將每個(gè)節(jié)點(diǎn)i 加入到其每個(gè)鄰居節(jié)點(diǎn),計(jì)算加入后的模塊度;
ΔQ 的變化量,如果maxΔQ>0,則將節(jié)點(diǎn)i合并到ΔQ最大的社區(qū),否則不變[20];
Step3:重復(fù)step2的步驟,直到節(jié)點(diǎn)所屬社區(qū)不再變化;
Step4:將step3中得到的社區(qū)壓縮,構(gòu)成新的節(jié)點(diǎn);
Step5:重復(fù)上述步驟,直到ΔQ不再大于0。
使用FU 算法,通過社區(qū)劃分可以很好地彌補(bǔ)式(1)中,基準(zhǔn)詞和候選詞無法共現(xiàn)的問題。比如,現(xiàn)有基準(zhǔn)詞“好看”,和候選詞“漂亮”和“耐用”,顯然它們都屬于積極情感詞,但是由于“好看”和“耐用”共現(xiàn)次數(shù)為0 導(dǎo)致無法將“耐用”加入到積極情感詞中。使用FU 算法,則可以通過其他詞語之間的聯(lián)系,將其正確的劃分到一個(gè)社區(qū)。程序示例效果如下。
3.3.3 FU-PMI算法
有了3.3.1 節(jié)和3.3.2 節(jié)的鋪墊,我們便可以提出FU-PMI 算法。由上文可知,SO-PMI 最大的缺陷就是基準(zhǔn)詞的選取,一是人工方式的成本過大,二是當(dāng)基準(zhǔn)詞出現(xiàn)頻率過低或者和候選詞無法共現(xiàn)時(shí)會(huì)導(dǎo)致候選詞無法被正確的分類。針對(duì)這兩個(gè)缺點(diǎn),首先引入了TF-IDF算法來選取基準(zhǔn)詞,避免了大量的人工勞動(dòng)的同時(shí),提高了基準(zhǔn)詞的質(zhì)量。其次,文本分類也可以看作是一種社區(qū)的劃分,并且通過社區(qū)劃分,可以解決兩個(gè)詞共現(xiàn)不了導(dǎo)致無法分類的問題。
Fast Unfolding 算法是一種基于圖論的無監(jiān)督算法,只需要考慮構(gòu)建初始的圖結(jié)構(gòu)。3.3.1 中提到的PMI可以反映詞與詞之間的關(guān)聯(lián)程度,因此本文選用語料中詞語作為節(jié)點(diǎn),詞語間的PMI值作為權(quán)值,使用第三方庫(kù)networkx 進(jìn)行圖結(jié)構(gòu)的構(gòu)造,之后經(jīng)過3.3.2 介紹的算法的步驟便可以得到劃分出來的社區(qū)。
在得到社區(qū)數(shù)據(jù)之后,就要結(jié)合3.3.1 中方法所構(gòu)建的基準(zhǔn)詞集合來進(jìn)行詞典的擴(kuò)展了。之后將圖中得到的候選詞加上基準(zhǔn)詞與基礎(chǔ)情感詞典合并、去重,便得到了擴(kuò)展后的情感詞典。
本文使用3.2 節(jié)中篩選出的4000 條評(píng)論數(shù)據(jù)作為數(shù)據(jù)集,其中正面評(píng)論2000條,負(fù)面評(píng)論2000條。
實(shí)驗(yàn)是在CPU 服務(wù)器上運(yùn)行的,CPU 型Inter(R)Core(TM)i7-8750H,內(nèi)存為16G,軟件環(huán)境為Python3.7。
對(duì)于詞典擴(kuò)展的結(jié)果,本文使用準(zhǔn)確率(Precision),召回率(Recall)以及F1 值三個(gè)指標(biāo)進(jìn)行分析。計(jì)算方式如下:
TP 代表樣本情感為正向,判別為正向。FP 代表樣本情感為負(fù)向,判別結(jié)果也為負(fù)向。
其中FN 代表樣本的情感傾向?yàn)檎?,預(yù)測(cè)得到的結(jié)果卻為負(fù)向。
F1折中了召回率和精確率。
為了更加清晰的觀察到算法的效果,本文分別選取20、40、80 個(gè)基準(zhǔn)詞,在不同的條件下,觀察兩種算法擴(kuò)展的詞典的實(shí)際效果。詳細(xì)數(shù)據(jù)如表4~6所示。
表4 20個(gè)基準(zhǔn)詞下的準(zhǔn)確率、召回率和F值
表5 40個(gè)基準(zhǔn)詞下的準(zhǔn)確率、召回率和F值
表6 80個(gè)基準(zhǔn)詞下的準(zhǔn)確率、召回率和F值
表中PosP、PosR、PosF 分別代表正面情感判別的準(zhǔn)確率、召回率和F1值,NegP、NegR、NegF分別代表負(fù)面情感判別的準(zhǔn)確率、召回率和F1值。
從表4~6 可以看出,隨著基準(zhǔn)詞的增多,兩種算法擴(kuò)展詞典的正確率、召回率以及F1值都在穩(wěn)步提升,但是增速隨著基準(zhǔn)詞的增多而放緩。相同基準(zhǔn)詞的情況下本文算法擴(kuò)展的詞典相較于SO-PMI算法有著較大的提升。從圖2 和圖3 可以看出,F(xiàn)U-PMI的擴(kuò)展效果在正面情感詞和負(fù)面情感詞擴(kuò)展上明顯優(yōu)于SO-PMI 算法,證明了算法在擴(kuò)展詞典上的有效性。
圖2 正面情感準(zhǔn)確率
圖3 負(fù)面情感準(zhǔn)確率
本文提出了一種融合PMI和FU 算法的情感詞典擴(kuò)展算法,利用PMI 可以表示詞語間關(guān)系的特性,使之作為權(quán)值加入到FU中進(jìn)行社區(qū)劃分,然后使用TF-IDF 算法優(yōu)化了傳統(tǒng)的基礎(chǔ)詞選取,提高了基準(zhǔn)詞的代表性。最后以改進(jìn)得到的基準(zhǔn)詞為基礎(chǔ),從社區(qū)中篩選出正負(fù)向情感候選詞,完成情感詞典的擴(kuò)展。實(shí)驗(yàn)證明算法在情感詞典擴(kuò)展方面相較于傳統(tǒng)的SO-PMI 算法有著較大的提升。但是算法還有改進(jìn)的地方,比如在構(gòu)建圖結(jié)構(gòu)的時(shí)候沒有考慮到降噪等因素,可能是導(dǎo)致算法在消極詞匯上表現(xiàn)不如積極詞匯的原因,也為以后的工作提供了新的思路。