我需要计算两个列表之间的余弦相似性,例如列表1是datasetI
,列表2是dataSetII
。我不能使用任何东西,比如numpy或统计模块。我必须使用公共模块(数学等)(并且尽可能少地使用模块,以减少所花费的时间)。
假设dataSetI
是[3, 45, 7, 2]
,而dataSetII
是[2, 54, 13, 15]
。列表的长度总是相等。
当然,余弦相似度介于0和1之间,因此,余弦相似度将用format(round(cosine, 3))
四舍五入到小数点后三位或四位。
非常感谢你的帮助。
Tags:
另一个版本仅基于
numpy
可以使用
cosine_similarity
函数形式sklearn.metrics.pairwise
docs你应该试试SciPy。它有许多有用的科学程序,例如“数值计算积分、求解微分方程、优化和稀疏矩阵的程序”,它使用超高速优化的NumPy进行数字运算。安装请参见here。
请注意,space.distance.cosine计算的是距离,而不是相似度。因此,必须从1中减去该值,才能获得相似性。
相关问题 更多 >
编程相关推荐