余弦相似度計算:
1 ```math 2 \cos(\bf{v_1}, \bf{v_2}) = \frac{\left( 3 v_1 \times v_2 \right)}{||v_1|| * ||v_2|| } 4 5 ```
1 ### 矩陣矢量化操作 2 ### 按行計算余弦相似度 3 ### 兩矩陣計算相似度向量應為同維度 4 ### 返回值RES為A矩陣每行對B矩陣每行向量余弦值 5 ### RES[i,j] 表示A矩陣第i行向量與B矩陣第j行向量余弦相似度 6 7 def cosine_Matrix(_matrixA, _matrixB): 8 import numpy 9 _matrixA_matrixB = _matrixA * _matrixB.transpose() 10 ### 按行求和,生成一個列向量 11 ### 即各行向量的模 12 _matrixA_norm = numpy.sqrt(numpy.multiply(_matrixA,_matrixA).sum(axis=1)) 13 _matrixB_norm = numpy.sqrt(numpy.multiply(_matrixB,_matrixB).sum(axis=1)) 14 return numpy.divide(_matrixA_matrixB, _matrixA_norm * _matrixB_norm.transpose()) 15 16 ### 向量計算余弦相似度 17 ### 計算兩向量余弦相似度 18 ### 返回_vec1和_vec2余弦相似度 19 ### 此處用於計算向量余弦相似度,驗證矩陣相似度計算結果 20 21 def cosine(_vec1, _vec2): 22 import numpy 23 return float(numpy.sum(_vec1*_vec2))/(numpy.linalg.norm(_vec1)*numpy.linalg.norm(_vec2))