我想计算文章之间的余弦相似度。我遇到的问题是,我的实现方法需要很长时间才能运行我将要运行的数据大小。
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)。
我可以使用其他软件包来运行庞大的矩阵吗?
答案 0 :(得分:2)
你可以使用具有metric ='cosine'和n_jobs =的pairwise_kernels。这将划分数据并并行运行
答案 1 :(得分:0)
使用<ion-footer-bar></ion-footer-bar>
,这对我来说更快
sklearn.preprocessing.normalize
(单位归一化向量之间的点积相当于余弦相似度)。