簡體   English   中英

歸一化基於tf-idf計算的余弦相似度值

[英]Normalize cosine similarity values calculated based on tf-idf

我計算基於余弦相似度的tf-idf矩陣:

tfidf_vectorizer_desc = TfidfVectorizer(min_df=5, max_df=0.8, use_idf=True, smooth_idf=True, sublinear_tf=False, tokenizer=tokenize_and_stem)
%time tfidf_matrix_desc = tfidf_vectorizer_desc.fit_transform(descriptions) #fit the vectorizer to text
sim_desc = cosine_similarity(tfidf_matrix_desc)

但是,sim_desc包含的相似度大於1.0(請參見下文)。 據我所知,cosine_similarity返回的值介於0到1之間。 在這種情況下,我需要歸一化余弦相似度分數嗎?

sim_desc = cosine_similarity(tfidf_matrix_desc)
print(np.where(sim_desc < 0 ))
print(np.where(sim_desc > 1))
print(format(np.amax(sim_desc), '.20g'),format(np.amin(sim_desc), '.20g'))

(array([], dtype=int64), array([], dtype=int64))
(array([   0,    0,    0, ..., 1496, 1496, 1497]), array([   0,    1,  735, ..., 1495, 1496, 1497]))
1.0000000000000006661 0

您尚未指定正在使用的庫,因此如果您需要標准化余弦相似度得分,我將無法回答。

但是,這是事實:

余弦相似度實際上返回-1到+1之間的值。 如果兩個向量完全相反180度,則余弦相似度為-1。

參考: http//blog.christianperone.com/2013/09/machine-learning-cosine-similarity-for-vector-space-models-part-iii/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM