金蕾 宋文廣
摘要:中文文本的情感分類是文本分類的重要領(lǐng)域,文章通過(guò)文本數(shù)據(jù)的采集、數(shù)據(jù)處理、文本數(shù)據(jù)向量化、分類器分類這四個(gè)步驟展示了文本分類的過(guò)程。采用TF-IDF和Word2Vec兩種特征提取方式在同一種分類器下的分類效果,得出更適合實(shí)驗(yàn)數(shù)據(jù)集的特征提取方法。隨后探討了隨機(jī)森林、SVM、KNN、AdaBoost四種文本分類算法在數(shù)據(jù)集上的表現(xiàn)效果,對(duì)四種分類效果進(jìn)行了分析和比較。
關(guān)鍵詞:情感分類;特征提??;隨機(jī)森林;SVM;KNN;AdaBoost
中圖分類號(hào):TP181 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)11-0290-03
Abstract: Sentiment classification of Chinese text is an important field of text classification. The article shows the process of text classification through four steps: text data collection, data processing, text data vectorization and classifier selection. By comparing the classification effects of TD-IDF and Word2Vec in the same classifier, a more suitable feature extracting method was obtained. Then, the performance effects of four text classification algorithms including random forest, SVM, KNN and AdaBoost on the data set are discussed, and the four classification effects are analyzed and compared.
Key words: sentiment classification; feature extraction; random forest; SVM;KNN; AdaBoost
1引言
隨著近年來(lái)網(wǎng)絡(luò)信息技術(shù)的飛速發(fā)展,網(wǎng)上購(gòu)物已經(jīng)成為人們生活中不可或缺的一部分。消費(fèi)者在無(wú)法直接體驗(yàn)商品的時(shí)候,商品的評(píng)論數(shù)據(jù)就為消費(fèi)者決策提供了很強(qiáng)的參考性。通過(guò)對(duì)評(píng)論數(shù)據(jù)進(jìn)行情感分類,生產(chǎn)者可以了解購(gòu)買商品的客戶對(duì)商品的滿意度,并對(duì)下一步的產(chǎn)銷計(jì)劃做出調(diào)整。
文本情感分析,又稱為傾向性分析,是對(duì)帶有情感色彩的主觀性文本進(jìn)行分析、處理、歸納、推理的過(guò)程[1]。文本情感分析按照處理文本粒度從小到大的方式可以劃分為詞語(yǔ)、句子、段落、篇章?,F(xiàn)階段情感分析方法主要有兩大類:一是基于詞典的情感分析,根據(jù)句子中的情感詞程度的不同賦予不同的權(quán)值,計(jì)算句子、段落、篇章的情感分值[2],從而判定文本的傾向性。二是基于機(jī)器學(xué)習(xí)的情感分析,主要是將情感分析問(wèn)題看成一個(gè)二分類的問(wèn)題,對(duì)文本內(nèi)容進(jìn)行結(jié)構(gòu)化的處理,輸入到分類模型中進(jìn)行訓(xùn)練,對(duì)測(cè)試數(shù)據(jù)用模型來(lái)預(yù)測(cè)結(jié)果。
本文對(duì)某國(guó)外一款手機(jī)的評(píng)論信息進(jìn)行數(shù)據(jù)爬取及處理,通過(guò)機(jī)器學(xué)習(xí)的方法對(duì)數(shù)據(jù)進(jìn)行情感傾向性分析,最終分類的正確率達(dá)到了86.4%,在評(píng)論數(shù)據(jù)集上表現(xiàn)出較好的分類效果。
2 數(shù)據(jù)獲取及處理
2.1 數(shù)據(jù)獲取
各大購(gòu)物網(wǎng)站上有很多購(gòu)買者對(duì)購(gòu)買的商品使用后發(fā)表的評(píng)論,采用Python爬蟲對(duì)該手機(jī)相關(guān)的評(píng)論數(shù)據(jù)進(jìn)行采集。經(jīng)過(guò)對(duì)目標(biāo)內(nèi)容進(jìn)行分析后,發(fā)現(xiàn)請(qǐng)求的目標(biāo)地址的規(guī)律,通過(guò)urllib庫(kù)中的request請(qǐng)求目標(biāo)地址,返回json字符串,對(duì)此進(jìn)行解析,從而得到評(píng)論的內(nèi)容,寫入CSV文件中,數(shù)據(jù)采集的流程如圖1所示。
爬蟲程序采集到的正向情緒評(píng)論和負(fù)向情緒評(píng)論示例如表1所示。
2.2 數(shù)據(jù)處理
文本數(shù)據(jù)的預(yù)處理主要包括分詞和去停用詞兩個(gè)步驟[3]。
中文分詞是指將一個(gè)漢字序列劃分成一個(gè)個(gè)單獨(dú)的詞。中文在表現(xiàn)形式上和英文有明顯的不同,英文的每個(gè)單詞之間會(huì)用空格進(jìn)行分隔[4],而中文使用標(biāo)點(diǎn)符號(hào)進(jìn)行句子的分隔,對(duì)組成句子的詞并沒(méi)有形式上的分隔符。本文采用jieba分詞對(duì)評(píng)論數(shù)據(jù)進(jìn)行分詞處理。
停用詞是指一些完全沒(méi)有用或者沒(méi)有意義的詞。本文使用的是哈工大停用詞表,去除掉評(píng)論數(shù)據(jù)中的無(wú)意義的詞語(yǔ),可以更好地判斷評(píng)論數(shù)據(jù)要表達(dá)的情感傾向。
3 特征提取
特征提取是指將一組原始化的特征項(xiàng)轉(zhuǎn)化成具有明顯物理意義、統(tǒng)計(jì)意義的特征。由于文本是非結(jié)構(gòu)化的語(yǔ)言,計(jì)算機(jī)很難直接對(duì)它進(jìn)行運(yùn)行和處理,這時(shí)候我們就需要將文本轉(zhuǎn)化成能夠被計(jì)算機(jī)識(shí)別的機(jī)構(gòu)化的表示,這個(gè)過(guò)程就相當(dāng)于文本的特征提取。
常用的文本提取方法有以下三種:
(1)CountVectorizer通過(guò)計(jì)數(shù)將文本中的詞語(yǔ)轉(zhuǎn)化成詞頻向量。CountVectorizer中考慮每種詞匯在訓(xùn)練文本中出現(xiàn)的次數(shù),沒(méi)有考慮詞語(yǔ)之間的相互關(guān)系和詞語(yǔ)的在句子中的重要性。
(2)詞頻-逆向文件頻率(TF-IDF)是統(tǒng)計(jì)每個(gè)詞出現(xiàn)的詞頻(TF)再乘以一個(gè)逆文檔頻率(IDF)。逆向文檔頻率是將總的文檔數(shù)目除以包含該詞語(yǔ)的文檔數(shù),再取以10為底的對(duì)數(shù)。逆向文檔頻率可以衡量一個(gè)詞語(yǔ)的重要性。TF-IDF能夠過(guò)濾掉常見(jiàn)的詞語(yǔ),保留句子中重要的詞語(yǔ)。
(3)Word2Vec是使用詞向量來(lái)表示文本信息,是通過(guò)一個(gè)嵌入空間來(lái)表示文本的相似性,文本之間相似性越高,空間上的距離就越近。Word2Vec中有兩個(gè)模型,一個(gè)是CBOW,它是通過(guò)給定的上下文來(lái)推測(cè)輸入的詞語(yǔ);另一個(gè)是Skip-gram,它與CBOW剛好相反,是通過(guò)輸入的詞語(yǔ)預(yù)測(cè)上下文。Word2Vec首先生成模型,然后再通過(guò)模型將文本向量化。
本文分別采用了IF-IDF算法和Word2Vec兩種方法對(duì)評(píng)論文本進(jìn)行向量化,可以通過(guò)對(duì)比實(shí)驗(yàn)結(jié)果來(lái)判斷哪種方法對(duì)于本文使用的數(shù)據(jù)集能產(chǎn)生更好的分類效果。
4 情感分類
4.1 分類模型
文章使用了KNN、隨機(jī)森林、SVM、AdaBoost四種算法來(lái)進(jìn)行分類,同過(guò)對(duì)比能夠看出不同算法在本文數(shù)據(jù)集上的分類效果。
KNN算法是根據(jù)樣本周圍的一個(gè)或者多個(gè)鄰近樣本來(lái)確定自身所屬的類別的,核心思想就是如果一個(gè)樣本點(diǎn)在特征空間中的K個(gè)最相鄰的樣本大多數(shù)屬于某一個(gè)類別,那么該樣本點(diǎn)就是屬于這個(gè)類別[5]。KNN算法適用于類域交叉或者重疊較多的待分類的樣本集。
隨機(jī)森林是以決策樹為基學(xué)習(xí)器構(gòu)成的集成算法,在決策樹的訓(xùn)練過(guò)程中加入了隨機(jī)屬性選擇。決策樹在構(gòu)建時(shí)是通過(guò)在當(dāng)前結(jié)點(diǎn)的所有屬性結(jié)點(diǎn)中選擇一個(gè)最優(yōu)的屬性,隨機(jī)森林是對(duì)基決策樹的每個(gè)結(jié)點(diǎn),從該結(jié)點(diǎn)的所有屬性中隨機(jī)選擇一個(gè)包含K個(gè)屬性的子集,然后再?gòu)淖蛹羞x擇一個(gè)最優(yōu)屬性進(jìn)行劃分[6]。隨機(jī)森林算法簡(jiǎn)單、容易實(shí)現(xiàn)、計(jì)算開銷小。
支持向量機(jī)(SVM)通過(guò)將二維線性不可分的樣本空間映射到多維空間中,使其在特征空間中變得可分。支持向量機(jī)在小樣本、線性不可分、高維模式識(shí)別上表現(xiàn)出優(yōu)勢(shì)。
AdaBoost的思想是針對(duì)同一訓(xùn)練集訓(xùn)練不同的弱分類器,然后將這些弱分類器集合起來(lái),組成一個(gè)強(qiáng)分類器。AdaBoost算法是通過(guò)改變數(shù)據(jù)分布來(lái)實(shí)現(xiàn)的,根據(jù)每次訓(xùn)練集之中每個(gè)樣本的分類是否正確,以及上次的總體分類的準(zhǔn)確率,來(lái)確定每個(gè)樣本的權(quán)值。將修改過(guò)權(quán)值的新數(shù)據(jù)集送給下層分類器進(jìn)行訓(xùn)練,最后將每次訓(xùn)練得到的分類器最后融合起來(lái),作為最后的決策分類器[7]。AdaBoost算法能夠排除一些不重要數(shù)據(jù)的特征的干擾。
4.2 模型性能評(píng)價(jià)
不同的分類模型有不同的實(shí)驗(yàn)結(jié)果,本文通過(guò)計(jì)算不同分類模型的精度、查準(zhǔn)率、查全率和F1值,來(lái)判斷分類模型在該數(shù)據(jù)集上的分類效果。
在二分類問(wèn)題中可以將樣本真實(shí)的類別和模型預(yù)測(cè)的類別組合劃分為真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)[8],分類結(jié)果的混淆矩陣如表2所示。
5 分類結(jié)果
5.1 TF-IDF和Word2Vec分類結(jié)果
實(shí)驗(yàn)采用了TF-IDF和Word2Vec分別對(duì)評(píng)論文本進(jìn)行了向量化處理,并且分別計(jì)算出了不同的向量維度上樣本的正確率。在比較不同特征提取方法對(duì)正確率的影響時(shí)選用了隨機(jī)森林算法作為分類器,便于比較。Word2Vec和TF-IDF產(chǎn)生不同維度下隨機(jī)森林分類器的正確率如圖2所示。
由圖2可以得知,通過(guò)Word2Vec和TF-IDF分別對(duì)文本進(jìn)行向量化,最后用相同的分類器具有完全不同的結(jié)果,使用Word2Vec進(jìn)行文本向量化,隨機(jī)森林作為分類器分類的正確保持在74.4%左右,而在使用TF-IDF進(jìn)行文本向量化時(shí),最后隨機(jī)森林分類器的分類正確率在86.0%左右,從正確率方面來(lái)說(shuō),使用TF-IDF進(jìn)行文本的向量化,模型的分類效果會(huì)更好。
5.2 不同分類器的分類結(jié)果
在此次實(shí)驗(yàn)中選用TF-IDF對(duì)文本進(jìn)行向量化處理,在比較不同分類器在評(píng)論數(shù)據(jù)集上分類效果時(shí),選用了隨機(jī)森林算法、支持向量機(jī)、KNN算法、AdaBoost算法,根據(jù)正確率、查準(zhǔn)率、召回率及F1值評(píng)估算法在評(píng)論數(shù)據(jù)集上的適用性。不同分類器分類結(jié)果的正確率如圖3所示。不同分類器的查準(zhǔn)率P、召回率R、F1值如表3所示。
由圖3不同分類器分類結(jié)果圖可以得出,隨機(jī)森林分類器的分類正確率在詞向量維度100維時(shí)最高為86.43%,AdaBoost分類器的分類正確率在詞向量維度150時(shí)分類正確率最高為85.89%,KNN分類器在詞向量維度25維時(shí)分類的正確率最高82.32%,SVM分類器的分類正確率在詞向量的維度為25時(shí)最高75.68%,由此可見(jiàn)從分類正確率方面來(lái)說(shuō)隨機(jī)森林分類器在評(píng)論數(shù)據(jù)集上表現(xiàn)效果最好。
表3表現(xiàn)了不同詞向量維度時(shí)不同分類器的查準(zhǔn)率、召回率及F1值。SVM分類器在召回率上面表現(xiàn)得很好,但是查準(zhǔn)率方面明顯低于其他三種算法,KNN分類器在查準(zhǔn)率上達(dá)到90%左右,但是在召回率上表現(xiàn)不如其他三種算法。相對(duì)來(lái)說(shuō),隨機(jī)森林算法和AdaBoost算法在查準(zhǔn)率和召回率都表現(xiàn)得比較均衡。最后從F1值可以得出,隨機(jī)森林>AdaBoost>KNN>SVM,綜合考慮隨機(jī)森林在評(píng)論數(shù)據(jù)集上表現(xiàn)出更好的分類效果。
6 結(jié)束語(yǔ)
本文實(shí)驗(yàn)了TF-IDF和Word2Vec兩種文本向量化的方式下,隨機(jī)森林算法的分類的正確率,很明顯TF-IDF向量化的方法更好。接下來(lái),在TF-IDF文本向量化方法下,采用了隨機(jī)森林、SVM、KNN、AdaBoost算法分別進(jìn)行了分類,可以得出隨機(jī)森林在評(píng)論文本數(shù)據(jù)集上具有更好的分類效果。
在下一步的研究工作中,可以通過(guò)擴(kuò)大數(shù)據(jù)集、數(shù)據(jù)清洗、詞向量方法改進(jìn)、分類方法改進(jìn)來(lái)進(jìn)一步提高分類的性能。
參考文獻(xiàn):
[1] 劉建波,楊峰.面向輿情分析的短文本頻繁模式聚類算法[J].北京電子科技學(xué)院學(xué)報(bào),2010,18(4):6-11. DOI:10.3969/j.issn.1672-464X.2010.04.002.
[2] 李晨,朱世偉,魏墨濟(jì),等. 基于詞典與規(guī)則的新聞文本情感傾向性分析[J]. 山東科學(xué),2017,(1):115-121.
[3] 張燕,姚志遠(yuǎn),陳文社.支持向量機(jī)在文本分類中的研究與應(yīng)用[J].電腦編程技巧與維護(hù),2018,(8):68-69,85.
[4] 李艷鳳. 基于電商評(píng)論的個(gè)性化產(chǎn)品推薦系統(tǒng)研究[D].哈爾濱工業(yè)大學(xué),2017.
[5] 左晶. 基于相變理論的癲癇腦電時(shí)空演變機(jī)制研究[D].重慶郵電大學(xué),2017.
[6] 孫凱.隨機(jī)森林在醫(yī)學(xué)影像分析中的應(yīng)用研究進(jìn)展[J].北京生物醫(yī)學(xué)工程,2018,37(4):413-418. DOI:10.3969/j.issn.1002-3208.2018.04.015.
[7] 孫為民,王暉,高濤, 等.將人工神經(jīng)網(wǎng)絡(luò)和Adaboost相結(jié)合提高絕緣子圖像識(shí)別的準(zhǔn)確率[J].電子世界,2017,(24):27-28,31.
[8] 唐燕,王蘋.隨機(jī)森林算法在中醫(yī)藥院校貧困生認(rèn)定預(yù)測(cè)中的應(yīng)用研究[J].中國(guó)醫(yī)藥導(dǎo)報(bào),2017,14(14):164-168.
【通聯(lián)編輯:梁書】