基於Python計算余弦相似性

2021-10-11 23:54:22 字數 1076 閱讀 3390

在我們計算相似度時,常常用到余弦夾角來判斷兩個向量或者矩陣之間的相似度,cosine(余弦相似度)取值範圍[-1,1],當兩個向量的方向重合時夾角余弦取最大值1,當兩個向量的方向完全相反夾角余弦取最小值-1,兩個方向正交時夾角余弦取值為0。

x

1x_1

x1​ 和 x

2x_2

x2​ 分別是輸入的兩個向量。

import numpy as np

x_1 = np.array([1

,3,6

,2,3

,6])

x_2 = np.array([3

,4,1

,5,7

,8])

defcos_sim

(a, b)

: a_norm = np.linalg.norm(a)

b_norm = np.linalg.norm(b)

cos = np.dot(a,b)

/(a_norm * b_norm)

return cos

print

(cos_sim(x_1,x_2)

)

import numpy as np

from sklearn.metrics.pairwise import cosine_similarity

x_1 = np.array([1

,3,6

,2,3

,6])

.reshape(1,

6)x_2 = np.array([3

,4,1

,5,7

,8])

.reshape(1,

6)con_sim = cosine_similarity(x_1,x_2)

#輸入必須是乙個二維的,如果是乙個矩陣的話,輸入的是矩陣的每行的

可以看出兩者計算出的相似度是一樣的。

余弦相似性 找出相似文章

為了找出相似的文章,需要用到 余弦相似性 cosine similiarity 下面,我舉乙個例子來說明,什麼是 余弦相似性 為了簡單起見,我們先從句子著手。句子a 我喜歡看電視,不喜歡看電影。句子b 我不喜歡看電視,也不喜歡看電影。請問怎樣才能計算上面兩句話的相似程度?基本思路是 如果這兩句話的用...

TF IDF與余弦相似性

詞頻 term frequency,縮寫為tf 停用詞 表示對找到結果毫無幫助 必須過濾掉的詞,如 的 是 在 這一類最常用的詞 詞頻詞頻 tf 某個詞在文章中出現的次數 考慮到文章有長短之分,所以要對詞頻引數進行歸一化處理,下面是兩種歸一化的方法 1 詞頻 tf 某個詞在 文章中出 現的次數 文章...

余弦相似性的應用 找出相似文章

為了找出相似的文章,需要用到 余弦相似性 cosine similiarity 下面,我舉乙個例子來說明,什麼是 余弦相似性 為了簡單起見,我們先從句子著手。table 句子a 我喜歡看電視,不喜歡看電影。句子b 我不喜歡看電視,也不喜歡看電影。table 請問怎樣才能計算上面兩句話的相似程度?基本...