[[1, 0.0010079145431518555], [1, 0.0012657642364501953], [-1, 0.0021905899047851562]] [[1, 0.0008200000000000429], [1, 0.0007699999999999374]] Error: 无法启动线程 Expected 2D array, got 1D array instead: array=[1. 0.00100791 1. 0.00126576]. Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
时间: 2024-03-14 09:43:03 浏览: 49
看起来您的代码出现了错误,错误提示指出您传递给余弦相似度函数的向量是一维的,而函数需要的是二维的数组。这个错误通常是由于传递给函数的向量未正确转换为二维数组导致的。
您可以尝试将向量转换为二维数组,即将每个向量作为一行,每个元素作为一列。例如,对于path1中的向量,您可以使用以下代码将其转换为二维数组:
```
path1_arr = np.array(path1).reshape(1, -1)
```
这里使用了numpy库中的array函数和reshape函数,将path1转换为一个1行3列的数组。同样,您可以使用类似的代码将path2中的向量转换为二维数组。
然后,您可以使用numpy库中的cosine_similarity函数来计算这两个向量的余弦相似度。例如,以下代码计算了path1和path2的余弦相似度:
```
from sklearn.metrics.pairwise import cosine_similarity
path1_arr = np.array(path1).reshape(1, -1)
path2_arr = np.array(path2).reshape(1, -1)
similarity = cosine_similarity(path1_arr[:, :2], path2_arr).item()
print(similarity)
```
这里使用了sklearn库中的cosine_similarity函数,计算path1中的第一向量和第二向量与path2中的两个向量拼接后的相似度。最后使用item函数将结果转换为标量,打印输出即可。
阅读全文