2017-07-27 845 views
0

我正試圖找到兩個文檔之間的jaccard相似度。然而,我很難理解功能sklearn.metrics.jaccard_similarity_score()如何在幕後工作。根據我的理解,Jaccard的sim =文檔中的術語與文檔中的術語聯合的交集。python中的Jaccard相似度

考慮下面的例子: 我對兩個文件DTM是:

array([[1, 1, 1, 1, 2, 0, 1, 0], 
     [2, 1, 1, 0, 1, 1, 0, 1]], dtype=int64) 

以上FUNC。給我的捷卡SIM得分

print(sklearn.metrics.jaccard_similarity_score(tf_matrix[0,:],tf_matrix[1,:])) 
0.25 

我試圖找到我自己的得分爲:

intersection of terms in both the docs = 4 
total terms in doc 1 = 6 
total terms in doc 2 = 6 
Jaccard = 4/(6+6-4)= .5 

能有人請幫助,如果有什麼明顯我是缺少在這裏我明白了。

回答

0

如上所述here

在二進制和多類分類中,Jaccard相似係數分數等於分類精度。

因此在你的例子中它正在計算匹配元素的比例。這就是爲什麼你會得到0.25

+0

謝謝你的迴應!那麼,頻率匹配(第二和第三學期)在哪裏?如果是的話,這是否是獲得文件相似性得分的有效方法? – Apoorv

+2

設置Jaccard相似性可以是文檔之間相似度的度量,但是諸如TF-IDF之類的度量在文檔的bag-of-word模型中更常見。 – enezhadian

+0

順便檢查一下'https:// radimrehurek.com/gensim/index.html'。在那裏你可能會發現你需要什麼。 – enezhadian