You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用余弦相似度评估模型时遇TypeError错误求助

余弦相似度计算报错解决方案

问题原因

你代码里的norm是scipy.stats.norm(正态分布生成工具),不是计算向量范数的函数。调用它会返回rv_continuous_frozen类型的分布对象,这类对象无法执行乘法运算,所以触发TypeError。

解决方法

改用专门计算向量范数的函数,有两种常用选择:

方案1:使用NumPy的范数函数

导入numpy.linalg.norm,这是计算向量L2范数(余弦相似度默认使用的范数)的标准工具:

import numpy as np
from numpy.linalg import norm

# 示例向量
v1 = [1.2, 3.4, 5.6]
v2 = [7.8, 9.0, 2.1]

# 正确计算余弦相似度
cosine_similarity = np.dot(np.array(v1), np.array(v2)) / (norm(np.array(v1)) * norm(np.array(v2)))
print(cosine_similarity)

方案2:使用SciPy的范数函数

如果项目依赖SciPy,也可以用scipy.linalg.norm,注意不要和scipy.stats.norm混淆:

import numpy as np
from scipy.linalg import norm

v1 = [1.2, 3.4, 5.6]
v2 = [7.8, 9.0, 2.1]

cosine_similarity = np.dot(np.array(v1), np.array(v2)) / (norm(np.array(v1)) * norm(np.array(v2)))
print(cosine_similarity)

关键提醒

检查你的导入语句,确保没有错误导入from scipy.stats import norm——这个模块是用来生成正态分布样本、计算分布概率的,和向量范数完全无关。

内容的提问来源于stack exchange,提问作者Siva Muthi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 21:57:41