首页 > 解决方案 > 向现有余弦相似度矩阵添加新元素

问题描述

我用 sklearn.metrics.pairwise 的 cosine_similarity 计算了一个余弦相似度矩阵。

Matrix:
       2414514  413915  419480  473104  534621  609406    654913    654914  \
2414514  1.000000     0.0     0.0     0.0     0.0     0.0  0.755929  0.755929
413915   0.000000     1.0     0.0     0.0     0.0     1.0  0.000000  0.000000
419480   0.000000     0.0     1.0     1.0     1.0     0.0  0.000000  0.000000
473104   0.000000     0.0     1.0     1.0     1.0     0.0  0.000000  0.000000
534621   0.000000     0.0     1.0     1.0     1.0     0.0  0.000000  0.000000
609406   0.000000     1.0     0.0     0.0     0.0     1.0  0.000000  0.000000
654913   0.755929     0.0     0.0     0.0     0.0     0.0  1.000000  1.000000
654914   0.755929     0.0     0.0     0.0     0.0     0.0  1.000000  1.000000
668130   0.000000     0.0     0.0     0.0     0.0     0.0  0.000000  0.000000
668743   0.000000     0.0     0.0     0.0     0.0     0.0  0.000000  0.000000
679691   0.000000     0.0     0.0     0.0     0.0     0.0  0.000000  0.000000
707669   0.000000     0.0     0.0     0.0     0.0     0.0  0.000000  0.000000
749049   0.000000     1.0     0.0     0.0     0.0     1.0  0.000000  0.000000
770946   0.000000     0.0     0.0     0.0     0.0     0.0  0.000000  0.000000

         668130  668743  679691  707669  749049  770946
2414514     0.0     0.0     0.0     0.0     0.0     0.0
413915      0.0     0.0     0.0     0.0     1.0     0.0
419480      0.0     0.0     0.0     0.0     0.0     0.0
473104      0.0     0.0     0.0     0.0     0.0     0.0
534621      0.0     0.0     0.0     0.0     0.0     0.0
609406      0.0     0.0     0.0     0.0     1.0     0.0
654913      0.0     0.0     0.0     0.0     0.0     0.0
654914      0.0     0.0     0.0     0.0     0.0     0.0
668130      1.0     1.0     0.0     1.0     0.0     0.0
668743      1.0     1.0     0.0     1.0     0.0     0.0
679691      0.0     0.0     1.0     0.0     0.0     1.0
707669      1.0     1.0     0.0     1.0     0.0     0.0
749049      0.0     0.0     0.0     0.0     1.0     0.0
770946      0.0     0.0     1.0     0.0     0.0     1.0

但每天,我都有新项目。有没有办法用新项目更新现有矩阵而不计算所有项目?

标签: pythoncosine-similaritytrigonometry

解决方案


您可以仅计算新添加的向量与已经存在的向量的相似性,利用余弦距离是对称的事实并将其连接到前一个矩阵:

****X
****X
****X
****X
XXXX0

其中*s 是原始相似度矩阵,XXXX是新计算的相似度向量。


推荐阅读