張 弛 張貫虹
(合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系, 合肥 230601)
文本聚類是指根據(jù)文本的內(nèi)在聯(lián)系(如語義和結(jié)構(gòu)信息),將無類別標(biāo)注的文本聚合成不同類別集合的過程。此過程是一個(gè)無監(jiān)督的學(xué)習(xí)過程,事先不需要經(jīng)過大量的訓(xùn)練,也不需要對文本的類別進(jìn)行標(biāo)注。常見的文本聚類方法有基于詞頻統(tǒng)計(jì)的方法、基于主題模型的方法、基于知識庫的方法和神經(jīng)網(wǎng)絡(luò)的方法,等等。
文獻(xiàn)[1-3]介紹了基于詞頻統(tǒng)計(jì)的方法,這種方法具有方便、快捷的優(yōu)點(diǎn),但在實(shí)際文本間語義相似度計(jì)算應(yīng)用中,存在特征詞向量維度高、數(shù)據(jù)稀疏、忽略低頻詞以及缺乏語義信息等問題。文獻(xiàn)[4][5]介紹的基于主題模型的方法,能將高維的特征詞向量空間轉(zhuǎn)換為低維的語義主題空間,解決了特征詞向量空間維度高、缺乏語義的問題,但這類方法都是假設(shè)數(shù)據(jù)服從指數(shù)分布。實(shí)際上,數(shù)據(jù)分布并不一定完全服從指數(shù)分布。另外,這類方法偏向于從高頻的數(shù)據(jù)中歸納語義,忽略了低頻詞的影響。文獻(xiàn)[6-8]介紹的基于知識庫的方法,能夠解決文本表示特征稀疏、特征詞語義缺失的問題,但由于受限于知識庫的更新速度,也會影響最終文本聚類的效果。
針對上述文本聚類算法存在的問題,借鑒神經(jīng)網(wǎng)絡(luò)算法,現(xiàn)提出一種基于Word2Vec工具的詞向量表示方法和多特征語義距離的文本聚類算法(標(biāo)記為M-W2-KS)。首先,使用基于神經(jīng)網(wǎng)絡(luò)的Word2Vec工具所依賴的Skip-gram模型訓(xùn)練大規(guī)模語料,得到語料庫中所有特征詞的詞向量表征;然后,使用融合詞頻、詞距、位置信息和詞向量歐式距離的自定義多特征文本語義距離計(jì)算公式,計(jì)算文本集中的任意兩個(gè)文本的相似度;最后,使用經(jīng)典的K-means算法對文本集中的文本進(jìn)行聚類。
基于詞向量和多特征語義距離的文本聚類,包括數(shù)據(jù)的預(yù)處理、Word2Vec詞向量訓(xùn)練、文本間相似度計(jì)算和K-means算法聚類等環(huán)節(jié)(見圖1)。
經(jīng)典的空間向量模型(VSM)算法是采用獨(dú)熱編碼(One-Hot Encoding)的方式將文本表示成向量的形式,向量的維度為文本集中包含的特征詞總個(gè)數(shù),每個(gè)向量代表一個(gè)文本。如果文本中某個(gè)特征詞存在,則向量中相應(yīng)位置的元素值為1;否則,元素值為0。這種表示方法沒有考慮特征詞之間存在語義關(guān)系,忽略了低頻詞,易導(dǎo)致文本特征表示語義缺失和維度災(zāi)難等問題。
圖1 M-W2-KS算法的基本流程
為了解決文本特征表示存在的語義缺失和維度災(zāi)難問題,2003年,Bengio等人提出了基于前饋神經(jīng)網(wǎng)絡(luò)的概率語言模型(NNLM)[9],其所依賴的核心概念就是詞向量。該模型分為輸入層、投影層、隱藏層和輸出層4個(gè)層次,計(jì)算量大是它的一個(gè)缺陷。2013年,Google的Tomas Mikolov團(tuán)隊(duì)對該模型進(jìn)行了優(yōu)化,并開發(fā)了基于神經(jīng)網(wǎng)絡(luò)的Word2Vec工具。Word2Vec工具依賴于Skip-gram 模型[10]和CBOW模型[11],這兩種模型都是通過訓(xùn)練大規(guī)模語料數(shù)據(jù),將文本特征詞映射成一個(gè)低維實(shí)數(shù)向量,有效解決了NNLM存在的問題。
我們選擇Word2Vec工具的Skip-gram模型對文本進(jìn)行詞向量訓(xùn)練。該模型是基于Hierarchical Softmax構(gòu)造的一顆Huffman樹,能夠根據(jù)當(dāng)前輸入的詞,從大規(guī)模非標(biāo)注的文本數(shù)據(jù)中預(yù)測上下文詞出現(xiàn)的概率,即能夠通過當(dāng)前詞語出現(xiàn)的概率來預(yù)測周圍出現(xiàn)的詞。根據(jù)詞語在窗口中的共現(xiàn)原理,基于窗口滑動來計(jì)算詞語間的共現(xiàn)概率,這樣每個(gè)特征詞生成的詞向量中都包含了一定的文本結(jié)構(gòu)信息和語義信息。
Skip-gram模型包括輸入層、投影層和輸出層。其中,輸入層為當(dāng)前特征詞,詞的詞向量Wt∈Rm;輸出為該特征詞上下文窗口中詞出現(xiàn)的概率;投影層的目的是使目標(biāo)函數(shù)L值最大化。
假定有一組詞序列w1,w2,…,wN,則
(1)
式(1)中:N為詞序列的長度;c表示當(dāng)前特征詞的上下文長度(一般取5~10,效果較好);p(wj+1|wj)為已知當(dāng)前詞wj出現(xiàn)的概率下,其上下文特征詞wj+1出現(xiàn)的概率。
通過Skip-gram模型訓(xùn)練得到的全部詞向量,組成詞向量矩陣X∈Rmn。以xi∈Rm表示特征詞i在m維空間中的詞向量。特征詞之間的相似度,可以使用對應(yīng)詞向量之間的距離來衡量。兩個(gè)向量之間的歐式距離,如式(2)所示。
d(wi,wj)=‖xi-xj‖2
(2)
式中:d(wi,wj)表示特征i和j的語義距離;xi和xj表示特征詞wi和wj對應(yīng)的詞向量。d(wi,wj)的值越小,說明兩個(gè)特征詞之間的語義距離越小,語義越相似。
Skip-gram詞向量模型保留了文本的語義信息,但沒有考慮到每篇文本所獨(dú)有的結(jié)構(gòu)特點(diǎn),忽略了特征詞詞頻、位置和詞距信息。借鑒文獻(xiàn)[12]提出的基于語義復(fù)雜網(wǎng)絡(luò)的文本相似度計(jì)算方法,綜合考慮特征詞的詞頻、位置和詞距信息以及特征詞向量歐式距離公式,提出如下涉及多個(gè)特征的文本相似度計(jì)算方法。
(3)
l(wi,wj)=(αtfij×idfi+βκ+γgij)×
d(wi,wj)
(4)
(5)
(6)
其中:Sim(D1,D2)表示任意兩個(gè)文檔D1和D2之間的文本相似度;|V1|、|V2|分別表示文檔D1和D2中特征詞的數(shù)量;l(wi,wj)表示特征詞i和j之間的多特征語義距離;d(wi,wj)表示特征i和j的語義距離;pi、pj表示特征詞i、j在各自文檔中的權(quán)重占所有特征詞權(quán)重的比列;idfi為特征詞的信息熵,idfi=log(Ntfi+0.01);k為特征詞位置權(quán)值,當(dāng)特征詞出現(xiàn)在標(biāo)題時(shí)k=2,出現(xiàn)在其他位置時(shí)k=1;gij表示特征詞i在文本j中首次出現(xiàn)到末次出現(xiàn)的距離權(quán)重;beginij為特征詞i在文檔j中首次出現(xiàn)的位置,lastij為特征詞i在文檔j中最后一次出現(xiàn)的位置;length(j)表示文檔j的特征詞序列長度;α、β、γ為不同的三類特征的權(quán)值,α+β+γ=1。
一般文本之間的相似度應(yīng)當(dāng)與特征詞之間的相似度成正比。兩個(gè)文本的相似度越高,特征詞在這兩個(gè)文本中出現(xiàn)的位置、詞頻、詞距以及詞向量之間的距離也應(yīng)該越相似,兩者間的重要程度差距也應(yīng)該越小。將計(jì)算結(jié)果進(jìn)行歸一化處理,得到文本相似度計(jì)算公式:
Sim(D1,D2)=1-u-Sim(D1,D2)
(7)
式(7)中,u的取值為大于1的正數(shù)。u值越大,表明計(jì)算結(jié)果越趨近于1的速度就越快。
上述基于詞向量和特征語義距離的文本聚類算法,其具體流程如下。
輸入:待聚類文本集合D={D1,D2,D3,…,Dn}
輸出:k個(gè)聚類文本簇
(1) 對輸入的文本集合進(jìn)行遍歷,對每一個(gè)文本(Di)使用分詞工具進(jìn)行分詞、去停用詞等操作,得到文本特征詞集合S={S1,S2,S3,…,Sm}。
(2) 使用Skip-gram模型對分詞后得到的大規(guī)模語料庫進(jìn)行訓(xùn)練,得到每個(gè)特征詞的詞向量。
(3) 對每個(gè)文本進(jìn)行特征詞詞頻、位置和詞距信息的統(tǒng)計(jì)和計(jì)算。
(4) 隨機(jī)選擇k個(gè)文本作為初始聚類質(zhì)心,使用公式(4)計(jì)算每個(gè)文本與這k個(gè)聚類質(zhì)心之間的距離,選擇距離最短的質(zhì)心作為自己的質(zhì)心。
(5) 依次計(jì)算具有同一個(gè)質(zhì)心的文本到其他質(zhì)心的距離,選擇距離最短的質(zhì)心作為該文本新的質(zhì)心。
(6) 循環(huán)執(zhí)行步驟(4)(5),直到質(zhì)心不再變化。
使用“中文維基百科”作為基本的訓(xùn)練語料,選取復(fù)旦大學(xué)李榮陸課題組提供的中文語料作為測試數(shù)據(jù)集。實(shí)驗(yàn)中,選擇了語料庫中的計(jì)算機(jī)、空間、環(huán)境、政治、藝術(shù)、經(jīng)濟(jì)、體育等7個(gè)類別的新聞文本。
在評價(jià)算法的分類效果時(shí),通常使用綜合評價(jià)指標(biāo)F-measure值作為評價(jià)依據(jù),它是準(zhǔn)確率(P)和召回率(R)的加權(quán)調(diào)和平均。在實(shí)際應(yīng)用中,參數(shù)θ值通常取1,也就是最常見的F1值。F1值越大,表明分類的效果越好。定義:P=a(a+b),R=a(a+c),F(xiàn)-measure=(θ2+1)PRθ2(P+R),F(xiàn)1=2PR(P+R)。其中,a表示被正確分類的文檔數(shù)量,b表示被判定為屬于某個(gè)類別而實(shí)際卻不屬于該類別的文檔數(shù)量,c表示被判定不屬于某個(gè)類別而實(shí)際卻屬于該類別的文檔數(shù)量。
使用64位Win7操作系統(tǒng)。CPU是Intel(R) Core(TM) i5-7200U @2.50GHz 2.60GHz,內(nèi)存為8G,開發(fā)工具為jupyter notebook下的Python3.7。使用北大開源分詞包pkuseg-python,用“四川大學(xué)機(jī)器學(xué)習(xí)智能實(shí)驗(yàn)室停用詞庫”過濾停用詞,以“中文維基百科”作為訓(xùn)練的語料庫。每個(gè)類別中,選擇 1 000篇文本作為實(shí)驗(yàn)數(shù)據(jù)。詞向量的維度選擇為300。語料庫中沒有出現(xiàn)的詞,不參與最終文本語義距離的計(jì)算。
為了驗(yàn)證實(shí)驗(yàn)的有效性,引入文獻(xiàn)[13]所構(gòu)建的基于詞頻的方法(標(biāo)記為T-VSM)、文獻(xiàn)[14]所構(gòu)建的基于主題模型的方法(標(biāo)記為LG-LDA)和文獻(xiàn)[15]所構(gòu)建的基于知識庫的方法(標(biāo)記為 YX-BTM)進(jìn)行對比實(shí)驗(yàn)。參數(shù)α、β、γ分別設(shè)置為0.37、0.35、0.28。由于K-means算法的聚類結(jié)果受初始質(zhì)心的影響,這里使用10次聚類實(shí)驗(yàn)的平均值作為最終的結(jié)果。每次聚類實(shí)驗(yàn)中,K-means算法的迭代次數(shù)設(shè)置為1 000次。
實(shí)驗(yàn)結(jié)果顯示,在7個(gè)文本類別上的平均準(zhǔn)確率(P)、召回率(R)和F1值,由T-VSM、LG-LDA、YX-BTM到M-W2-KS,總體上是呈遞增趨勢。其中,P的平均值依次為0.70、0.76、0.76、0.87,R的平均值依次為0.67、0.74、0.76、0.83,F(xiàn)1的平均值依次為0.69、0.75、0.79、0.85(見表1)。
LG-LDA算法的分類效果優(yōu)于T-VSM算法,這是因?yàn)門-VSM算法只是對特征詞的詞頻進(jìn)行統(tǒng)計(jì),沒有考慮非結(jié)構(gòu)化文本中隱藏的主題信息?;贖owNet的BTM模型,由于擴(kuò)充了文本特征詞的語義信息,避免了聚類結(jié)果中質(zhì)量差的文本的干擾,聚類結(jié)果又優(yōu)于LG-LDA算法。M-W2-KS算法使用“中文維基百科”作為訓(xùn)練語料庫,擴(kuò)充了文本特征詞的語義信息,并使用Skip-gram模型對詞進(jìn)行詞向量的訓(xùn)練,充分利用文本的上下文,融合了詞頻、詞距和位置信息來計(jì)算文本間語義相似度,聚類效果又優(yōu)于YX-BTM算法。圖3為各個(gè)文本類別F1值的折線圖。
表1 四種算法在各數(shù)據(jù)集上的F1值
圖3 不同算法在各類別中的F1值比較
從最終多個(gè)類別數(shù)據(jù)的聚類實(shí)驗(yàn)結(jié)果來看,我們提出的M-W2-KS算法要比其他幾種算法的聚類效果更好。基于詞向量和多特征語義距離的 M-W2-KS算法,不但能夠使特征詞向量的表征具有上下文語義和結(jié)構(gòu)信息,保證特征詞語義的集中,也能夠?qū)ξ谋具M(jìn)行特征降維處理,避免發(fā)生維度災(zāi)難,能夠有效提高文本相似度計(jì)算結(jié)果的精確性,保證聚類結(jié)果的準(zhǔn)確性。
基于詞向量的文本表示和多特征語義距離的文本聚類算法,利用詞向量的性質(zhì),克服了傳統(tǒng)文本特征向量表示方法存在的問題(如數(shù)據(jù)稀疏和網(wǎng)絡(luò)詞匯更新速度快等因素對文本聚類結(jié)果的影響);引入融合特征詞詞頻、詞距和位置的權(quán)重,自定義多特征語義距離計(jì)算公式,改進(jìn)了文本間的相似度計(jì)算方法。實(shí)驗(yàn)結(jié)果表明,運(yùn)用這種算法,能夠使聚類結(jié)果更加準(zhǔn)確,可以提升聚類效果。