文本類似度計算_02

該篇文章主要介紹基於詞語的文本類似度計算方式,包括:svn

  • 餘弦類似度
  • 歐式距離
  • Dice係數
  • Jaccard

在計算餘弦類似度與歐式距離的時候,須要將詞語向量化表示,這就須要用到詞袋模型。spa

詞袋模型(Bag of words)

最初的Bag of words,也叫作「詞袋」,Bag of words model假定對於一個文本,忽略其詞序和語法,句法,將其僅僅看作是一個詞集合,或者說是詞的一個組合,文本中每一個詞的出現都是獨立的,不依賴於其餘詞是否出現,或者說當這篇文章的做者在任意一個位置選擇一個詞彙都不受前面句子的影響而獨立選擇的。ip

例如兩個句子:
句子A:這隻皮靴號碼大了。那隻號碼合適。
句子B:這隻皮靴號碼不小,那隻更合適。字符串

第一步:分詞
句子A:這隻/皮靴/號碼/大了,那隻/號碼/合適。
句子B:這隻/皮靴/號碼/不/小,那隻/更/合適。it

第二步:列出全部的詞
這隻,皮靴,號碼,大了,那隻,合適,不,小,更class

第三步:計算詞頻
句子A:這隻 1,皮靴 1,號碼 2,大了 1,那隻 1,合適 1,不 0,小 0,更 0
句子B: 這隻 1,皮靴 1,號碼 1,大了 0,那隻 1,合適 1,不 1,小 1,更 1cli

第四步:寫出詞頻向量
句子A:(1,1,2,1,1,1,0,0,0)
句子B:(1,1,1,0,1,1,1,1,1)model

餘弦類似度

餘弦類似度用向量空間中兩個向量夾角的餘弦值做爲衡量兩個個體差別的大小。餘弦值越接近1,就代表夾角越接近0度,也就是兩個向量越類似,這就是餘弦類似性。
因此句子A句子B的餘弦類似度爲:
clipboard.png語法

歐式距離

歐式距離也稱爲歐幾里得距離,是最多見的距離度量,衡量的是多維空間中兩個點之間的絕對距離。
計算公式以下:
clipboard.png
clipboard.pngim

Dice距離

Dice距離用於度量兩個集合的類似性,由於能夠把集合字符串理解爲一種集合,所以Dice距離也會用於度量字符串的類似性。Dice係數定義以下:
clipboard.png
其中分子是A與B的交集數量的兩倍,分母爲A與B的長度之和。因此他的範圍在0到1之間。
句子A:{這隻,皮靴,號碼,大了,那隻,號碼,合適}
句子B:{這隻,皮靴,號碼,不,小,那隻,更,合適}
clipboard.png

Jaccard距離

Dice係數與Jaccard很是的相似。Jaccard是在分子和分母上都減去了A∩B。
clipboard.png
clipboard.png

相關文章
相關標籤/搜索