给定一个稀疏矩阵列表,计算矩阵中每个列(或行)之间的余弦相似度的最佳方法是什么?我宁愿不迭代n-choose-two次。假设输入矩阵是:A=[010010011111010]稀疏表示为:A=0,10,41,21,31,42,02,12,3在Python中,使用矩阵输入格式很简单:importnumpyasnpfromsklearn.metricsimportpairwise_distancesfromscipy.spatial.distanceimportcosineA=np.array([[0,1,0,0,1],[0,0,1,1,1],[1,1,0,1,0]])dist_out=1-
我对使用Solr对余弦相似度算法建模的可能方法很感兴趣。我有分配了矢量的项目,例如:items=[{id:1,vector:[0,0,0,2,3,0,0]},{id:2,vector:[0,1,0,1,5,0,0]},{id:3,vector:[2,3,0,0,0,1,0]},{id:4,vector:[1,2,4,6,5,0,0]}]以及其他需要排名的搜索向量。目前,我通过遍历所有项目并根据输入向量为它们分配一个等级,在ruby中对此进行建模。这是我正在使用的余弦相似度的实现:moduleSimilarityCalculatordefself.get_similarity(vec