在我們計算相似度時,常常用到余弦夾角來判斷兩個向量或者矩陣之間的相似度,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 請問怎樣才能計算上面兩句話的相似程度?基本...