劉曉彤 田大鋼
摘 要:情感分析可以幫助商家了解客戶喜好從而生產(chǎn)出滿意度更高的商品,也可以監(jiān)督網(wǎng)上輿論等。為此,基于傳統(tǒng)機器學(xué)習(xí)方法,加入深度學(xué)習(xí)模塊,對在線評論進行情感分析與對比。在詞向量訓(xùn)練模塊中引入Word2vec模型,用高維向量表示詞語、句子,既可防止過度擬合問題,又可減少訓(xùn)練參數(shù)個數(shù),提高訓(xùn)練效率。將得到的句向量作為輸入代入機器學(xué)習(xí)模型(MLP、SVM、樸素貝葉斯等)與深度學(xué)習(xí)模型(CNN、LSTM、BILSTM等),比較實驗結(jié)果,提出優(yōu)化方向。結(jié)果表明,基于深度學(xué)習(xí)的情感分析模型準(zhǔn)確率明顯高于單一機器學(xué)習(xí)模型,但是深度學(xué)習(xí)需要大量語料,對實驗機器要求也較高,很難完全展現(xiàn)其魅力。
關(guān)鍵詞:情感分析;深度學(xué)習(xí);機器學(xué)習(xí);Word2vec模型
DOI:10. 11907/rjdk. 182576
中圖分類號:TP301文獻標(biāo)識碼:A文章編號:1672-7800(2019)002-0001-04
Abstract:Sentiment analysis is very important,it can help merchants understand the preferences of customers so that they can produce more satisfying goods, and it can also supervise online public opinion. This paper is mainly based on the traditional machine learning method to give the results and do the comparison by employing the deep learning module. A total of two modules can be divided. First, the word vector training module introduces the Word2vec model, and uses high-dimensional vectors to represent words and sentences. Here, the pre-trained Word2vec model is introduced, which not only prevents the over-fitting problem, but also reduces the number of training parameters and improves the training efficiency. The second is to enter the obtained sentence vector as the input into the machine learning model (MLP, SVM, Na?ve Bayes, etc), deep learning model (CNN, LSTM, BILSTM, etc), compare the experimental results, and propose the optimization direction. The accuracy of sentiment analysis models based on deep learning is significantly higher than that of a single machine learning model, but deep learning requires a large amount of corpus, and the requirements for experimental machines are relatively high. It is difficult to demonstrate its charm fully.
Key Words: sentiment analysis; deep learning; machine learing; Word2vec model
0 引言
情感分析又稱意見挖掘、傾向分析,是自然語言處理領(lǐng)域的一個基礎(chǔ)任務(wù),其目的是利用機器提取人們對某人某物或者某事件的態(tài)度是正向支持還是反向反對,從而發(fā)現(xiàn)潛在問題并加以解決,或者進行預(yù)測以預(yù)防新問題產(chǎn)生。
近年來,互聯(lián)網(wǎng)迅速發(fā)展,人們?nèi)粘I疃喾矫娑茧x不開網(wǎng)絡(luò),微博、電子商務(wù)平臺等熱門應(yīng)用吸引了大量用戶,由此產(chǎn)生大量用戶參與的對于任務(wù)、事件、產(chǎn)品等有價值的評論信息。如此一來,也影響了社會信息傳播格局[1]。這些評論信息大都包含了人們的情感色彩和情感傾向,如喜、怒、哀、樂以及批評、贊許。隨著新興社交平臺的發(fā)展,網(wǎng)民數(shù)量呈爆炸式增長,大量評論信息迅速傳播[2]。對在線評論進行情感分析,實施急需的網(wǎng)絡(luò)安全監(jiān)管有重大意義[3-4]。但是,面對如此海量的信息,僅僅依靠人工挖掘是不夠的,因此如何高效地進行情感分析、意見挖掘變得至關(guān)重要。
目前中文文本情感分析主要分為三大類:第一類是基于詞典的詞典匹配法,需要很完備的高質(zhì)量詞典支持。常見的情感詞典包括WordNet[5]、General Inquier(GI)等。Kim等[6-7]利用情感詞典對種子情感詞進行擴展,并得到對種子情感詞分析影響較大的結(jié)論。第二類是基于機器學(xué)習(xí)的情感分析,機器學(xué)習(xí)極度依賴語料,將手機語料訓(xùn)練出來的分類器用來給書評分類注定要失敗,但是其整體準(zhǔn)確率還是非常樂觀的。第三類則是運用近來比較火熱的深度學(xué)習(xí)算法,在有大量全面訓(xùn)練語料的情況下,深度學(xué)習(xí)在情感分析方面的成效非??捎^。Bengio 等[8]提出采用神經(jīng)網(wǎng)絡(luò)構(gòu)建分布式詞向量,Mikolov等[9]提出了Word2ve模型,Kim等[10]提出采用 Word2vec預(yù)訓(xùn)練得到詞向量。隨后,梁軍等[11]利用深度學(xué)習(xí)方法進行中文微博情感分析工作。
21世紀(jì)初,情感分析就已經(jīng)在自然語言處理領(lǐng)域研究中活躍起來,尤其是在數(shù)據(jù)挖掘、文本挖掘等方面表現(xiàn)極為突出。傳統(tǒng)的無監(jiān)督方面主要是以情感詞典為代表,為了準(zhǔn)確識別情感詞,肖江等[12]構(gòu)建了基準(zhǔn)情感詞典以及相關(guān)領(lǐng)域情感詞典,其主要核心是采用相似度計算確定情感詞的情感傾向。文獻[13]也是基于詞典的情感分析,采用的方法則是擴展點互信息So-PMI算法,該方法機械地將分好詞后的文本信息與情感字典匹配從而確定其情感傾向,其結(jié)果雖然優(yōu)化了,但是依然存在很大缺陷。比如:“好開心啊,我中了五百萬!”情感詞典匹配法會把此處的“好”和“開心”都標(biāo)記為情感詞,而實際上“好”不過是一個程度副詞用來修飾“開心”而已?;谠~典的情感會因為詞典匹配語義表達的豐富性而出現(xiàn)很大誤差,而且分類準(zhǔn)確率過于依賴詞典,而新興詞語太多,對于詞典的補充也太浪費時間人力。由此可見,傳統(tǒng)的情感詞典方法在情感分析中表現(xiàn)不是很理想。機器學(xué)習(xí)則需要大規(guī)模人工標(biāo)注工作,并通過計算機進行訓(xùn)練求解,其分類結(jié)果過于依賴標(biāo)注數(shù)據(jù)集。好的分類器就要依賴一個好的數(shù)據(jù)集,如此不但可大量減少人工工作,節(jié)省人力時間,而且分類結(jié)果上也較為可觀。Catal等[14]采用樸素貝葉斯算法、支持向量機、Bagging算法等多種分類器進行情感分析,最終利用投票算法確定分類的最終結(jié)果。Liu等[15-16]將 Co-training 協(xié)同訓(xùn)練算法與 SVM 相結(jié)合進行推文的情感分析,Co-training 協(xié)同訓(xùn)練算法可以實現(xiàn)語料半自主標(biāo)注,省時省力,再利用 SVM 算法實現(xiàn)推文的情感分類。但是機器學(xué)習(xí)模型在判斷文檔和句子的情感傾向時,跟情感詞典法一樣,極有可能忽略文本中不帶感情色彩的情感詞。卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種基于卷積運算的神經(jīng)網(wǎng)絡(luò),隨著研究深入,人們發(fā)現(xiàn)CNN也可以用于自然語言處理任務(wù),尤其是分類任務(wù),有人提出基于CNN模型的情感分析,其是使用CNN學(xué)習(xí)句子的向量表示,然后再進行分類任務(wù)。李陽輝等[17]提出基于深度學(xué)習(xí)的細(xì)粒度情感分析,分析對象來自不同語料,包括評價詞典、微博、影評、知乎等,分析粒度從詞語級別到篇章級別。 時至今日,在谷歌Word2vec工具開源后,詞向量的學(xué)習(xí)方法多種多樣,結(jié)合深度學(xué)習(xí)方法進行建模在自然語言處理多個領(lǐng)域取得了巨大突破[18-20]。目前最有效和流行的詞向量表示方式依然是Word2vec,其訓(xùn)練方法簡單,直接調(diào)用python工具中Gennsim的Word2vec方法即可,也是本文選擇用來訓(xùn)練詞向量的工具。
1 數(shù)據(jù)預(yù)處理
預(yù)處理主要是對數(shù)據(jù)進行標(biāo)準(zhǔn)化處理,并且訓(xùn)練詞向量,數(shù)據(jù)預(yù)處理活動可大致表示如圖1所示。
1.1 數(shù)據(jù)集
本文訓(xùn)練情感分析模型所用數(shù)據(jù)來自于網(wǎng)上各種新聞評論和商品評論(購買和爬蟲獲?。渲泄?1個大類,每類抽取2 000條數(shù)據(jù),總計22 000條語料。格式如圖2所示。
1.2 數(shù)據(jù)清洗及分詞
數(shù)據(jù)清洗是指將收集到的數(shù)據(jù)集整理成后面實驗可用的形式,其中工作主要包括繁簡轉(zhuǎn)化、停用詞與特殊符號去除。中文繁簡轉(zhuǎn)換工作很容易實現(xiàn),可以依靠Linux系統(tǒng)中自帶的OpenCC工具,直接對數(shù)據(jù)集文件執(zhí)行opencc命令即可。
命令行輸入:opencc-i inputfile.txt-o outputfile.txt-c zht2zhs.ini
其中inputfile.txt是輸入等待轉(zhuǎn)換的數(shù)據(jù)集,outputfile.txt是轉(zhuǎn)換好的輸出文件名。對于數(shù)據(jù)集中的特殊符號則需用Python正則化方法,即re正則表達式。
數(shù)據(jù)清洗后即可以進行分詞操作,本文采用的是分詞工具是“結(jié)巴”分詞,支持3種分詞模式:一是精確模式,它試圖將句子最精確地切開,適合文本分析;二是全模式,它把句子中所有可以成詞的詞語都掃描出來, 速度非???,但是不能解決歧義;三是搜索引擎模式,在精確模式基礎(chǔ)上,對長詞再次切分,提高召回率,適合用于搜索引擎分詞。舉例如下:
1.3 情感詞向量
建模環(huán)節(jié)中最重要一步是特征提取,在自然語言處理中也不例外。為了將一個句子轉(zhuǎn)化成可以用數(shù)字表示的有效實現(xiàn),有人提出,可以把每個詞語都用一個對應(yīng)數(shù)字表示,而且相近詞語給予相近編號,該方法看似解決了問題,但事實結(jié)果并不樂觀,因為忽略了語義因素。語義不是單一的,而應(yīng)該是多維的,比如我們談到“家園”,有人會想到近義詞“家庭”,從“家庭”又會想到“親人”,其都是有相近意思的詞語;另外,有的人從“家園”會想到“地球”,從“地球”又會想到“火星”,換句話說,“親人”、“火星”都可以看作是“家園”的二級近似,但是“親人”跟“火星”本身沒有什么明顯聯(lián)系。Word2vec正好解決了上述問題,簡單說,Word2vec可以用高維向量表示詞語,并把相近意思的詞語放在相近位置,而且用的是實數(shù)向量(不局限于整數(shù))。只需要有大量某語言的語料,就可以用來訓(xùn)練模型,獲得詞向量。實現(xiàn)Word2vec,讀者可通過Google官方提供的C語言源代碼自行編譯,Python的Gensim庫中也提供了現(xiàn)成的Word2vec作為子庫。部分代碼如下:
2 實驗與對比
將上述整理好的數(shù)據(jù)按4∶1分成訓(xùn)練集與測試集,并輸入各個分類器,采用情感分析模型進行實驗對比,大致流程如圖3所示。
2.1 模型代碼與參數(shù)設(shè)置
根據(jù)不同算法構(gòu)建不同分類器,用測試集檢驗各種算法分類器的準(zhǔn)確度。傳統(tǒng)的機器學(xué)習(xí)使用sklearn實踐,深度學(xué)習(xí)則采用keras工具,其代碼部分很相似,下面給出深度學(xué)習(xí)(LSTM、BILSTM)模型偽代碼。
2.2 實驗結(jié)果與對比
傳統(tǒng)的機器學(xué)習(xí)選取樸素貝葉斯、SVM兩個分類器進行實驗與對比,而深度學(xué)習(xí)則用到了詞向量表示方法Word2vec和深度網(wǎng)絡(luò)CNN、LSTM(后面可以嘗試其改進版BILSTM),最后將深度學(xué)習(xí)與機器學(xué)習(xí)相結(jié)合,構(gòu)建Word2vec+SVM模型,并進行實驗對比。實驗主要模型結(jié)構(gòu)和部分結(jié)果分別見圖4、圖5。
實驗結(jié)果顯示,LSTM 需要訓(xùn)練的參數(shù)個數(shù)遠小于 CNN,但訓(xùn)練時間長于 CNN,LSTM的結(jié)果也不如其它分類器或模型好,是由訓(xùn)練數(shù)據(jù)不全、過少導(dǎo)致的,因此要想讓 LSTM 優(yōu)勢得到發(fā)揮,首先要保證訓(xùn)練數(shù)據(jù)量。加入Word2vec模型后,結(jié)果都得到了優(yōu)化,證明了其有效性。
各模型以及分類器準(zhǔn)確率如表1所示。
3 結(jié)語
本文情感分析方法是基于傳統(tǒng)機器學(xué)習(xí)與深度學(xué)習(xí)的有監(jiān)督模型,需要大量語料訓(xùn)練模型,但事實卻是中文環(huán)境下有標(biāo)簽的數(shù)據(jù)太少,作者本身獲取數(shù)據(jù)的能力也有限,所以整體實驗結(jié)果沒有達到預(yù)期。尤其是深度學(xué)習(xí)模型,受到數(shù)據(jù)的極大限制。所以,未來情感分析領(lǐng)域要加強對無監(jiān)督或者半監(jiān)督方法的研究,使大量有效的無標(biāo)簽數(shù)據(jù)派上用場。
參考文獻:
[1] 丁兆云,賈焰,周斌. 微博數(shù)據(jù)挖掘研究綜述[J]. 計算機研究與發(fā)展,2015,51(4):691-706.
[2] 李洋,陳毅恒,劉挺. 微博信息傳播預(yù)測研究綜述. 軟件學(xué)報,2016,27(2):247-263.
[3] 陳曉宇. 我國網(wǎng)絡(luò)監(jiān)管制度初探[J]. 福建公安高等專科學(xué)校學(xué)報,2004(2):62-65.
[4] 王樂,王勇,王東安,等. 社交網(wǎng)絡(luò)中信息傳播預(yù)測的研究綜述[J]. 信息網(wǎng)絡(luò)安全,2015(5):47-55.
[5] MILLER G A,BECKWITH R,F(xiàn)ELLBAUM C,et al. WordNet:an on-line lexical database[J]. International Journal of Lexicography,1990,3( 4):235-244.
[6] KIM S M,HOVY E. Automatic detection of opinion bearing words and sentences[C]. Berlin: Proceedings of the International Joint Conference on Natural Language Processing,2005.
[7] KIM S M ,HOVY E. Identifying and analyzing judgment opinions[C]. Proceedings of the Joint Human Language Technology/North American Chapter of the ACL Conference,2006:200-207.
[8] BENGIO Y,DUCHARME R,VINCENT P, et al. A neural probabilistic language model[J]. Journal of Machine Learning Research,2003,3:1137-1155.
[9] MIKOLOV T,SUTSKEVER I,CHEN K,et al. Distributed representations of words and phrases and their compositionality [C]. Proc of the NIPS,2013:3111-3119.
[10] KIM Y. Convolutional neural networks for sentence classification[C]. Proc of the EMNL,2014.
[11] 梁軍,柴玉梅,原慧斌,等. 基于深度學(xué)習(xí)的微博情感分析[J]. 中文信息學(xué)報, 2014,28(5):155-161.
[12] 肖江,丁星,何榮杰. 基于領(lǐng)域情感詞典的中文微博情感分析[J]. 電子設(shè)計工程,2015 (12): 18-21.
[13] 陳曉東. 基于情感詞典的中文微博情感傾向分析研究[D]. 武漢:華中科技大學(xué),2012.
[14] CATAL C, NANGIR M. A sentiment classification model based on multiple classifiers[J]. Applied Soft Computing,2017(50): 135-141.
[15] LIU S, LI F, LI F, et al. Adaptive co-training SVM for sentiment classification on tweets[C]. Proc of ACM International Conference on Information & Knowledge Management, 2013: 2079-2088.
[16] LIU P,MENG H.SeemGo:conditional random fields labeling and maximum
entropy classification for aspect based sentiment analysis[C]. Proc of International Workshop on Semantic Evaluation,2014:527-531.
[17] 李陽輝,謝明,易陽. 基于深度學(xué)習(xí)的社交網(wǎng)絡(luò)平臺細(xì)粒度情感分析[J]. 計算機應(yīng)用研究,2017,34(3):743-747.
[18] TURIAN J,RATINOV L,BENGIO Y. Word representations:a simple and general method for semi-supervised learning[C]. Proceedings of the Meeting of the Association for Computational Linguistics,2010:384-394.
[19] COLLOBERT R,WESTON J,BOTTOU L,et al. Natural language processing (almost) from scratch[J]. Journal of Machine Learning Research,2011,12(1):2493-2537.
[20] HUANG E H,SOCHER R,MANNIng C D,et al. Improving word representations via global context and multiple word prototypes[C]. Meeting of the Association for Computational Linguistics,2012:873-882.
(責(zé)任編輯:何 麗)