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