王晰墨
(沈陽(yáng)化工大學(xué) 遼寧省沈陽(yáng)市 110000)
當(dāng)代社會(huì)信息快速傳播,人們?cè)絹?lái)越愛上網(wǎng)瀏覽新聞,發(fā)表評(píng)論,同時(shí)也深受網(wǎng)上信息的影響。例如,在去飯店吃飯的路上,我們就會(huì)首先打開評(píng)論軟件看一下大家對(duì)這家飯店的評(píng)論和態(tài)度。在買一件東西的時(shí)候,也會(huì)下意識(shí)的看一下其他人對(duì)東西的評(píng)論。而且我們也越來(lái)越愛在各種社交軟件上發(fā)表自己的動(dòng)態(tài),發(fā)表自己的日常生活。而微博正是當(dāng)代最熱門的軟件之一。但是微博上的信息廣泛且雜亂,沒有什么規(guī)律,并且用語(yǔ)隨意。而情感分析技術(shù)能快速且準(zhǔn)確的提取信息,提取主題,對(duì)輿論進(jìn)行監(jiān)督,快速抓取情感的傾向,所以情感分析的研究意義深遠(yuǎn)。
對(duì)情感詞最簡(jiǎn)單的分類分析是通過詞語(yǔ)本身的屬性來(lái)區(qū)別的,比如可以將詞語(yǔ)的正負(fù)屬性作為其中的判決條件之一,如果這個(gè)詞是積極的,那么以+1 作為其詞語(yǔ)得分,相反的,如果這個(gè)詞表現(xiàn)的是消極的,那么就用-1 作為其詞語(yǔ)的得分。最后我們將句子里所有的單詞的情感得分進(jìn)行簡(jiǎn)單的相加,就會(huì)得到一個(gè)情感總的分?jǐn)?shù)。最后以情感總分作為整句話的情感定性。有的文章也對(duì)情感進(jìn)行更細(xì)化的劃分,分為特別喜歡的,喜歡的,無(wú)感的,討厭的,超級(jí)討厭的。很顯然,這種計(jì)算方法十分的片面,它忽略了上下文之間的銜接性,也忽略了情感之間的聯(lián)系性以及在一個(gè)句子中看似像是中性的詞匯其實(shí)是有著自己的感情傾向的。比如,在這樣一個(gè)建議的模型中,“not”作為一個(gè)消極詞,其得分為-1,相反的“good”作為一個(gè)積極詞匯,其得分為+1。然而當(dāng)“not good”同時(shí)使用時(shí),該語(yǔ)句會(huì)被分類到中性詞匯中,但是在實(shí)際應(yīng)用中,人們更傾向于將“not good”分到消極詞語(yǔ)一類。
另一種常見方法是就是利用機(jī)器學(xué)習(xí)算法,例如Adaboost 分類器、支持向量機(jī)、線性回歸等方法,通過機(jī)器學(xué)習(xí)的方法可以預(yù)測(cè)未知數(shù)據(jù)的情感狀況。但是,這類有監(jiān)督學(xué)習(xí)的機(jī)器學(xué)習(xí)方法,在實(shí)際應(yīng)用中,需要根據(jù)已知的情感數(shù)據(jù)作為其訓(xùn)練集用作參考,并且這類方法的對(duì)數(shù)據(jù)集的規(guī)模有較高的要求,需要大量的訓(xùn)練,這大大增加了工作難度。而非監(jiān)督的學(xué)習(xí)適用于樣本數(shù)量大,且沒有類別的狀態(tài)。
如圖1 所示,神經(jīng)網(wǎng)絡(luò)不需要我們告訴計(jì)算機(jī)如何處理問題,而是通過從觀測(cè)數(shù)據(jù)中學(xué)習(xí),計(jì)算出他自己的解決方案,自動(dòng)地從數(shù)據(jù)中學(xué)習(xí)。神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如下:
輸入層的個(gè)數(shù)取決于樣本的特征數(shù)量。X1,X2,,,Xm 為輸入個(gè)數(shù)。
隱藏層就像是“”黑盒子“把輸入的數(shù)據(jù)特征進(jìn)行抽象,能更好的線性劃分。
圖3:預(yù)測(cè)食物詞(藍(lán)色)、運(yùn)動(dòng)詞(紅色)和天氣詞(綠色)的簇
圖4:基于tweets 訓(xùn)練數(shù)據(jù)的logistic 分類器ROC 曲線
輸出期望的特征分類。
本文提出了一種基于Word2Vec 的情感分析新方法,該方法可以對(duì)語(yǔ)境、語(yǔ)義進(jìn)行捕捉,并且可以對(duì)數(shù)據(jù)規(guī)模進(jìn)行壓縮。Word2Vec 包含有兩種不同的方法:Continuous Bag of Words(CBOW)和Skip-gram。
CBOW:可以根據(jù)上下文之間的銜接關(guān)系來(lái)預(yù)測(cè)當(dāng)前詞語(yǔ)的幾率。
Skip-gram:通過當(dāng)前詞語(yǔ)來(lái)對(duì)上下文的概率進(jìn)行預(yù)判。這兩種方法都是利用人工神經(jīng)網(wǎng)絡(luò)作為其分類算法的基礎(chǔ)。在大量的訓(xùn)練之后就得到了每個(gè)單詞的最優(yōu)向量。
通過每個(gè)單詞的最優(yōu)向量即可獲得到上下文之間的關(guān)聯(lián)信息。然后再利用公式來(lái)尋找各個(gè)單詞之間的關(guān)系。利用詞向量可以對(duì)未知的數(shù)據(jù)進(jìn)行情感狀態(tài)的預(yù)測(cè)。這種算法模型的優(yōu)點(diǎn)不僅變現(xiàn)在可以銜接上下文語(yǔ)境信息,還可以壓縮數(shù)據(jù)規(guī)模,經(jīng)實(shí)驗(yàn)檢驗(yàn)500 個(gè)單詞左右的詞匯量可以達(dá)到常規(guī)分類算法20000 詞匯規(guī)模的效果。因?yàn)樯窠?jīng)網(wǎng)絡(luò)可以對(duì)語(yǔ)句中的特征信息進(jìn)行提取,可以減少很多認(rèn)為的工作。但是對(duì)于不同長(zhǎng)度的文字段落,我們就只能將所有詞向量的平均值作為一個(gè)參考值,從而對(duì)整個(gè)文本進(jìn)行分類。
當(dāng)通過神經(jīng)網(wǎng)絡(luò)訓(xùn)練,對(duì)情感文本進(jìn)行分類時(shí),我們可以將各個(gè)段落向量作為一個(gè)分類單元輸入到情感分類器中,而不用對(duì)單個(gè)的詞語(yǔ)進(jìn)行分別處理。這也是當(dāng)前情感分析領(lǐng)域最優(yōu)秀的方法。經(jīng)實(shí)驗(yàn)證明,將此方法應(yīng)用到微博情感分析分類時(shí),該模型分類錯(cuò)誤的概率僅為5.32%。在python軟件庫(kù)中word2Vec方法是可以調(diào)用的。
用word2Vec分類方法可以將各個(gè)詞語(yǔ)用高維向量空間來(lái)表示,用來(lái)承接文本中上下文之間的關(guān)系。首先使用word2vec 方法,對(duì)情感文本進(jìn)行訓(xùn)練提取出各個(gè)詞向量的權(quán)重,最后根據(jù)情感詞典對(duì)詞匯的詞性進(jìn)行評(píng)價(jià)并篩選出各文本單詞的有用性特征,最后引入人工神經(jīng)網(wǎng)絡(luò)對(duì)文本的特征值進(jìn)行訓(xùn)練和預(yù)測(cè),最終即可達(dá)到情感分類的目的。而word2Vec 方法則是為文本情感分類提供了一種新的聚類思路。
圖2 中黃色區(qū)域?yàn)槭窒矚g,綠色為喜歡,紫色為一般,藍(lán)色為不喜歡。由此可看出用word2vec 作為基礎(chǔ)方法是可行的。
在訓(xùn)練完成后,只要輸入想要聚類的詞,即可索引到與其意思最為接近的詞組。
情感詞典的構(gòu)建:在國(guó)內(nèi)的知網(wǎng)中,中文情感分析用到的詞語(yǔ)集為:
SO-PMI;其中PMI 指的是點(diǎn)互信息,PMI(a,b)=p(a,b)/(p(a)p(b));假設(shè)有一個(gè)句子的集合,總量為N,其中出現(xiàn)a 的次數(shù)為A,出現(xiàn)b 的次數(shù)為B;a 和b 同時(shí)出現(xiàn)在同一句話中的次數(shù)為C,則有p(a)=A/N,p(b)=B/N,p(a,b)=C/N 帶入到公式中就可以算出其PMI 了。
從圖3 可以很好的看出,通過word2vec 情感文本分類新方法可以將不相關(guān)的單詞進(jìn)行很好的分離,并將分離后的單詞進(jìn)行聚類處理。
經(jīng)訓(xùn)練后得到其ROC 曲線如圖4 所示。
當(dāng)我們利用Scikit-Learn 構(gòu)建模型并進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí),得到的預(yù)測(cè)精度為87%。我們發(fā)現(xiàn)當(dāng)增加或者刪除標(biāo)點(diǎn)符號(hào)時(shí),預(yù)測(cè)精度會(huì)有所影響,這就說(shuō)明在使用Word2Vec 模型做聚類處理時(shí),能夠提取到文本中的標(biāo)點(diǎn)符號(hào)所攜帶的信息。在處理單個(gè)的詞語(yǔ)時(shí),如果對(duì)數(shù)據(jù)做更多的預(yù)處理工作并訓(xùn)練更長(zhǎng)時(shí)間,都能夠使模型的預(yù)測(cè)精度提高。經(jīng)過實(shí)現(xiàn)證明得出結(jié)論,在使用人工神經(jīng)網(wǎng)絡(luò)(ANN)模型時(shí)可以使預(yù)測(cè)精度再提高五個(gè)百分比達(dá)到92%左右。
Word2Vec 具有實(shí)用性和便捷性。使用一個(gè)非常容易而且簡(jiǎn)便的算法,我們就可以獲取到非常豐富的詞向量和段落向量,然后就可以把這些向量數(shù)據(jù)應(yīng)用到各種各樣的 NLP 應(yīng)用之中,兩者的結(jié)合大大提高了精確度。