python - 向现有余弦相似度矩阵添加新元素
问题描述
我用 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
但每天,我都有新项目。有没有办法用新项目更新现有矩阵而不计算所有项目?
解决方案
您可以仅计算新添加的向量与已经存在的向量的相似性,利用余弦距离是对称的事实并将其连接到前一个矩阵:
****X
****X
****X
****X
XXXX0
其中*
s 是原始相似度矩阵,XXXX
是新计算的相似度向量。
推荐阅读
- request - Wpf Prism Resize 交互窗口
- android - 在 Google Play 商店中为特定的 Google 帐户分发私有应用程序
- python - Python - 创建一列等于另一列的值,但如果第一列中出现两个连续值,则使新列等于 0
- java - 我无法从用户那里获得输入作为 java 中的浮点数
- java - 在控制台中提供数据时跳过第一个字符串输入
- c++ - Qt 的正则表达式与预期不匹配
- python - 如何从 CSV 文件中的一行读取特定值?
- html - 创建一个示例项目,我们可以在其中将元素从工具栏拖放到 react js 中的 div/ 编辑器
- ios - swift中的框架代表
- ios - iOS 位置管理器 - isAuthorizedForPreciseLocation 似乎不存在