殷功俊
(四川大學(xué)計算機(jī)學(xué)院,成都 610065)
在文本分類的領(lǐng)域中,需要處理大量的文本數(shù)據(jù),由于數(shù)據(jù)規(guī)模的龐大,通常用計算機(jī)來學(xué)習(xí)與處理文本數(shù)據(jù)。與視頻、圖像等數(shù)據(jù)的不同,文字是人類認(rèn)知過程中產(chǎn)生的高層認(rèn)知抽象實體,計算機(jī)難以獲取其文本特征,不能準(zhǔn)確地表達(dá)文本語義。文本表示是文本分類中非常重要的一個環(huán)節(jié),通過文本表示可以將大量的非結(jié)構(gòu)化或半結(jié)構(gòu)化的字符集合信息轉(zhuǎn)換成為一個簡潔的、統(tǒng)一的、能夠被計算機(jī)所識別的結(jié)構(gòu)化形式,使計算機(jī)能夠在接下來的任務(wù)中得到更好地效果。文本表示的好壞能很大程度上影響到整個文本分類任務(wù)的性能。
Saltont等人[1]于1975年提出的向量空間模型(Vector Space Model,VSM)是目前使用最普通的一種文本表示模型,它將文本表征為一組特征項的集合,每一個特征項都有權(quán)值信息,表征該特征項對于文本的重要程度。特征項的權(quán)值通過TF-IDF(Term Frequency-Inverse Document Frequency)[2]來計算。TF-IDF 是一種統(tǒng)計方法,是用來評估一個特征詞對于一個文本集或一個語料庫中的其中一份文本的重要程度,它隨著在文件中出現(xiàn)的次數(shù)增加而增加,隨著它在語料庫中出現(xiàn)的次數(shù)增加而減少。
雖然基于TF-IDF的向量空間模型在傳統(tǒng)的分類器上有著不錯的分類效果,依然存在以下幾個缺陷[3]:①文本向量的維度較高,文本向量的維度取決于文本的特征詞個數(shù),極容易造成“維數(shù)災(zāi)難”的問題,不僅會消耗更多的計算資源、降低文本分類的精確度,而且容易引起過擬合的問題;②不能準(zhǔn)確表示文本的語義,向量空間模型的前提是假設(shè)特征詞之間相互獨立的,但在實際中詞與詞之間會有一定的關(guān)聯(lián);③不能準(zhǔn)確辨別自然語義模糊性,它是基于TF-IDF來計算權(quán)值,即主要依靠詞頻信息,導(dǎo)致文檔的相似度也主要依賴于共同詞匯的數(shù)量。針對以上幾個不足,很多研究人員也做了很多研究進(jìn)行改進(jìn)且都取得了不錯的效果。鄧曉衡[4]等人提出了提出一種多義詞判別優(yōu)化的同義詞聚類方法來優(yōu)化向量空間模型,該方法大大降低了文本向量的維度,提高了文章特征提取的準(zhǔn)確性;Konstantinos等[5]提出用無向圖來表示文本特征詞之前的關(guān)聯(lián),通過結(jié)點中心性來替換TF-IDF中的TF,產(chǎn)生更多的判別性特征權(quán)重;George Forman等[6]用雙正態(tài)分離(Bi-Normal Separation,BNS)來代替 TF-IDF 中的 IDF,提高了分類的準(zhǔn)確性。上述的研究都是在優(yōu)化特征項權(quán)值的計算方法,通過特征項對文本的重要性來表達(dá)文本,卻無法將文本特征詞的上下文語義與句法信息考慮到模型之中。
詞向量是用向量來描述一個詞,最常見的是獨熱表示(One-Hot Representation),它將詞用一個很長向量來表示,向量的維度代表詞的個數(shù),向量中只有一個維度是1,其他全是0。獨熱表示有兩個明顯的缺點,一是詞與詞之間是孤立的,會造成“語義鴻溝”現(xiàn)象;二是如果詞的個數(shù)較多,很容易產(chǎn)生維數(shù)災(zāi)難問題。而本文提到的詞向量并不是獨熱表示,而是神經(jīng)網(wǎng)絡(luò)在自然語言處理領(lǐng)域中的一種應(yīng)用——詞的分布式表示(Distributed Representation),這種方法常被稱為詞向量。詞向量有很多優(yōu)秀的特性,如維度低、包含詞語語義信息、包含上下文信息[7]等。這些特性在一定程序上能彌補(bǔ)VSM的缺陷。近年來,有很多研究都在嘗試詞向量在文本分類中的應(yīng)用,并取得了很好的效果。像唐明、朱磊[8]等提出了一種基于詞向量的TF-IDF加權(quán)計算文本向量算法;周順先等[9]使用詞向量優(yōu)化TFIDF算法;郭宏運(yùn)[10]將詞向量與主題向量結(jié)合;Piotr Sembereck[11]等將詞向量與卷積神經(jīng)網(wǎng)絡(luò)結(jié)合應(yīng)用在文本分類中。
本文在唐明和周順先的研究基礎(chǔ)上改進(jìn)了向量空間模型:①將特征詞詞向量聚類,聚類質(zhì)心代表該類的其他特征詞,求聚類質(zhì)心的TF-IDF權(quán)值;②將聚類質(zhì)心的TF-IDF與其詞向量相結(jié)合來生成文本表示向量。
向量空間模型假設(shè)詞與詞之間是相互獨立的,忽略其出現(xiàn)的次序,將文本表示為一個向量,其中向量的每一維代表著文本特征集中的一個特征,每一維的值代表著這個特征項在文本的權(quán)重,因此可以通過文本向量的相似度可以衡量文本之間的相似度。在VSM中,文本d可以由二元特征組組成的特征向量來表達(dá),如d={(t1,w1),(t2,w3),…,(tn,wn)},其中 ti表示特征項,wi表示ti特征項在文本中的權(quán)重,文檔可簡化的表示為d={w1,w2,…,wn}。權(quán)重一般通過 TF-IDF 公式計算,特征t在文檔d中的權(quán)重計算公式如公式(1)所示:
其中,tf(t,d)表示特征項t在文檔中出現(xiàn)的頻次,計算公式如下:
nt,d表示特征項t在文檔中出現(xiàn)的頻次代表文檔d中所有特征項出現(xiàn)次數(shù)的總和。公式(1)中idf(t)計算公式如下:
其中,N為訓(xùn)練集的文本數(shù)量,nt為訓(xùn)練集中出現(xiàn)特征t的文本數(shù)量。
雖然向量空間模型表示文本簡單高效,但依然有著維度較高、無法有效表達(dá)詞語語義等缺點。
本文研究的詞向量默認(rèn)為基于神經(jīng)網(wǎng)絡(luò)的分布式表示(Distributed Representation)。Mikolov[12]在 2013 年提出了Word2Vec,該方法能方便、高效地獲取詞義的向量化特征且包含詞語之間相似度的優(yōu)良特性,引起了業(yè)界的巨大關(guān)注。Word2Vec是一個神經(jīng)網(wǎng)絡(luò)模型,是神經(jīng)網(wǎng)絡(luò)在自然語言領(lǐng)域突破性的應(yīng)用。它提供了兩種模型來訓(xùn)練詞向量,即連續(xù)詞袋模型(Continuous Bag-Of-Words,CBOW)和Skip-Gram模型。由于篇幅有限,CBOW和Skip-Gram算法的原理本文不在詳細(xì)闡述,可參考來斯惟博士論文[13]。通過Word2Vec訓(xùn)練學(xué)習(xí)出的詞向量可把對文本內(nèi)容的處理簡化為向量空間中的向量運(yùn)算,而向量空間上的相似度可以用來表示詞語或者文本語上的相似度,因此本文嘗試通過詞向量優(yōu)化向量空間模型。
本文提出的模型從兩方面改進(jìn)了傳統(tǒng)的向量空間模型:①將特征詞的詞向量聚類,用TF-IDF計算聚類之后質(zhì)心的權(quán)值;②生成文本表示向量時將聚類質(zhì)心的權(quán)值與其詞向量結(jié)合。具體流程如圖1(b)所示:
圖1 傳統(tǒng)向量空間模型和新模型文本表示流程圖
傳統(tǒng)求解TF-IDF權(quán)值是在文本預(yù)處理、文本分詞得到特征集后直接計算。而在我們提出的模型中,得到特征集后先訓(xùn)練特征詞獲取其對應(yīng)詞向量,再對得到的詞向量進(jìn)行聚類,用聚類質(zhì)心代表該類其他的特征詞,最后對聚類質(zhì)心進(jìn)行TF-IDF計算,這種改進(jìn)的優(yōu)點:①能解決求TF-IDF權(quán)值時一詞多義和同義詞的問題;②能夠一定程度上緩解維度過高和表達(dá)稀疏的問題。本文訓(xùn)練詞向量的方法是采用Google開源了Mikolov提出的詞向量訓(xùn)練方法Word2Vec[14]。具體的步驟如下:
(1)對文本進(jìn)行文本預(yù)處理、文本分詞,得到詞語集合G。
(2)將集合G中詞語通過Word2Vec訓(xùn)練得到對應(yīng)的詞向量,得到詞向量集合W。
(3)對詞向量集合W用K-means方法聚類,根據(jù)最終的聚類結(jié)果將詞向量所屬聚類劃分的質(zhì)心S代替表聚類劃分內(nèi)的詞語,即將一個類別內(nèi)所有特征詞語義特征跟質(zhì)心語義特征一致。
(4)與求特征項的TF-IDF不同的是,這里是求聚類質(zhì)心的TF-IDF。計算公式與公式(1)一樣,但代表含義稍許變化,其中tf(s,d)代表“質(zhì)心s所代表的詞語”在文檔d中出現(xiàn)的頻率;idf(d)為質(zhì)心s的逆向文件頻率。
根據(jù)基于TF-IDF的向量空間模型,此時可以把文檔向量 d 初步表示為 {s1,s2,…,sm},其中 si代表著第 i個聚類質(zhì)心的TF-IDF權(quán)值,m代表著聚類后的類別數(shù)量。通過第一節(jié)我們知道向量空間模型雖然應(yīng)用比較廣泛,但也有不少的缺陷,例如表示的文本向量維度過高、文本表示稀疏和無法有效提取語義信息等。維度過高和文本表示稀疏的問題在上一節(jié)中在得到一定程度的緩解。而不能有效提取語義信息這一問題不能得到很好的解決,這主要來源于向量空間模型自身的局限,因為它假設(shè)詞與詞之間是獨立的,沒有考慮詞與詞之間的聯(lián)系。而詞向量卻能很好地表示特征詞的語義信息,并可以通過常見的距離或相似度度量操作衡量它們之間的語義相似度,因此本小節(jié)嘗試將詞向量與向量空間模型融合,得到最終的文本表示向量:
其中,S為質(zhì)心的集合,Ws為質(zhì)心s的詞向量,m為聚類后類別的個數(shù),tfidf(s,d)是上一小節(jié)中求的質(zhì)心s的權(quán)值。
為了驗證本文報出的模型的有效性,在搜狗語料庫基礎(chǔ)上進(jìn)行實驗,選取了語料庫中7種類別進(jìn)行實驗,相關(guān)類別及包含的數(shù)量如表1所示:
表1 實驗數(shù)據(jù)類別及數(shù)量
需要對語料庫進(jìn)行預(yù)處理:①去除停用詞、標(biāo)點符號、助詞等;②分詞,用清華大學(xué)的THULAC分詞工具對語料庫文本進(jìn)行分詞。
設(shè)計實驗將本文提出的模型與基于TF-IDF的向量空間模型,Doc2Vec模型和LDA主題模型進(jìn)行對比。詞向量訓(xùn)練采用Google開源的Word2Vec工具,Doc2Vec采用gensim工具。聚類采用K-means方法。分類器采用NB(樸素貝葉斯算法)、KNN(K最近鄰算法,K=20)、SVM(支持向量機(jī)算法)。采用的評估分類效果指標(biāo)為準(zhǔn)確率(Precision)、召回率(Recall)和F1-measure。計算公式如下:
其中,e是錯誤地劃分到該類別的文本個數(shù),r是分類正確的文本個數(shù),u是屬于該類別但未被區(qū)分出來的文本個數(shù)。
為了保證實驗可靠性,每個實驗采用10折交叉驗證,最后取平均值作為最終結(jié)果。具體實驗結(jié)果如下:
表2 實驗分類結(jié)果(%)
從表2可以看出,本文提出的新模型在NB、SVM和KNN三種分類器下分類效果皆好于傳統(tǒng)的向量空間模型,例如在NB分類器上準(zhǔn)確率從79.33%增加到82.52%,召回率從 72.42%增加到 75.07%,F(xiàn)1值從73.04%增加到75.84%,這說明本文提出的模型比傳統(tǒng)的向量空間模型具體更好地表達(dá)文本的效果。同時該模型與Doc2Vec和LDA模型在準(zhǔn)確率、召回率和F1值上差別不是很大,這也證明了本文提出的模型的有效性。
針對傳統(tǒng)的向量模型表達(dá)文本有維度較高、文本表示稀疏和無法有效表示特征詞語義等缺點,本文提出一個新模型——借助詞向量優(yōu)化TF-IDF求解方法并在生成文本表示向量時將VSM與詞向量融合,該模型在一定程度上優(yōu)化了傳統(tǒng)向量空間模型的缺陷。通過實驗證明本文提出的文本表示模型較傳統(tǒng)的向量空間模型有著更好的分類效果。今后將進(jìn)一步優(yōu)化特征向量的生成,考慮引入注意力機(jī)制用于文本表示。