摘 要: 面對(duì)大數(shù)據(jù)時(shí)代消費(fèi)者評(píng)價(jià)的海量信息,為了識(shí)別消費(fèi)者評(píng)價(jià)信息的情感傾向,及時(shí)掌握消費(fèi)者的評(píng)價(jià)信息反饋,采用K-近鄰(KNN)算法對(duì)消費(fèi)者評(píng)價(jià)信息進(jìn)行情感分類,但是該算法在文本分類過程中因文本特征向量的維度高,使得算法的時(shí)間復(fù)雜度和空間復(fù)雜度較高,計(jì)算的開銷很大。針對(duì)這一問題,通過對(duì)獲取信息的文本結(jié)構(gòu)以及情感表達(dá)特點(diǎn)的分析,采用一種改進(jìn)的KNN算法進(jìn)行文本情感分類。在對(duì)消費(fèi)者評(píng)價(jià)信息進(jìn)行分類時(shí),先由潛在語義分析算法對(duì)文本特征向量進(jìn)行降維處理,然后利用加權(quán)KNN算法進(jìn)行分類。實(shí)驗(yàn)結(jié)果表明,該方法在提高文本分類速度的同時(shí)保持了良好的分類效果。
關(guān)鍵詞: 大數(shù)據(jù);特征降維;LSA算法;KNN算法;情感分類
0 引言
近年來,隨著電子商務(wù)、社交網(wǎng)站、個(gè)人博客和微博的蓬勃發(fā)展,互聯(lián)網(wǎng)進(jìn)入了一個(gè)嶄新的時(shí)代——大數(shù)據(jù)時(shí)代。大數(shù)據(jù)時(shí)代廣大消費(fèi)者有了更廣闊的發(fā)表自己意見的空間,人們參與討論和發(fā)布自己的觀點(diǎn)、態(tài)度和情感信息的熱情與日俱增,因此帶有主觀色彩的言論和評(píng)論的互聯(lián)網(wǎng)信息日益豐富。這些海量的、帶有情感色彩的、非結(jié)構(gòu)化的文本包含了大量的信息,企業(yè)可以從中獲得用戶對(duì)產(chǎn)品或服務(wù)的意見,而消費(fèi)者在消費(fèi)前可以得到更多的建議,因此對(duì)消費(fèi)者的意見、觀點(diǎn)、評(píng)價(jià)等傾向性信息的分析有著重要的實(shí)用價(jià)值。情感分類[1]是隨之興起的一個(gè)研究領(lǐng)域,它是指通過挖掘和分析文本中立場(chǎng)、觀點(diǎn)、情緒等主觀信息,對(duì)文本的情感傾向做出類別判斷,將其分為正面或負(fù)面。目前,比較常用的分類算法有:支持向量機(jī)(SVM)[2]、貝葉斯(NB)[3]、K-近鄰(KNN)等,其中KNN方法有著廣泛的應(yīng)用領(lǐng)域。
KNN算法在進(jìn)行文本分類時(shí),由于計(jì)算量大而使其效率大大降低,導(dǎo)致分類效果不是很理想,制約了算法的應(yīng)用。近年來許多學(xué)者提出針對(duì)KNN的改進(jìn)算法,例如參考文獻(xiàn)[4-6]中的算法都是通過減少需要比較的樣本數(shù),從而達(dá)到提高分類效率的目的。KNN在進(jìn)行文本分類時(shí)文本特征向量的維度高,使得算法的時(shí)間復(fù)雜度和空間復(fù)雜度較高,但真正對(duì)分類起作用的維數(shù)往往是小于文本本身的維數(shù),那些對(duì)分類意義不大的維數(shù)往往會(huì)成為噪聲,從而影響分類的準(zhǔn)確率。針對(duì)上述KNN存在的問題,本文從降低特征維數(shù)以減少計(jì)算量的方面進(jìn)行改進(jìn),提出LSA-KNN算法,對(duì)消費(fèi)者評(píng)價(jià)進(jìn)行情感分類分析,期望能克服KNN分類速度較慢的缺陷,同時(shí)又能保持較高的準(zhǔn)確率。
1 KNN的基本原理
KNN[7-8]是一種經(jīng)典的基于統(tǒng)計(jì)的分類方法。其形式化描述為:基于向量空間模型(VSM),將每個(gè)實(shí)例視為n維向量空間Rn中的一個(gè)點(diǎn)。假設(shè)n個(gè)帶類標(biāo)識(shí)的實(shí)例數(shù)據(jù)為(X1,y1),(X2,y2),…,(Xn,yn),其中Xi是實(shí)例的向量表示,yi則是該實(shí)例對(duì)應(yīng)的類別,類別的取值為0、1,表示兩類,設(shè)0代表正面,1代表負(fù)面。對(duì)于給定的實(shí)例X,可以通過式(1)判斷其類別:
其中,若y值大于給定的閾值0.5,則X屬于類1;當(dāng)其小于0.5時(shí),則X屬于類0。其中,Lk(X)表示與給定實(shí)例X距離最近的k個(gè)實(shí)例的值。
2 LSA-KNN分類算法
潛在語義分析(LSA)是一種用于自動(dòng)實(shí)現(xiàn)知識(shí)提取和表示的理論和方法,它通過對(duì)大量的文本集進(jìn)行統(tǒng)計(jì)分析,從中提取出詞語的上下文使用含義[9]。在進(jìn)行文本的分類過程中,文本特征往往采用VSM進(jìn)行描述,利用矩陣奇異值分解(SVD)等方法進(jìn)行處理,消除同義詞、多義詞的影響,從而達(dá)到快速降維的目的,提高了后續(xù)處理的精度。LSA的數(shù)學(xué)描述如下:設(shè)詞-文本矩陣X是個(gè)m×n矩陣,其中m為詞數(shù),n為文檔數(shù)。令k<<min(m,n),rank(A)=r,k<Ra,經(jīng)過SVD處理,矩陣X可表示為3個(gè)矩陣的乘積,即:
X=SVDT(2)
其中,S、D是m×r和n×r的正交矩陣,分別稱為矩陣X的左右奇異向量矩陣;V是r×r的對(duì)角矩陣,是矩陣X的奇異標(biāo)準(zhǔn)形,其對(duì)角元素為矩陣X的奇異值。
V=diag(δ1,δ2,…,δr) δ1≥δ2≥…≥δr>0(3)
矩陣X的奇異值按遞減順序排列成對(duì)角矩陣V,取V的前k個(gè)最大奇異值構(gòu)成k×k的Vk,分別取S和D的前k列構(gòu)成m×k的Sk和n×k的Dk,得到矩陣X的k-秩近似矩陣Xk:
Xk=SkVkDkT(4)
其中,Sk和Dk中的行向量分別作為詞向量和文檔向量;k是降維之后的維數(shù)。實(shí)際應(yīng)用中k的值常常取到幾百,極大地減少了文本向量的維數(shù),利用LSA對(duì)文本特征向量矩陣進(jìn)行奇異值分解和取k-秩近似矩陣,既可以消除文本矩陣中的噪聲,凸顯詞與文本之間的語義關(guān)系,又可大大縮減特征向量空間,從而提高文本分類的效率。
針對(duì)之前提到的KNN存在的不足,本文提出LSA-KNN分類算法,先由LSA算法進(jìn)行特征降維,然后利用加權(quán)KNN算法進(jìn)行分類。算法步驟如下:
?。?)設(shè)中文文本數(shù)為N,文檔訓(xùn)練集合表示為:D=D(T1,W1;T2,W2;…;TN,WN),將T1,T2,…,TN看成一個(gè)n維坐標(biāo)系,W1,W2,…,WN為對(duì)應(yīng)的坐標(biāo)值。兩個(gè)文本之間的相似度可以通過兩個(gè)向量(分別設(shè)為T1=(μ1,μ2,…,μN(yùn)),T2=(λ1,λ2,…,λN))之間夾角α的余弦值計(jì)算:
記文本Ti和Tj的相似度為sim(Ti,Tj),則文檔訓(xùn)練集的相似矩陣定義為:
(2)利用LSA算法思想對(duì)文本特征矩陣W做降維處理,得到降維后的r階矩陣Wr。
?。?)利用(7)計(jì)算測(cè)試文本集中每個(gè)文本的相似度[5],根據(jù)相似度,在訓(xùn)練文本集中選出與新文本最相似的k個(gè)文本。
其中,di為訓(xùn)練樣本,X為測(cè)試樣本。
?。?)測(cè)試文本的k個(gè)近鄰中,根據(jù)式(8)依次計(jì)算每類的權(quán)重:
其中,T為測(cè)試文本的特征向量,sim(T,Tj) 為文本相似度計(jì)算公式。函數(shù)y(Tj,Ti)為:
(5)比較類的權(quán)重,將測(cè)試文本分配到權(quán)重最大的那個(gè)類別中。
本文在上述算法中應(yīng)用潛在語義分析大大減少了對(duì)分類意義不大的噪聲,有效降低了特征向量的維數(shù),從而有效解決KNN存在的運(yùn)行效率不高的問題。
3 實(shí)驗(yàn)結(jié)果與分析
3.1 實(shí)驗(yàn)性能評(píng)估指標(biāo)
實(shí)驗(yàn)采用的評(píng)估文本分類性能指標(biāo)有:查準(zhǔn)率P、查全率R和測(cè)試值F1。
查準(zhǔn)率公式為:
3.2 實(shí)驗(yàn)數(shù)據(jù)集
實(shí)驗(yàn)中采用的語料為酒店網(wǎng)絡(luò)評(píng)價(jià)文本,首先從攜程旅行網(wǎng)(http://www.ctrip.com)搜集了2013年北京(BJ)、上海(SH)、青島(QD)3個(gè)城市的酒店評(píng)論,并對(duì)所有評(píng)論認(rèn)真審查,去除語言不規(guī)范及重復(fù)文本,最終選取9 000篇評(píng)論作為本文研究所需要的語料庫,稱為總語料庫(HR)。北京、上海、青島3個(gè)城市的酒店評(píng)價(jià)各為3 000篇,其中每個(gè)城市的酒店評(píng)論文本中正面評(píng)論文本1 500篇,負(fù)面評(píng)論文本1 500篇。將選取的文本轉(zhuǎn)換為統(tǒng)一的文本格式,同時(shí)將所有的語料分為兩部分,其中6 000篇作為訓(xùn)練語料集合(每個(gè)城市選取2 000篇,其中正面評(píng)論1 000篇,負(fù)面評(píng)論1 000),剩余3 000篇(每個(gè)城市選取1 000篇,其中正面評(píng)論500篇,負(fù)面評(píng)論500篇)作為測(cè)試語料集合。本文以文本的句子為基本單位,首先利用中科院ICTCLAS分詞系統(tǒng)[1.0]對(duì)評(píng)論文本進(jìn)行分詞處理,并且利用中文停用詞表(1 028個(gè)停用詞)去掉停用詞,得到特征詞2 216個(gè),然后采用LSA方法對(duì)特征詞進(jìn)行降維處理后得到300個(gè)特征詞,最后利用KNN分類器對(duì)文本集進(jìn)行情感分類。
3.3 實(shí)驗(yàn)結(jié)果
在實(shí)驗(yàn)中,先將改進(jìn)后的算法與傳統(tǒng)的KNN算法進(jìn)行比較,實(shí)驗(yàn)結(jié)果如表1所示。
由表1可以看出,改進(jìn)后的算法與傳統(tǒng)的KNN算法相比,在查準(zhǔn)率、查全率、F1值方面都略有提升,以總體語料庫為例,查準(zhǔn)率平均值提高了2.55%,查全率平均值提高了2.45%,F(xiàn)1平均值提高了2.45%。北京、上海、青島3個(gè)城市的評(píng)論文本中,對(duì)正面評(píng)價(jià)的識(shí)別率均高于負(fù)面評(píng)論文本的識(shí)別率,造成這種現(xiàn)象的原因主要是實(shí)驗(yàn)中對(duì)否定詞處理不當(dāng),例如某條評(píng)論為“酒店房間不夠?qū)挸ǎ频攴?wù)不是很好”,這條評(píng)論本身屬于負(fù)面評(píng)論,但由于文本分類處理時(shí)沒有進(jìn)行否定詞處理,導(dǎo)致文本被分到正面評(píng)論中。
為了驗(yàn)證文本算法的有效性,設(shè)計(jì)了本文算法與SVM方法和貝葉斯方法的對(duì)比實(shí)驗(yàn)。全語料庫的訓(xùn)練集和測(cè)試集,采用查全率、查準(zhǔn)率以及F1值刻畫性能的優(yōu)劣。表2是3種方法的實(shí)驗(yàn)結(jié)果。
表2的實(shí)驗(yàn)結(jié)果表明,與表現(xiàn)較好的傳統(tǒng)機(jī)器學(xué)習(xí)算法相比,LSA-KNN算法在情感分類方面各項(xiàng)性能指標(biāo)都高于貝葉斯方法,接近SVM方法的分類效果。
上述實(shí)驗(yàn)結(jié)果表明:與傳統(tǒng)的KNN算法相比,改進(jìn)后的算法情感分類的效率明顯提高,并且與SVM、貝葉斯方法相比,也有良好的分類效果。
4 結(jié)論
針對(duì)消費(fèi)者評(píng)價(jià)信息的情感分類問題,本文采用一種改進(jìn)的KNN算法。在進(jìn)行情感分類時(shí),先用LSA算法進(jìn)行特征降維,然后采用加權(quán)KNN算法進(jìn)行分類。實(shí)驗(yàn)表明,與傳統(tǒng)KNN算法相比,改進(jìn)后的KNN算法分類的速度顯著提高,并且保持了良好的分類效果。在后繼的研究中,將結(jié)合網(wǎng)絡(luò)評(píng)論情感極限方面、否定詞方面展開研究,將情感分析研究融合到商品評(píng)價(jià)的相關(guān)領(lǐng)域,使研究的內(nèi)容真正在實(shí)踐中指導(dǎo)實(shí)際,結(jié)合實(shí)踐為廣大消費(fèi)者服務(wù)。
參考文獻(xiàn)
[1] PANG B, LEE L. Opinion mining and sentiment analysis[J]. Foundations and Trends in Information Retrieval,2008,2(1-2):1-135.
[2] Zhang Min, Ye Xingyao. A generation model to unify topic relevance and lexicon-based sentiment for opinion retrieval [C]. Proceedings of the 31st Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, New York, NY, USA, 2008: 411-419.
[3] CUI H, MITTAL V O, DATAR M. Comparative experiments on sentiment classification for online product reviews[C]. Proceedings of the 21st National Conference on Artificial Intelligence, 2006: 1265-1270.
[4] 王煜,白石,王正歐.用于Web文本分類的快速KNN算法[J].情報(bào)學(xué)報(bào),2007,26(1):60-64.
[5] 江濤,陳小莉,張玉芳,等.基于聚類算法的KNN文本分類算法研究[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(7):153-155.
[6] 李榮陸,胡運(yùn)發(fā).基于密度的KNN文本分類器訓(xùn)練樣本裁剪方法[J].計(jì)算機(jī)研究與發(fā)展,2004,41(4):539-545.
[7] Du Hao, Chen Yangqiu. Rectified nearest feature line segment for pattern classification[J]. Pattern Recognition,2007,40(5):1486-1497.
[8] 樊娜,安毅生,李慧賢.基于K—近鄰算法的文本情感分析方法研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(3):1160-1164.
[9] 鐘將,劉榮輝.一種改進(jìn)的KNN文本分類[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(2),142-144.