王澤辰,王樹(shù)鵬,*,孫立遠(yuǎn),張磊,王勇,郝冰川
(1.中國(guó)科學(xué)院信息工程研究所,北京 100193; 2.國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心,北京 100085)
微博作為中文社交平臺(tái),具有強(qiáng)大的影響力和滲透力。微博用戶不斷增加,2020年第1季度財(cái)報(bào)顯示,微博日活躍用戶達(dá)2.41億,月活躍用戶達(dá)5.5億。這些用戶在平臺(tái)上建立關(guān)系、獲取信息及生產(chǎn)大量?jī)?nèi)容。在微博文本信息中,大量博文包含帶有明顯情感色彩的內(nèi)容。挖掘這些文本背后用戶的觀點(diǎn)與傾向,可以判斷流行趨勢(shì)和熱點(diǎn),有助于企業(yè)分析消費(fèi)者購(gòu)買傾向,進(jìn)行精準(zhǔn)化營(yíng)銷,也使得政府可以對(duì)網(wǎng)民的輿論立場(chǎng)變化做出及時(shí)反應(yīng)。因此,對(duì)微博文本進(jìn)行傾向性分析,進(jìn)而完成對(duì)博文立場(chǎng)的判定,是情感分析中一項(xiàng)重要的研究任務(wù)。
情感分析以對(duì)特定文本進(jìn)行處理及挖掘其中情感色彩為目的,是自然語(yǔ)言處理的重要分支,近年來(lái)受到了廣泛關(guān)注。提取情感詞是分析微博所表達(dá)情感最直接的方法。微博文本具有長(zhǎng)度較短、內(nèi)容形式多樣、觀點(diǎn)傾向性強(qiáng)、表達(dá)方式口語(yǔ)化、普遍缺少上下文信息等特點(diǎn)。針對(duì)微博數(shù)據(jù)有許多情感分析的研究,結(jié)合情感詞典對(duì)微博進(jìn)行分析的方法較為直觀。通過(guò)對(duì)微博中包含的情感詞進(jìn)行分類,可以簡(jiǎn)單地概括其中蘊(yùn)含的情緒。但是1條微博所表達(dá)的信息不僅與其包含的情感詞相關(guān),即使2條微博包含完全相同的情感詞,當(dāng)情感詞所指向的對(duì)象不同時(shí),微博的觀點(diǎn)與傾向性會(huì)存在明顯差異。例如,電子產(chǎn)品制造商可能只希望關(guān)注用戶與手機(jī)、電腦等相關(guān)的微博情感信息,而不關(guān)心對(duì)食品、日用品等的購(gòu)買傾向;在輿情方面,要分析網(wǎng)民在討論社會(huì)熱點(diǎn)問(wèn)題時(shí)的立場(chǎng),不僅需要辨別微博表達(dá)的態(tài)度是積極還是消極,還需要確定微博支持或反對(duì)的實(shí)體是什么。另外,中文詞匯的多義性使得同一詞語(yǔ)在不同語(yǔ)境下指代的實(shí)體含義可能不同。隨著網(wǎng)絡(luò)語(yǔ)言的發(fā)展,用于實(shí)體表示的新詞也層出不窮,用戶常常用品牌縮寫、諧音、流行語(yǔ)等進(jìn)行指代,這些依賴人工標(biāo)注的實(shí)體往往需要很大的工作量。因此,如何針對(duì)海量微博數(shù)據(jù)進(jìn)行傾向性分析,從而實(shí)現(xiàn)立場(chǎng)判定,是目前亟須解決的問(wèn)題。
為解決微博傾向性分析的問(wèn)題,本文將深度學(xué)習(xí)的方法與情感規(guī)則相結(jié)合,基于句法規(guī)則進(jìn)行博文情感分析,指定相應(yīng)的情感規(guī)則,結(jié)合協(xié)同學(xué)習(xí)和主動(dòng)學(xué)習(xí)的方法,可以在僅依賴少量標(biāo)注數(shù)據(jù)的前提下準(zhǔn)確判斷博文對(duì)指定類型實(shí)體表達(dá)的情感。
本文主要有以下3點(diǎn)創(chuàng)新:
1)利用半監(jiān)督學(xué)習(xí)的方式,通過(guò)協(xié)同訓(xùn)練加主動(dòng)學(xué)習(xí)的方式,同時(shí)利用半監(jiān)督學(xué)習(xí)結(jié)合主動(dòng)學(xué)習(xí)的模式,確定指向性實(shí)體集。
2)不同于傳統(tǒng)的情感規(guī)則,本文提出了基于主成分分析的情感規(guī)則,通過(guò)識(shí)別指定方向?qū)嶓w,結(jié)合情感詞對(duì)博文進(jìn)行傾向性判斷。
3)生成指定類別實(shí)體集,結(jié)合情感規(guī)則,判斷博文的立場(chǎng),實(shí)現(xiàn)對(duì)博文更深層次的分析。
網(wǎng)絡(luò)輿情中的情感識(shí)別問(wèn)題得到了學(xué)界廣泛關(guān)注。網(wǎng)絡(luò)社交平臺(tái)數(shù)據(jù)是情感識(shí)別任務(wù)的重要數(shù)據(jù)來(lái)源。例如,基于Twitter平臺(tái)數(shù)據(jù),Giachanou等[1]建立了情感分析方法,訓(xùn)練、分析推文內(nèi)容的情感傾向性。類似地,微博作為受眾廣、數(shù)據(jù)規(guī)模大的中文平臺(tái),吸引了許多學(xué)者對(duì)其數(shù)據(jù)開(kāi)展研究。
微博情感分析方法主要有3種:
1)基于語(yǔ)義詞典的方法。該方法需要先構(gòu)建微博情感分析數(shù)據(jù)庫(kù),一般包含多個(gè)詞典和句法規(guī)則庫(kù),再利用知識(shí)庫(kù)進(jìn)行聚合計(jì)算。例如,王志濤等[2]提出了一種基于詞典和規(guī)則集的中文微博情感分詞方法,將詞典和語(yǔ)義規(guī)則結(jié)合進(jìn)行情感分析。王燦偉[3]提出了結(jié)合情感詞典和感情符號(hào)來(lái)計(jì)算微博情感值的方法,實(shí)現(xiàn)主題歸類和情感分類。語(yǔ)義詞典通過(guò)構(gòu)造情感詞典,篩選出微博文本中的情感詞,計(jì)算文本片段的情感權(quán)值,從而判斷微博的情感傾向。Ebrahimi等[4]提出了將情感極性融入到情感對(duì)象和情感立場(chǎng)中的方法,通過(guò)對(duì)數(shù)線性聯(lián)合建模實(shí)現(xiàn)立場(chǎng)判定。
2)傳統(tǒng)機(jī)器學(xué)習(xí)方法。該方法普遍應(yīng)用于情感分類,其核心思想是構(gòu)建特征向量,找到特征與分類結(jié)果之間的關(guān)聯(lián)。樸素貝葉斯(naive Bayes)、最大熵(maximum entropy,ME)、支持向量機(jī)(support vector machine,SVM)等方法常用于情感分類[5]。Pang等[6]使用了電影評(píng)論作為數(shù)據(jù),采用以上3種機(jī)器學(xué)習(xí)方法進(jìn)行情感分類。奠雨潔等[7]使用SVM、隨機(jī)森林和梯度提升決策樹(shù)對(duì)文本特征進(jìn)行立場(chǎng)檢測(cè),并利用特征分類器進(jìn)行立場(chǎng)融合。這些方法具有訓(xùn)練時(shí)間短及特征維度高的特點(diǎn),但不能充分利用上下文信息和語(yǔ)法信息,且需要大量手工標(biāo)注。
3)基于深度學(xué)習(xí)的方法。該方法對(duì)微博博文進(jìn)行分詞,將其表示為詞向量,通過(guò)深度神經(jīng)網(wǎng)絡(luò)提取語(yǔ)義信息,構(gòu)建情感表征向量,并利用微博情感表征完成情感分類任務(wù)。深度學(xué)習(xí)模型在情感分析上取得了很好的效果[8],特別是基于長(zhǎng)短期記憶網(wǎng)絡(luò)(long and short term memory,LSTM)方法,在長(zhǎng)語(yǔ)句分析上取得了很好的結(jié)果[9]。除此之外,還有基于雙重注意力模型[10]、監(jiān)督學(xué)習(xí)[11]、集成學(xué)習(xí)[12]的方法。
通過(guò)對(duì)上述已有工作進(jìn)行總結(jié)和分析,可以將基于語(yǔ)義詞典、傳統(tǒng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的微博情感分析方法的特點(diǎn)進(jìn)行對(duì)比,結(jié)果如表1所示。由表1可知,深度學(xué)習(xí)方法能夠充分利用文本信息,往往具有更好的效果。基于深度學(xué)習(xí)的情感分析又可細(xì)分為無(wú)監(jiān)督學(xué)習(xí)、有監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí)3種方法。
表1 微博情感分析方法的特點(diǎn)Table 1 Features of Weibo sentiment analysis methods
在無(wú)監(jiān)督學(xué)習(xí)方法中,所有數(shù)據(jù)都缺少情感標(biāo)注。Turney[13]提出了情感傾向性分類的方法,通過(guò)選取指定詞匯,分別計(jì)算每個(gè)詞與情感詞典中積極、消極情感詞的交叉熵,以ME值作為情感詞分類判斷標(biāo)準(zhǔn)。除此之外,還有基于語(yǔ)法分析[14]、句法模式[15]等方法的研究。上述方法可以發(fā)掘文本數(shù)據(jù)中內(nèi)在的詞匯情感規(guī)律,節(jié)約人工標(biāo)注的成本。
有監(jiān)督學(xué)習(xí)情感分類問(wèn)題主要關(guān)注特征選擇和分類器設(shè)計(jì)。例如,文獻(xiàn)[16]中采用了詞性特征,Cambria等[17]引入了符號(hào)特征和詞嵌入特征?;谏唐吩u(píng)論中產(chǎn)品特征信息的情感分類采用有監(jiān)督學(xué)習(xí)方法[18],具有較高的運(yùn)行效率。但是,如果在有監(jiān)督學(xué)習(xí)中出現(xiàn)分類錯(cuò)誤,那么之后的學(xué)習(xí)都會(huì)受到這個(gè)錯(cuò)誤的影響。為了解決這個(gè)問(wèn)題,有學(xué)者提出了半監(jiān)督學(xué)習(xí)方法避免準(zhǔn)確率的下降。
Sindhwani[19]和Liu[20]等 分 別 提 出 了 采 用 半監(jiān)督學(xué)習(xí)方法進(jìn)行情感分析。半監(jiān)督學(xué)習(xí)包括自訓(xùn)練、協(xié)同訓(xùn)練等方法。自訓(xùn)練[21]方法是較早提出的一種半監(jiān)督學(xué)習(xí)方法,先訓(xùn)練初始分類器,再使用該分類器對(duì)未標(biāo)注的數(shù)據(jù)進(jìn)行標(biāo)注,選取分類準(zhǔn)確度較高的樣本確認(rèn)標(biāo)注,直到經(jīng)過(guò)多輪迭代后所有樣本都完成標(biāo)注為止。半監(jiān)督學(xué)習(xí)方法僅需要標(biāo)記少量數(shù)據(jù),適用于數(shù)據(jù)量大的任務(wù)。
對(duì)基于深度學(xué)習(xí)的方法進(jìn)行總結(jié)和分析,將基于無(wú)監(jiān)督學(xué)習(xí)、有監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí)的深度學(xué)習(xí)情感分析方法的特點(diǎn)進(jìn)行歸納,結(jié)果如表2所示。
由表2可知,采用半監(jiān)督學(xué)習(xí)方法,在情感分析任務(wù)上可以取得較好的效果。基于情感分析研究現(xiàn)狀,本文提出了基于情感對(duì)象識(shí)別與情感規(guī)則的傾向性分析(orientation analysis based on sentiment object recognition and sentiment rules,OASOSR)算法,不僅能夠確定博文中的情感詞,還可以分析情感詞指向的實(shí)體是否為目標(biāo)實(shí)體。
表2 基于深度學(xué)習(xí)的情感分析方法特點(diǎn)對(duì)比Table 2 Comparison of features of sentiment analysis methods based on deep learning
OASOSR算法框架如圖1所示,主要分為2個(gè)部分:①基于協(xié)同訓(xùn)練和主動(dòng)學(xué)習(xí)的實(shí)體識(shí)別模型;②基于情感詞典和句法分析的微博傾向性分析。
圖1 OASOSR算法總體架構(gòu)Fig.1 Algorithm architecture of OASOSR
基于協(xié)同訓(xùn)練和主動(dòng)學(xué)習(xí)的實(shí)體識(shí)別模型部分采用半監(jiān)督學(xué)習(xí)方法,將少量已標(biāo)注的微博文本數(shù)據(jù)集作為初始輸入,協(xié)同訓(xùn)練2個(gè)不同的實(shí)體識(shí)別模型。為了在協(xié)同訓(xùn)練中比較模型訓(xùn)練效果,基于這2個(gè)實(shí)體識(shí)別模型構(gòu)建2個(gè)分類器,分別包括實(shí)體集、情感詞典和情感規(guī)則3個(gè)部分。在協(xié)同訓(xùn)練的過(guò)程中,首先,從未進(jìn)行實(shí)體標(biāo)注和立場(chǎng)判定的數(shù)據(jù)集中抽取一定數(shù)量的數(shù)據(jù),并利用這2個(gè)訓(xùn)練過(guò)的實(shí)體識(shí)別模型對(duì)未標(biāo)注語(yǔ)料進(jìn)行實(shí)體識(shí)別。同時(shí),2個(gè)實(shí)體識(shí)別模型通過(guò)判斷微博文本中的實(shí)體類型,提取指定方向的實(shí)體,各形成1個(gè)實(shí)體集。然后,在這2個(gè)實(shí)體集的基礎(chǔ)上,構(gòu)造2個(gè)分類器,利用分類器分別結(jié)合情感詞典和情感規(guī)則來(lái)判斷微博立場(chǎng),并對(duì)同一條博文進(jìn)行傾向性分析。比較2個(gè)分類器得到的傾向性分析結(jié)果,判斷樣本置信度,從中選擇高置信度(即2個(gè)分類器輸出結(jié)果完全相同)的樣本,并為此類樣本添加指定類別的實(shí)體標(biāo)記和傾向性標(biāo)簽,合并到已標(biāo)記博文數(shù)據(jù)中。同時(shí),對(duì)于低置信度的樣本,采用主動(dòng)學(xué)習(xí)模式,將分類器挑選出的分歧大(2個(gè)分類器標(biāo)注結(jié)果不同)的樣本添加到已標(biāo)注的數(shù)據(jù)集中。將更新擴(kuò)充后的有標(biāo)注數(shù)據(jù)集重新輸入到協(xié)同訓(xùn)練模型,再次訓(xùn)練上述2個(gè)實(shí)體識(shí)別深度學(xué)習(xí)模型,不斷迭代直到已標(biāo)記的博文數(shù)據(jù)集達(dá)到足夠的規(guī)模,進(jìn)而獲取最大的指定方向?qū)嶓w集。2.1節(jié)將詳細(xì)介紹微博實(shí)體識(shí)別模型及指定方向?qū)嶓w集的訓(xùn)練過(guò)程。
在基于情感詞典和句法分析的微博傾向性分析部分,首先,模型基于學(xué)習(xí)得到指定方向?qū)嶓w集。然后,針對(duì)需要立場(chǎng)判斷的微博數(shù)據(jù),判斷微博是否與指定方向的實(shí)體相關(guān)。如果微博文本中包含指定方向?qū)嶓w集內(nèi)的任意實(shí)體,則對(duì)此類微博根據(jù)預(yù)先編寫的情感規(guī)則和情感詞典進(jìn)行傾向性分析,實(shí)現(xiàn)對(duì)微博文本的立場(chǎng)判定。2.2節(jié)將重點(diǎn)討論OASOSR算法中基于情感詞典和情感規(guī)則的傾向性分析。
本節(jié)詳細(xì)介紹基于協(xié)同訓(xùn)練和主動(dòng)學(xué)習(xí)模型的構(gòu)造細(xì)節(jié)、訓(xùn)練過(guò)程及微博情感對(duì)象實(shí)體集的提取流程。
協(xié)同訓(xùn)練假設(shè)數(shù)據(jù)擁有2個(gè)充分且條件獨(dú)立的視圖,即每個(gè)視圖所包含的信息都可以支持生成最優(yōu)學(xué)習(xí)器,且在給定類別標(biāo)記的條件下2個(gè)視圖相互獨(dú)立。利用未標(biāo)記數(shù)據(jù)在每個(gè)視圖上都訓(xùn)練生成1個(gè)分類器,每個(gè)分類器選擇置信度最高的樣本生成偽標(biāo)記,再將這些偽標(biāo)記作為標(biāo)記樣本訓(xùn)練另1個(gè)分類器。本文對(duì)層疊隱馬爾可夫模型(cascaded hidden Markov model,CHMM)和條件隨機(jī)場(chǎng)(conditional random field,CRF)實(shí)體識(shí)別學(xué)習(xí)模型進(jìn)行協(xié)同訓(xùn)練。
隱馬爾可夫模型(hidden Markov model,HMM)是一種在自然語(yǔ)言處理領(lǐng)域中被廣泛應(yīng)用的統(tǒng)計(jì)模型。中文命名實(shí)體識(shí)別中的人名識(shí)別、地名識(shí)別、譯名識(shí)別及機(jī)構(gòu)名識(shí)別等都可以用HMM來(lái)解決。本文利用CHMM 在統(tǒng)一的HMM中識(shí)別各類實(shí)體命名,自底向上分為人名識(shí)別HMM、地名識(shí)別HMM 和機(jī)構(gòu)名識(shí)別HMM 3層。每一層HMM將產(chǎn)生的最好的若干個(gè)結(jié)果送到詞圖中供高層模型使用,最終實(shí)現(xiàn)人名、地名和機(jī)構(gòu)名的實(shí)體識(shí)別。
CRF模型是一種基于統(tǒng)計(jì)的判別式模型,結(jié)合了ME模型和HMM 模型的特點(diǎn)。CRF模型根據(jù)樣本的特征生成預(yù)測(cè),對(duì)所有的特征權(quán)重進(jìn)行最優(yōu)化,進(jìn)而得到最優(yōu)解,解決了HMM模型因獨(dú)立性假設(shè)而導(dǎo)致其不能考慮上下文特征的問(wèn)題。在本文模型中,從經(jīng)過(guò)分詞的數(shù)據(jù)中挑選出包含在特定微博主題標(biāo)簽內(nèi)的數(shù)據(jù)實(shí)體,形成候選詞集。再利用CRF模型對(duì)候選詞集中的候選實(shí)體進(jìn)行實(shí)體抽取。
本文采用協(xié)同訓(xùn)練和主動(dòng)學(xué)習(xí)的方法訓(xùn)練以上2個(gè)模型。主動(dòng)學(xué)習(xí)方法具有在訓(xùn)練集較少的情況下能夠獲得較高分類準(zhǔn)確率的優(yōu)勢(shì),是對(duì)有監(jiān)督學(xué)習(xí)方法的一種改進(jìn)。有監(jiān)督學(xué)習(xí)方法在學(xué)習(xí)過(guò)程中被動(dòng)接受人工標(biāo)注的樣本集,通過(guò)將標(biāo)注樣本映射到目標(biāo)函數(shù)空間來(lái)學(xué)習(xí)知識(shí)。而主動(dòng)學(xué)習(xí)方法則試圖從未標(biāo)注的池中選擇數(shù)量盡可能少的、機(jī)器無(wú)法正確標(biāo)注的樣本(低置信度的樣本),并由領(lǐng)域?qū)<疫M(jìn)行標(biāo)注后添加到下一次迭代過(guò)程中作為訓(xùn)練集,以提高分類的效率。主動(dòng)學(xué)習(xí)通過(guò)選擇質(zhì)量高的少數(shù)樣本進(jìn)行學(xué)習(xí)以保證分類器的分類性能,同時(shí),也可以減輕樣本的標(biāo)注復(fù)雜度。
情感對(duì)象實(shí)體集提取流程如圖2所示,采用了半監(jiān)督學(xué)習(xí)方法,通過(guò)協(xié)同訓(xùn)練和主動(dòng)學(xué)習(xí)的方式對(duì)2個(gè)實(shí)體識(shí)別學(xué)習(xí)模型進(jìn)行訓(xùn)練。在實(shí)體及情感類別已標(biāo)注數(shù)據(jù)集中,有少量已標(biāo)注微博文本分別標(biāo)注了博文中包含的實(shí)體(實(shí)體1、實(shí)體2等)和博文情感類別(正向、負(fù)向)。將有標(biāo)注的微博文本進(jìn)行切詞處理,分別輸入到CHMM 和CRF實(shí)體識(shí)別學(xué)習(xí)模型,初步訓(xùn)練這2個(gè)模型。
圖2 情感對(duì)象實(shí)體集提取流程Fig.2 Extraction flowchart of sentimental object entity sets
在對(duì)CHMM和CRF實(shí)體識(shí)別學(xué)習(xí)模型進(jìn)行協(xié)同訓(xùn)練的過(guò)程中,先從未標(biāo)注實(shí)體及情感類別數(shù)據(jù)集中選取部分?jǐn)?shù)據(jù)(微博文本a、b、c),輸入到經(jīng)過(guò)初步訓(xùn)練的CHMM 和CRF實(shí)體識(shí)別學(xué)習(xí)模型,提取博文中指定方向的實(shí)體,分別得到實(shí)體集1和實(shí)體集2。分別基于2個(gè)實(shí)體集對(duì)相同的未標(biāo)注數(shù)據(jù)進(jìn)行依存句法分析,再基于給定的情感詞典和情感規(guī)則進(jìn)行情感分析,判斷微博文本的情感類別。對(duì)于每條微博,都有基于實(shí)體集1和實(shí)體集2的2個(gè)標(biāo)記結(jié)果,每個(gè)標(biāo)記結(jié)果都包括微博所含有的實(shí)體(實(shí)體n)和傾向(正向、負(fù)向、無(wú)法判斷)。比較基于實(shí)體集1和實(shí)體集2得到的標(biāo)記結(jié)果,針對(duì)同一微博文本,若2個(gè)分類器得到的結(jié)果中所標(biāo)記實(shí)體和情感類別都完全相同,則判斷該結(jié)果為置信度較高的正負(fù)類別數(shù)據(jù)。直接將這條微博文本和對(duì)應(yīng)實(shí)體、情感類型標(biāo)注添加到實(shí)體及情感類別已標(biāo)注數(shù)據(jù)集;若2個(gè)結(jié)果中所標(biāo)記實(shí)體或情感類別不完全相同,則判斷該結(jié)果為置信度較低的正負(fù)類別數(shù)據(jù),需要采用主動(dòng)學(xué)習(xí)的方法處理。對(duì)于這類數(shù)據(jù),針對(duì)同一微博文本,若2個(gè)分類器提取的指定方向?qū)嶓w完全相同,但情感類別相反,則認(rèn)為該樣本是分歧較大樣本,需要將結(jié)果交由領(lǐng)域?qū)<疫M(jìn)行情感類別判斷。若2個(gè)分類器提取的指定方向?qū)嶓w不同,或有1個(gè)分類器沒(méi)有提取出指定方向?qū)嶓w,則認(rèn)為該樣本是不確定性較大樣本,需要進(jìn)行人工實(shí)體詞語(yǔ)標(biāo)注。同樣地,將經(jīng)由主動(dòng)學(xué)習(xí)得到的微博文本和對(duì)應(yīng)實(shí)體、情感類型標(biāo)注添加到實(shí)體及情感類別已標(biāo)注數(shù)據(jù)集,這樣就完成了協(xié)同學(xué)習(xí)的第一輪循環(huán)。
對(duì)這一過(guò)程進(jìn)行迭代,不斷擴(kuò)充實(shí)體及情感類別已標(biāo)注數(shù)據(jù)集,直到已標(biāo)記數(shù)據(jù)的數(shù)據(jù)量達(dá)到設(shè)定的停止閾值。獲取該數(shù)據(jù)集中的所有標(biāo)注實(shí)體所組成的實(shí)體集,作為2.2節(jié)中微博傾向性分析的基礎(chǔ)。
本節(jié)介紹基于情感詞典和情感規(guī)則進(jìn)行句法分析的微博立場(chǎng)判斷算法。該算法通過(guò)情感規(guī)則識(shí)別微博中情感詞所充當(dāng)?shù)木渥映煞?,分析情感詞與目標(biāo)實(shí)體之間的修飾關(guān)系,從而判斷微博的傾向性。然而,情感規(guī)則的制定依賴于依存句法分析。漢語(yǔ)語(yǔ)句以詞語(yǔ)為基本單位,在詞語(yǔ)之間擁有依存和支配關(guān)系。依存句法分析理論能夠借用各級(jí)語(yǔ)言單位的依存關(guān)系,清晰地提煉出成分之間的修飾和搭配信息,從而達(dá)到解析語(yǔ)句的目的,進(jìn)而總結(jié)句子成分之間的關(guān)聯(lián),制定情感規(guī)則。
基于情感詞典和情感規(guī)則的微博傾向性分析算法包含文檔預(yù)處理、條件判斷、實(shí)體信息判斷、句法分析及規(guī)則判斷5個(gè)步驟,輸出結(jié)果為對(duì)應(yīng)輸入博文的博文傾向性類別。算法流程如圖3所示。
圖3 OASOSR算法流程Fig.3 OASOSR algorithm flowchart
首先,對(duì)原始博文進(jìn)行數(shù)據(jù)清洗,經(jīng)過(guò)簡(jiǎn)化繁體字、刪除無(wú)效評(píng)論等操作后,得到有效數(shù)據(jù),再使用結(jié)巴分詞(數(shù)據(jù)來(lái)源:https://github.com/fxsjy/jieba),并去除分詞結(jié)果中的停用詞。然后,基于情感詞典,對(duì)經(jīng)過(guò)處理的微博文本數(shù)據(jù)進(jìn)行情感詞判斷。顯然,只有包含情感詞的微博文本才能表達(dá)傾向性,不包含情感信息的微博不具有立場(chǎng)分析的價(jià)值。因此,本文采用大連理工大學(xué)情感詞匯本體庫(kù)DUTIR情感詞典(數(shù)據(jù)來(lái)源:http://ir.dlut.edu.cn)判斷博文中是否存在情感詞,篩選出含有情感詞的微博文本,進(jìn)行下一步處理。在含有情感詞的微博文本基礎(chǔ)上,進(jìn)行實(shí)體信息判斷,篩選出包含指定方向?qū)嶓w的微博。實(shí)體信息判斷基于2.1節(jié)中通過(guò)協(xié)同訓(xùn)練和主動(dòng)學(xué)習(xí)得到的實(shí)體集完成。最后,提取微博文本中實(shí)體詞語(yǔ),若實(shí)體存在于該指定方向的實(shí)體集之中,則篩選出這條微博,對(duì)其中的句子進(jìn)行依存句法分析。通過(guò)識(shí)別句子的主語(yǔ)、否定詞、謂語(yǔ)、賓語(yǔ)、定語(yǔ)、標(biāo)點(diǎn)符號(hào)等成分,基于句法分析、情感規(guī)則將句子分為4種不同的類型:①當(dāng)謂語(yǔ)為情感詞、主語(yǔ)或謂語(yǔ)為實(shí)體詞時(shí);②當(dāng)定語(yǔ)為情感詞、主語(yǔ)或謂語(yǔ)為實(shí)體詞時(shí);③當(dāng)賓語(yǔ)為情感詞、主語(yǔ)或謂語(yǔ)為實(shí)體詞時(shí);④當(dāng)情感詞僅為動(dòng)詞、賓語(yǔ)為實(shí)體詞時(shí)。
情感詞在句子中充當(dāng)不同成分時(shí),具體分類規(guī)則如OASOSR算法所示(見(jiàn)圖3)。經(jīng)過(guò)對(duì)應(yīng)的情感規(guī)則判斷,最終輸出該微博文本的立場(chǎng)。
算法1 OASOSR算法。
輸入:微博文本。
輸出:博文類別。
步驟1 文檔預(yù)處理。文本切詞。
步驟2 條件判斷。依據(jù)情感詞典判斷博文是否存在情感詞,若存在情感詞,則對(duì)句子進(jìn)行下一步處理。
步驟3 實(shí)體信息判斷。提取博文中實(shí)體詞語(yǔ),若實(shí)體存在于指定實(shí)體集之中,則進(jìn)行下一步處理。
步驟4 句法分析及規(guī)則判斷。
步驟4.1 對(duì)句子進(jìn)行依存句法分析,識(shí)別句子的主語(yǔ)、否定詞、謂語(yǔ)、賓語(yǔ)、定語(yǔ)、標(biāo)點(diǎn)符號(hào)等成分。
步驟4.2 設(shè)定情感判斷規(guī)則。
1)規(guī)則1:當(dāng)謂語(yǔ)為情感詞、主語(yǔ)或謂語(yǔ)為實(shí)體詞時(shí):
①情感詞為褒義詞,實(shí)體詞為正面實(shí)體詞時(shí),博文為正面傾向。
②情感詞為褒義詞,實(shí)體詞為負(fù)面實(shí)體詞時(shí),博文為負(fù)面傾向。
③情感詞為貶義詞,實(shí)體詞為正面實(shí)體詞時(shí),博文為負(fù)面傾向。
④情感詞為貶義詞,實(shí)體詞為負(fù)面實(shí)體詞時(shí),博文為正面傾向。
⑤若存在否定詞或問(wèn)號(hào),博文傾向反轉(zhuǎn)。
2)規(guī)則2:當(dāng)定語(yǔ)為情感詞、主語(yǔ)或謂語(yǔ)為實(shí)體詞時(shí):
①情感詞為褒義詞,實(shí)體詞為正面實(shí)體詞時(shí),博文為正面傾向。
②情感詞為褒義詞,實(shí)體詞為負(fù)面實(shí)體詞時(shí),博文為負(fù)面傾向。
③情感詞為貶義詞,實(shí)體詞為正面實(shí)體詞時(shí),博文為負(fù)面傾向。
④情感詞為貶義詞,實(shí)體詞為負(fù)面實(shí)體詞時(shí),博文為正面傾向。
⑤若存在否定詞或問(wèn)號(hào),博文傾向反轉(zhuǎn)。
3)規(guī)則3:當(dāng)賓語(yǔ)為情感詞、主語(yǔ)或謂語(yǔ)為實(shí)體詞時(shí):
①情感詞為褒義詞,實(shí)體詞為正面實(shí)體詞時(shí),博文為正面傾向。
②情感詞為褒義詞,實(shí)體詞為負(fù)面實(shí)體詞時(shí),博文為負(fù)面傾向。
③情感詞為貶義詞,實(shí)體詞為正面實(shí)體詞時(shí),博文為負(fù)面傾向。
④情感詞為貶義詞,實(shí)體詞為負(fù)面實(shí)體詞時(shí),博文為正面傾向。
⑤若存在否定詞或問(wèn)號(hào),博文傾向反轉(zhuǎn)。
4)規(guī)則4:當(dāng)情感詞僅為動(dòng)詞、賓語(yǔ)為實(shí)體詞時(shí):
①情感詞為褒義詞,實(shí)體詞為正面實(shí)體詞時(shí),博文為正面傾向。
②情感詞為褒義詞,實(shí)體詞為負(fù)面實(shí)體詞時(shí),博文為負(fù)面傾向。
③情感詞為貶義詞,實(shí)體詞為正面實(shí)體詞時(shí),博文為負(fù)面傾向。
④情感詞為貶義詞,實(shí)體詞為負(fù)面實(shí)體詞時(shí),博文為正面傾向。
⑤若存在否定詞或問(wèn)號(hào),博文傾向反轉(zhuǎn)。
步驟4.3 輸出博文的立場(chǎng)。
在OASOSR算法中,文本切詞的時(shí)間復(fù)雜度為O(n2),條件判斷、實(shí)體信息判斷的時(shí)間復(fù)雜度為O(n),而句法分析的時(shí)間復(fù)雜度為O(Kn3),可以得知OASOSR算法時(shí)間復(fù)雜度為O(Kn3)。
為證明OASOSR算法的實(shí)用性,本文實(shí)現(xiàn)了OASOSR算法的自對(duì)比實(shí)驗(yàn)和他比實(shí)驗(yàn)。本文通過(guò)網(wǎng)絡(luò)爬蟲(chóng)獲取了38 175條新冠肺炎疫情輿論微博數(shù)據(jù)(數(shù)據(jù)來(lái)源:https://github.com/Zu-Qin131/Weibo-public-opinion-analysis),并 對(duì) 新 冠肺炎疫情輿情言論微博數(shù)據(jù)進(jìn)行人工實(shí)體標(biāo)注,分為正面和負(fù)面情感博文,用于自對(duì)比實(shí)驗(yàn);并選用weibo_senti_100k(數(shù)據(jù)來(lái)源:https://github.com/SophonPlus/ChineseNlpCorpus/tree/master/datasets)的開(kāi)源微博情感數(shù)據(jù)集,從中選取部分?jǐn)?shù)據(jù)進(jìn)行實(shí)體標(biāo)注和人工正面、負(fù)面情感標(biāo)注,應(yīng)用于自對(duì)比實(shí)驗(yàn)和他比實(shí)驗(yàn)。上述數(shù)據(jù)集的特點(diǎn)總結(jié)如表3所示。
實(shí)驗(yàn)中構(gòu)造的微博情感詞典是在大連理工大學(xué)情感詞匯本體庫(kù)DUTIR的基礎(chǔ)上,添加與新冠肺炎疫情輿論相關(guān)的情感詞得到的。最終構(gòu)建的情感詞典共有23 651個(gè)中文情感詞,包括9 833個(gè)正面情感詞和13 818個(gè)負(fù)面情感詞。
為了測(cè)試在數(shù)據(jù)量變化情況下OASOSR算法的穩(wěn)定性、魯棒性與準(zhǔn)確率變化趨勢(shì),本節(jié)設(shè)計(jì)了基于OASOSR算法的自對(duì)比實(shí)驗(yàn)。如表4所示,從新冠肺炎疫情話題數(shù)據(jù)集中隨機(jī)選取485條新冠肺炎疫情輿情言論微博數(shù)據(jù),進(jìn)行人工實(shí)體標(biāo)注,并將博文分為正面情感博文和負(fù)面情感博文,其中已標(biāo)注正面情感博文331條,負(fù)面情感博文154條,作為小規(guī)模數(shù)據(jù)集。
表4 對(duì)比實(shí)驗(yàn)中選取的數(shù)據(jù)集大小Table 4 Size of datasets selected for comparative experiment
同時(shí),也在weibo_senti_100k的開(kāi)源微博情感數(shù)據(jù)集上使用該方法進(jìn)行實(shí)驗(yàn),這是一個(gè)開(kāi)源的大規(guī)模數(shù)據(jù)集,共有119 989條微博情感數(shù)據(jù),從中隨機(jī)選取4 000條微博數(shù)據(jù)進(jìn)行數(shù)據(jù)標(biāo)注,并作為大規(guī)模數(shù)據(jù)集,其中標(biāo)注了正面情感博文2 200條,負(fù)面情感博文1 800條。
為證明OASOSR算法在不同規(guī)模數(shù)據(jù)集上的有效性,設(shè)計(jì)了4組實(shí)驗(yàn),在不同規(guī)模下對(duì)OASOSR算法的魯棒性進(jìn)行了測(cè)試。首先,在小規(guī)模數(shù)據(jù)集(新冠肺炎疫情話題數(shù)據(jù)集)上進(jìn)行實(shí)驗(yàn),從新冠肺炎疫情話題數(shù)據(jù)集中隨機(jī)選取200條作為訓(xùn)練集,剩余的285條博文作為測(cè)試集。然后,在大規(guī)模數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),從weibo_senti_100k開(kāi)源微博情感數(shù)據(jù)集中選取了2 000條作為訓(xùn)練集,剩余2 000條作為測(cè)試集進(jìn)行實(shí)驗(yàn)。在2個(gè)數(shù)據(jù)集上分別進(jìn)行4組實(shí)驗(yàn),每組實(shí)驗(yàn)分別從訓(xùn)練集中選取25%、50%、75%和100%的數(shù)據(jù)用于訓(xùn)練,生成訓(xùn)練結(jié)果,并對(duì)比觀察2個(gè)模型在測(cè)試集上情感分類的正確率,正確率對(duì)比如圖4所示。
圖4 不同規(guī)模數(shù)據(jù)集上OASOSR算法立場(chǎng)判斷正確率Fig.4 Accuracy of standpoint judgement by OASOSR algorithm on different datasets
在小規(guī)模數(shù)據(jù)集上,當(dāng)實(shí)體標(biāo)注博文的數(shù)量為50條時(shí),標(biāo)注數(shù)據(jù)過(guò)少,識(shí)別出的情感對(duì)象實(shí)體較少,因此博文情感識(shí)別率較低。當(dāng)實(shí)體標(biāo)注博文的數(shù)量為100,150,200條時(shí),正面和負(fù)面情感博文的判斷正確率持續(xù)提高。相似地,在大規(guī)模數(shù)據(jù)集上,當(dāng)實(shí)體標(biāo)注博文的數(shù)量為500條時(shí),正面和負(fù)面情感博文的判斷正確率都比較低,而當(dāng)情感標(biāo)注博文的數(shù)量為1 000,1 500,2 000條時(shí),正面和負(fù)面情感博文的判斷正確率持續(xù)提高。
可以看出,隨著訓(xùn)練數(shù)據(jù)中標(biāo)注實(shí)體的博文數(shù)量增加,在不同規(guī)模的數(shù)據(jù)集上,算法對(duì)微博立場(chǎng)的判斷正確率都在逐漸提高。OASOSR算法在數(shù)據(jù)集規(guī)模變化差別較大的情況下,仍具有很好的魯棒性。
他比實(shí)驗(yàn)選取weibo_senti_100k開(kāi)源微博情感數(shù)據(jù)集作為實(shí)驗(yàn)語(yǔ)料。為了驗(yàn)證OASOSR算法的有效性,本文選取了基于SVM的有監(jiān)督情感文本分類方法(sentiment classification of texts based on SVM,SCSVM)[22]和基于極性詞典情感分析的無(wú)監(jiān)督情感分類方法(sentiment analysis method based on a polarity lexicon,SAMPL)[23],分別與本文算法進(jìn)行對(duì)比。在SCSVM方法中,先構(gòu)建情感詞典,并進(jìn)行情感特征選取及情感特征加權(quán),再使用SVM分類的方法對(duì)文本進(jìn)行情感識(shí)別及分類。SAMPL方法則綜合了基礎(chǔ)詞典、領(lǐng)域詞典、網(wǎng)絡(luò)詞典及修飾詞詞典,將極性詞和修飾詞組合成極性短語(yǔ),以極性短語(yǔ)為極性計(jì)算的基本單元,進(jìn)行情感分析。
表5展示了實(shí)驗(yàn)中基于上述2個(gè)模型的微博立場(chǎng)判斷正確率和基于OASOSR算法的微博立場(chǎng)判斷正確率。對(duì)比表5中正確率可知,在同等數(shù)量的訓(xùn)練集和測(cè)試集中,OASOSR算法要優(yōu)于SCSVM方法和SAMPL方法。這是因?yàn)椋罕疚奶岢龅腛ASOSR算法充分考慮了對(duì)情感對(duì)象的識(shí)別,微博情感識(shí)別更有針對(duì)性,在立場(chǎng)判斷任務(wù)上的正確率相對(duì)較高。由對(duì)比實(shí)驗(yàn)結(jié)果可以證明,相較于有監(jiān)督學(xué)習(xí)方法和無(wú)監(jiān)督學(xué)習(xí)方法,半監(jiān)督學(xué)習(xí)方法更適用于指定實(shí)體的博文立場(chǎng)判斷。
表5 基于不同模型的微博立場(chǎng)判斷正確率Table 5 Accuracy of Weibo standpoint judgement based on different models
為證明OASOSR算法中不同情感規(guī)則在微博文本傾向性分析中會(huì)起到作用,本文設(shè)計(jì)了2組規(guī)則分析實(shí)驗(yàn)。在第1組實(shí)驗(yàn)中,設(shè)置變量為僅保留情感規(guī)則1~4條中的1條,去除其他3條規(guī)則;在第2組實(shí)驗(yàn)中,設(shè)置變量為去除情感判斷規(guī)則1~4條中的1條,按原有順序保留其余3條規(guī)則。在新冠肺炎疫情話題數(shù)據(jù)集和weibo_senti_100k開(kāi)源微博情感數(shù)據(jù)集上進(jìn)行這2組實(shí)驗(yàn),生成實(shí)驗(yàn)結(jié)果,并將結(jié)果與去除判斷規(guī)則前的實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比。圖5中,“單一”代表僅保留某1條規(guī)則,去除其他3條情感規(guī)則得到的實(shí)驗(yàn)正確率;“缺失”表示缺失某1條規(guī)則,但保留其他3條規(guī)則的得到的實(shí)驗(yàn)正確率。從實(shí)驗(yàn)結(jié)果對(duì)比可以看出,在去除某1條情感規(guī)則后,立場(chǎng)判定的正確率均低于原有算法模型。特別是去除規(guī)則1后,正確率下降了34.36%。因此,OASOSR算法中4條規(guī)則互相支撐且都具有必要性,缺一不可。
圖5 基于不同模型篩選條件的微博立場(chǎng)判斷正確率Fig.5 Accuracy of Weibo standpoint judgement based on filtering conditions of different models
微博情感的分類較為簡(jiǎn)單,無(wú)法判斷微博對(duì)特定方向?qū)嶓w的立場(chǎng)問(wèn)題。針對(duì)微博文本數(shù)據(jù)信息量大、情感傾向性強(qiáng)的特點(diǎn),本文提出了使用OASOSR算法解決微博立場(chǎng)判定問(wèn)題。該算法結(jié)合深度學(xué)習(xí)與情感規(guī)則,實(shí)現(xiàn)微博立場(chǎng)判定。首先,本文采用半監(jiān)督學(xué)習(xí)的方法,分別基于CHMM和CRF模型,對(duì)微博文本進(jìn)行協(xié)同訓(xùn)練,再通過(guò)主動(dòng)學(xué)習(xí)的方法,提取微博文本中的指向性實(shí)體集,并構(gòu)造了2個(gè)分類器。然后,通過(guò)分析大量微博文本中的句法特征,構(gòu)建情感規(guī)則,提取句子的主成分,去除與立場(chǎng)判斷不相關(guān)的信息,將表達(dá)方式較為隨意的微博文本規(guī)范化?;诮?jīng)過(guò)處理的博文數(shù)據(jù),綜合判斷指向性實(shí)體的正面和負(fù)面性,結(jié)合博文句子中情感詞的褒貶義、分析情感詞充當(dāng)?shù)木渥映煞旨扒楦性~修飾的實(shí)體類型,進(jìn)而分析博文的傾向性,確定微博對(duì)指定主題所表達(dá)的立場(chǎng)。為證明OASOSR算法的實(shí)用性,本文實(shí)現(xiàn)了自對(duì)比實(shí)驗(yàn)和他比實(shí)驗(yàn)。自對(duì)比實(shí)驗(yàn)顯示,隨著標(biāo)注實(shí)體的博文數(shù)量增加,模型對(duì)博文立場(chǎng)判斷的正確率持續(xù)提升,證明了該算法可以有效增強(qiáng)立場(chǎng)判斷效果。將OASOSR算法與SCSVM方法、SAMPL方法進(jìn)行對(duì)比實(shí)驗(yàn),在不同標(biāo)注數(shù)量博文上進(jìn)行對(duì)比的實(shí)驗(yàn)結(jié)果顯示,OASOSR算法判斷博文立場(chǎng)的正確率顯著高于對(duì)比方法。