余弦相似度计算:
1 ```math 2 cos(f{v_1}, f{v_2}) = frac{left( 3 v_1 imes v_2 ight)}{||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))