情感分析概述 人工智能技術(shù)落地
與其他的人工智能技術(shù)相比,情感分析(Sentiment Analysis)顯得有些特殊,因為其他的領(lǐng)域都是根據(jù)客觀的數(shù)據(jù)來進行分析和預(yù)測,但情感分析則帶有強烈的個人主觀因素。情感分析的目標(biāo)是從文本中分析出人們對于實體及其屬性所表達的情感傾向以及觀點,這項技術(shù)最早的研究始于2003年Nasukawa和Yi兩位學(xué)者的關(guān)于商品評論的論文。
隨著推特等社交媒體以及電商平臺的發(fā)展而產(chǎn)生大量帶有觀點的內(nèi)容,給情感分析提供了所需的數(shù)據(jù)基礎(chǔ)。時至今日,情感識別已經(jīng)在多個領(lǐng)域被廣泛的應(yīng)用。
評價者表達的是對手機整體的褒義評價,但如果是:“我覺得這款手機拍照功能很不錯,但信號不是很好”這樣的句子,在同一個評論中出現(xiàn)了褒義詞又出現(xiàn)了貶義詞,篇章級的分析是無法分辨出來的,只能將其作為一個整體進行分析。不過好在有很多的場景是不需要區(qū)分觀點評價的實體和觀點持有者,例如:在商品評論的情感分析中,可以默認(rèn)評論的對象是被評論的商品,評論的觀點持有者也是評論者本人。
第一步是判斷待分析的句子是否含有觀點信息;第二步則是針對這些含有觀點信息的句子進行情感分析,發(fā)現(xiàn)其中情感的傾向性,判斷是褒義還是貶義。關(guān)于分析情感傾向性的方法與篇章級類似,依然是可以采用監(jiān)督學(xué)習(xí)或根據(jù)情感詞詞典的方法來處理,我們會在后續(xù)的小節(jié)詳細講解。句子級的情感分析相較于篇章級而言,顆粒度更加細分,但同樣只能判斷整體的情感,忽略了對于被評價實體的屬性,同時它也無法判斷比較型的情感觀點。
另一種需要注意的情況是否定詞,否定詞的出現(xiàn)一般會改變情感詞原本的情感傾向,變?yōu)橄喾吹那楦校纭安缓谩本褪窃凇昂谩鼻懊婕由狭朔穸ㄔ~“不”,使之變成了貶義詞。除了條件句之外,還有一種語言表達也是需要在數(shù)據(jù)預(yù)處理階段進行排除的,那就是疑問句。
具體的做法與機器學(xué)習(xí)一樣需要分為兩個步驟:第一步是根據(jù)訓(xùn)練數(shù)據(jù)構(gòu)建算法模型;第二步是將測試數(shù)據(jù)輸入到算法模型中輸出對應(yīng)的結(jié)果,接下來做具體的講解。首先,我們需要準(zhǔn)備一些訓(xùn)練用的文本數(shù)據(jù),并人工給這些數(shù)據(jù)做好情感分類的標(biāo)注。通常的做法下:如果是褒義和貶義的兩分類,則褒義標(biāo)注為1,貶義標(biāo)注為0,如果是褒義、貶義和中性三分類,則褒義標(biāo)注為1,中性標(biāo)注為0,貶義標(biāo)注為-1。
當(dāng)訓(xùn)練好分類模型之后,就可以對測試集進行分類了,具體的流程與建模流程類似,先對測試的文本數(shù)據(jù)進行分詞并做數(shù)據(jù)預(yù)處理,然后根據(jù)特征詞矩陣抽取測試文本的特征詞構(gòu)建詞袋矩陣,并將詞袋矩陣的詞頻數(shù)據(jù)作為輸入數(shù)據(jù)代入之前訓(xùn)練好的模型進行分類,得到分類的結(jié)果。
互聯(lián)網(wǎng)上的交流不僅僅只是通過單純的文字來進行,大量的情感表達是通過顏文字或表情包來實現(xiàn)的,例如經(jīng)典的表示笑臉的顏文字“:D”,這類文本表達無法與上下文形成聯(lián)系,所以很難判斷他們評價的實體對象是什么。
不過好在這類數(shù)據(jù)本身就代表了非常強烈的情感傾向,在篇章級和句子級的顆粒度對情感進行分析,我們可以將特定的顏文字作為一種特殊的詞組構(gòu)建成情感字典,并人工進行情感分的賦值,對于emoji表情也可以將標(biāo)準(zhǔn)的emoji編碼編入情感字典。而對于表情包的識別則是一個計算機視覺的問題,目前還沒有學(xué)者在這個領(lǐng)域方向展開研究。
這類比較語句中通常存在著兩個以上的實體或?qū)傩?,如果只是在句子級的顆粒度下可以辨別出這句話是含有褒義的情感,但在屬性級的顆粒度下,以情感五元組來定義的情感無法將一個實體作為另一個實體的屬性來進行判斷,很難分辨觀點持有者到底是在對哪一個實體或?qū)傩员磉_情感。而這類語句在商品的評論中有非常常見,需要特別注意。
目前對于情感的分析依然處于初級階段,僅僅只是對情感做了褒義、貶義、中性三種劃分,但現(xiàn)實生活中的情緒遠遠不止這三種類型,例如:在心理學(xué)領(lǐng)域中,著名的心理學(xué)家羅伯特·普拉切克(Robert Plutchik)提出的情緒輪包含了8種基本情緒,并且每種情緒又劃分了不同的情緒強度等級,8種情緒還可以相互結(jié)合形成更多的情緒,如圖所示。
情緒輪在用戶體驗設(shè)計上被廣泛的應(yīng)用,很多情感化設(shè)計都是基于情緒輪進行的。但是在人工智能領(lǐng)域,將情緒進行多分類比情感分析的三分類任務(wù)要難得多,目前大多數(shù)分類方法的結(jié)果準(zhǔn)確性都不到50%。這是因為情緒本身包含了太多的類別,而且不同的類別之間又可能具有相似性,一個情緒詞在不同的語境下有可能表達的是不同的情緒類別,算法很難對其進行分類。即使是人工對文本進行情緒類別標(biāo)注也往往效果不佳,因為情緒是非常主觀性的,不同的人對不同的文本可能產(chǎn)生不同的理解,這使得人工標(biāo)注情緒類比的過程異常困難。