In [18]: a.shape Out[18]: (200,) In [19]: b.shape Out[19]: (200,) In [20]: timeit dot(a, b)/(norm(a)*norm(b)) 8.56 µs ± 929 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each) 我用numpy测试的耗时是8µs,java没理由比这慢的。难道你的系统要求耗时连µs都嫌慢? 要么就是你的问题没有描述清楚,是不是有大量的200维数组,然后找到其中和输入数组最相似的? 这种的话,就需要一定的前置筛选条件筛选出小范围的候选数组。 比如有十万篇文章,每篇文章都被向量化成200维数组,那每次应该先通过文章类别、发表时间等筛选出约100篇候选文章,然后再去算文章向量的相似度。
我用numpy测试的耗时是
8µs
,java没理由比这慢的。难道你的系统要求耗时连µs
都嫌慢?要么就是你的问题没有描述清楚,是不是有大量的200维数组,然后找到其中和输入数组最相似的?
这种的话,就需要一定的前置筛选条件筛选出小范围的候选数组。
比如有十万篇文章,每篇文章都被向量化成200维数组,那每次应该先通过文章类别、发表时间等筛选出约100篇候选文章,然后再去算文章向量的相似度。