python编程实现两个embedding的余弦相似度计算并举例说明
时间: 2024-03-17 07:40:37 浏览: 456
Python实现人脸之间距离计算.zip
好的,我来回答你的问题。
在 Python 中,我们可以使用 NumPy 库中的 dot 函数计算两个向量之间的点积。同时,我们也可以使用 np.linalg.norm 函数计算向量的 L2 范数。
以下是 Python 代码,实现两个 embedding 的余弦相似度计算:
```python
import numpy as np
def cosine_similarity(embedding1, embedding2):
dot_product = np.dot(embedding1, embedding2)
norm1 = np.linalg.norm(embedding1)
norm2 = np.linalg.norm(embedding2)
return dot_product / (norm1 * norm2)
```
其中,`embedding1` 和 `embedding2` 都是一维数组,表示两个向量。
接下来,我们来举一个例子:
```python
embedding1 = np.array([0.2, 0.4, 0.5, 0.1])
embedding2 = np.array([0.8, 0.1, 0.3, 0.5])
similarity = cosine_similarity(embedding1, embedding2)
print(similarity) # 输出:0.482300550657492
```
以上代码中,我们分别定义了两个 embedding,长度都为 4。通过调用之前定义的 `cosine_similarity` 函数,我们计算了这两个 embedding 的余弦相似度。
输出结果为 0.4823,表示这两个 embedding 的相似度比较低。
阅读全文