写一段可以计算向量平均相似度的python代码
时间: 2024-02-06 13:02:33 浏览: 172
如果你有多个向量,并且想要计算它们间的平均相似度,可以使用以下Python代码示例:
```python
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
def average_similarity(vectors):
num_vectors = len(vectors)
similarity_sum = 0
for i in range(num_vectors):
for j in range(i+1, num_vectors):
similarity = cosine_similarity([vectors[i]], [vectors[j]])[0][0]
similarity_sum += similarity
average_similarity = similarity_sum / (num_vectors * (num_vectors - 1) / 2)
return average_similarity
# 示例用法
vectors = [
np.array([1, 2, 3]),
np.array([4, 5, 6]),
np.array([7, 8, 9])
]
avg_similarity = average_similarity(vectors)
print(f"Average similarity: {avg_similarity}")
```
在上面的示例代码中,我们定义了一个名为`average_similarity`的函数,它接受一个向量列表`vectors`作为参数。
函数内部使用嵌套的循环来计算每对向量之间的余弦相似度,并将相似度累加到`similarity_sum`中。
最后,通过将`similarity_sum`除以`(num_vectors * (num_vectors - 1) / 2)`来计算平均相似度。这里使用了组合数的公式`(n * (n-1) / 2)`来计算对比的总数,其中`n`是向量数量。
你可以根据需要修改`vectors`的值,并调用`average_similarity`函数来计算向量之间的平均相似度。最后,会打印出平均相似度的结果。
阅读全文