如何在Python中运行用于余弦相似的大矩阵?

时间:2016-01-20 03:07:15

标签: python numpy scikit-learn cosine-similarity

我想计算文章之间的余弦相似度。我遇到的问题是,我的实现方法需要很长时间才能运行我将要运行的数据大小。

from scipy import spatial
import numpy as np 
from numpy import array
import sklearn
from sklearn.metrics.pairwise import cosine_similarity 

I = [[3, 45, 7, 2],[2, 54, 13, 15], [2, 54, 1, 13]]

II = [2, 54, 13, 15]

print cosine_similarity(II, I)

通过上面的例子,计算I和II已经花了1.0秒,我的数据的维度大约是(100K,2K)。

我可以使用其他软件包来运行庞大的矩阵吗?

2 个答案:

答案 0 :(得分:2)

你可以使用具有metric ='cosine'和n_jobs =的pairwise_kernels。这将划分数据并并行运行

答案 1 :(得分:0)

使用<ion-footer-bar></ion-footer-bar>,这对我来说更快

sklearn.preprocessing.normalize

(单位归一化向量之间的点积相当于余弦相似度)。