本發(fā)明涉及一種對微博表情符號的情感計算方法,具體是涉及一種基于點互信息的微博表情符號情感計算方法。
背景技術:
隨著互聯(lián)網(wǎng)技術的飛速發(fā)展,微博作為一種新型信息傳播載體迅速融入人們的生活。人們通過各種終端登陸微博平臺,即興發(fā)布包括文字、圖片、視頻、表情符號等信息來表達思想和情感。表情符號簡明生動,能直觀地通過各種表情和動作反映情感,因此人們越來越多地在微博文本中穿插表情符號來表達情感。
目前對微博情感分析的主流方式仍只針對文本信息而忽略表情符號,主要有兩種思路:基于情感知識的方法和基于機器學習的方法。基于情感知識的方法主要通過情感詞典或領域情感詞庫來判斷文本的情感極性;基于機器學習的方法將情感分析看作傳統(tǒng)的分類來抽取特征并進行分類。由于去除了表情符號,單純依賴文字的情感分析明顯會損失大量的情感信息,造成分析不夠準確。
當前對于微博表情符號的處理方法主要包括:基于情感詞計算微博文本的情感值進而推斷表情符號的情感值。首先,對于每條包含情感詞和表情符號的微博,找出其中的情感詞,將情感詞對應的情感值簡單相加來得到微博的情感值;然后對于每個表情符號,分別計算包含該表情符號的正向情感微博和負向情感微博的正負情感總值,最后取絕對值較大的情感總值為該表情符號的情感值。
上述通過情感詞和微博文本簡單疊加來計算表情符號情感值時,存在以下不足:
(1)只通過簡單相加來計算情感值,沒有考慮情感詞與表情符號之間的相關性信息;
(2)通過比較正負情感總值的絕對值大小來決定表情符號的情感值,直接舍棄了絕對值小的情感總值,損失了這部分情感對表情符號情感計算的貢獻信息;
(3)最終得到的表情符號的情感值沒有標準化處理,無法進行綜合比較。
技術實現(xiàn)要素:
本發(fā)明的目的在于針對目前微博表情符號的情感計算方面的不足,提供一種基于點互信息的微博表情符號情感計算方法,該方法利用微博中的情感詞與表情符號的共現(xiàn)情況來計算兩者的點互信息,以此來決定情感詞對表情符號情感值的影響力,再根據(jù)情感詞的情感值,來計算表情符號的情感值并進行標準化。
為了達到上述的目的,本發(fā)明的構思如下:爬取大規(guī)模微博數(shù)據(jù)作為基本語料庫并進行過濾和預處理;由表情符號與情感詞在語料庫微博中的共現(xiàn)情況來計算它們之間的點互信息,進而決定情感詞對表情符號情感值的影響力,并結合情感詞的情感值來加權計算表情符號的情感值;最終對表情符號的情感值進行標準化處理。
根據(jù)上述的構思,本發(fā)明采用下述技術方案:
一種基于點互信息的微博表情符號情感計算方法,其具體步驟如下:
1)爬取大規(guī)模微博數(shù)據(jù)并進行過濾,只保留同時包含表情符號和情感詞的微博;
2)對每篇微博進行分詞、停用詞過濾的預操作,并對前接否定詞、程度詞的情感詞進行組合操作并計算其情感值;
3)對預處理后的微博數(shù)據(jù),抽取出“表情符號-情感詞”共現(xiàn)對并組成共現(xiàn)對集合;
4)對于每個表情符號,計算它在“表情符號-情感詞”共現(xiàn)對集合中與每個共現(xiàn)情感詞的點互信息;
5)利用表情符號與共現(xiàn)情感詞的點互信息以及情感詞的情感值,計算每個表情符號的初始情感值;
6)對所有表情符號的初始情感值進行標準化處理,使其歸一化到[-1,1]區(qū)間。
所述步驟4)中的表情符號與共現(xiàn)情感詞的點互信息,其點互信息計算式如下:
其中,e為表情符號,we為與e共現(xiàn)的情感詞,PMI(e;we)為e與we的點互信息,p(e,we)、p(e)和p(we)分別表示“e-we”共現(xiàn)對、e和we在“表情符號-情感詞”共現(xiàn)對集合中出現(xiàn)的概率。
所述步驟5)中的表情符號的初始情感值,其初始情感值計算式如下:
其中,e為表情符號,REV(e)為e的初始情感值,wei為與e共現(xiàn)的情感詞,PMI(e;wei)為e與wei的點互信息,EV(wei)為wei的情感值,該值源于大連理工大學信息檢索研究室本體情感詞典及否定詞、程度詞與情感詞的組合情感值計算。
所述步驟6)中的表情符號情感值標準化,其標準化計算式如下:
NEV(e)=arctan(REV(e))·2/π
其中,e為表情符號,NEV(e)為e的標準化情感值,REV(e)為e的初始情感值,該標準化方法當對新數(shù)據(jù)進行標準化時,其他已標準化數(shù)據(jù)不會受影響。
本發(fā)明與現(xiàn)有的技術相比較,具有如下突出特點和優(yōu)點:
第一,認為微博中情感詞對其共現(xiàn)的表情符號的情感值具有一定的影響力,且正比于兩者的點互信息,充分利用了微博中的相關性結構特征;第二,保證了所有與表情符號共現(xiàn)的情感詞都能根據(jù)相關性參與表情符號情感值的計算中,這樣的結果更加準確;第三,對表情符號的初始情感值進行了標準化處理,便于綜合比較與后期使用。
附圖說明
圖1是本發(fā)明的一種基于點互信息的微博表情符號情感計算方法的流程圖。
具體實施方式
以下結合附圖對本發(fā)明的實施例作進一步的說明。
如圖1所示,一種基于點互信息的微博表情符號情感計算方法,其具體步驟如下:
1)爬取大規(guī)模微博數(shù)據(jù)并進行過濾,只保留同時包含表情符號和情感詞的微博;
2)對每篇微博進行分詞、停用詞過濾的預操作,并對前接否定詞、程度詞的情感詞進行組合操作并計算其情感值;
3)對預處理后的微博數(shù)據(jù),抽取出“表情符號-情感詞”共現(xiàn)對并組成共現(xiàn)對集合;
4)對于每個表情符號,計算它在“表情符號-情感詞”共現(xiàn)對集合中與每個共現(xiàn)情感詞的點互信息;
5)利用表情符號與共現(xiàn)情感詞的點互信息以及情感詞的情感值,計算每個表情符號的初始情感值;
6)對所有表情符號的初始情感值進行標準化處理,使其歸一化到[-1,1]區(qū)間。
所述步驟4)中的表情符號與共現(xiàn)情感詞的點互信息,其點互信息計算式如下:
其中,e為表情符號,we為與e共現(xiàn)的情感詞,PMI(e;we)為e與we的點互信息,p(e,we)、p(e)和p(we)分別表示“e-we”共現(xiàn)對、e和we在“表情符號-情感詞”共現(xiàn)對集合中出現(xiàn)的概率。
所述步驟5)中的表情符號的初始情感值,其初始情感值計算式如下:
其中,e為表情符號,REV(e)為e的初始情感值,wei為與e共現(xiàn)的情感詞,PMI(e;wei)為e與wei的點互信息,EV(wei)為wei的情感值,該值源于大連理工大學信息檢索研究室本體情感詞典及否定詞、程度詞與情感詞的組合情感值計算。
所述步驟6)中的表情符號情感值標準化,其標準化計算式如下:
NEV(e)=arctan(REV(e))·2/π
其中,e為表情符號,NEV(e)為e的標準化情感值,REV(e)為e的初始情感值,該標準化方法當對新數(shù)據(jù)進行標準化時,其他已標準化數(shù)據(jù)不會受影響。
實施例
本實施例從新浪微博網(wǎng)站爬取約500萬條微博數(shù)據(jù)作為基本語料庫。
一種基于點互信息的微博表情符號情感計算方法,其步驟如下:
S1.從新浪微博網(wǎng)站爬取約500萬條微博數(shù)據(jù)作為基本語料庫,對語料庫中的微博數(shù)據(jù)進行過濾,只保留同時包含表情符號和情感詞的微博,例如“[哈哈][哈哈]這吉祥物好可愛?。 保^濾后還剩約52萬條微博;
S2.對每篇微博進行分詞、停用詞過濾等預操作,并對前接否定詞、程度詞的情感詞進行組合操作并計算其情感值。例如,微博“[哈哈][哈哈]這吉祥物好可愛??!”經(jīng)處理后為“[哈哈][哈哈]吉祥物好可愛”,組合情感詞“好可愛”的情感值為1.8*5=9.0;
S3.對預處理后的微博數(shù)據(jù),抽取出“表情符號-情感詞”共現(xiàn)對并組成共現(xiàn)對集合。例如,“[哈哈][哈哈]吉祥物好可愛”中有2個“[哈哈]-好可愛”共現(xiàn)對,語料庫中一共有234個“[哈哈]-好可愛”共現(xiàn)對;
S4.對于每個表情符號,計算它在“表情符號-情感詞”共現(xiàn)對集合中與每一個共現(xiàn)情感詞的點互信息。例如,語料庫中有1898770個“表情符號-情感詞”共現(xiàn)對,表情符號“[哈哈]”、組合情感詞“好可愛”出現(xiàn)次數(shù)分別為38329、4691,“[哈哈]-好可愛”共現(xiàn)對共有234個,則“[哈哈]”與“好可愛”的點互信息計算為:
其中,PMI([哈哈];好可愛)為“[哈哈]”與“好可愛”的點互信息,p([哈哈],好可愛)、p([哈哈])和p(好可愛)分別表示“[哈哈]-好可愛”共現(xiàn)對、“[哈哈]”和“好可愛”在“表情符號-情感詞”共現(xiàn)對集合中出現(xiàn)的概率;
S5.利用表情符號與共現(xiàn)情感詞的點互信息以及情感詞的情感值,計算每一個表情符號的初始情感值。例如,利用S4中計算得到的表情符號“[哈哈]”與其所有共現(xiàn)詞的互信息,“[哈哈]”的初始情感值計算為:
其中,REV([哈哈])為“[哈哈]”的初始情感值,wei為與“[哈哈]”共現(xiàn)的情感詞,PMI([哈哈];wei)為“[哈哈]”與wei的點互信息,EV(wei)為wei的情感值;
S6.對所有表情符號的初始情感值進行標準化處理,使其歸一化到[-1,1]區(qū)間。例如,表情符號“[哈哈]”的標準化情感值計算為:
NEV([哈哈])=arctan(REV([哈哈]))·2/π=arctan(2.90218751753)×2/π=0.78875227095
其中,NEV([哈哈])為“[哈哈]”的標準化情感值,REV([哈哈])為“[哈哈]”的初始情感值。
本文中表情符號標準化情感值的范圍為[-1,1],由此可見,表情符號“[哈哈]”的情感值處于較高的正向情感區(qū)間,說明在實際應用中,表情符號“[哈哈]”主要用于較為積極正向的情感表達中。