文本相似度計算--余弦定理和廣義Jaccard系數在
7.9余弦定理+空間向量--我的數學(xué)3 中簡(jiǎn)單地說(shuō)了一下利用余弦定理來(lái)計算文本相似度。下面是利用余弦定理和廣義Jaccard系數來(lái)計算文本相似度。
簡(jiǎn)單介紹一下Jaccard系數:廣義Jaccard系數可以用于文檔數據,并在二元屬性情況下歸約為Jaccard系數。廣義Jaccard系數又稱(chēng)Tanimoto系數。(有另一種系數也稱(chēng)為T(mén)animoto系數)。該系數用EJ表示,由下式定義:
EJ(x,y)=(x*y)/(||x|*||x||+||y||*||y||-x*y)
其公式與余弦相似度的計算有點(diǎn)相似
ClusterUsingKmeans.rar 代碼下載。
代碼解析如下:
class Word 表示一個(gè)詞,來(lái)自于中文分詞后的結果,其屬性包括詞頻和特征值(關(guān)于特征值的計算會(huì )在以后介紹)
class Document 表示一個(gè)文檔,對文檔進(jìn)行中文分詞后,分別計算詞的詞頻和特征值。
public double SimilitudeValueToDocumentUsingCos(Document Doc) 通過(guò)余弦定理計算相似度
public double SimilitudeValueToDocumentUsingGeneralizedJaccardCoefficient(Document Doc) 通過(guò)廣義Jaccard計算相似度
public class LoadDict用于加載詞庫,詞庫使用sogou的
互聯(lián)網(wǎng)詞庫 ,完全簡(jiǎn)單化計算詞的特征。
class WordSegment為中文分詞的簡(jiǎn)單封裝,替換成網(wǎng)絡(luò )上的中文分詞組件即可。
實(shí)驗結果下載
實(shí)驗報告與數據.rar 77.txt為原始文檔,77.txt對比其他文檔得到的相似度報告可以在 實(shí)驗報告.doc中查看
如下所示
使用COS(名詞和成語(yǔ))
使用COS(無(wú)限制)
使用Jaccard (名詞和成語(yǔ))
使用Jaccard (無(wú)限制)
53.txt
0.75956909998699
0.695630243577844
0.560566883431663
0.4670868864554
57.txt
0.832549281197672
0.784451145860574
0.711498783220936
0.635179493763215
75.txt
0.723232861947749
0.705986655123678
0.515174136459287
0.494265265766382
94.txt
0.944456910179154
0.864040767357343
0.624237679218324
0.760073520562129
PS: 通過(guò)查看文本的內容,可以發(fā)現五個(gè)文本之間都存在一定的相似。能得到文本的相似度之后,可以采用K-means等聚類(lèi)算法對文本數據進(jìn)行聚類(lèi)。
K-means的算法過(guò)程可以通過(guò)網(wǎng)絡(luò )得到。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。