按相似度排序
现在您已经为所有特征生成了嵌入向量,下一步是计算相似度。在本练习中,您将定义一个名为 find_n_closest() 的函数,用于计算查询向量与一组嵌入向量之间的余弦距离,并返回 n 个最小距离及其索引。
在下一个练习中,您将使用该函数来驱动语义商品搜索应用。
distance 已从 scipy.spatial 导入。
本练习是课程的一部分
使用 OpenAI API 的 Embeddings 入门
练习说明
- 计算
query_vector与embedding之间的余弦距离。 - 向
distances列表追加一个包含dist及其index的字典。 - 按每个字典的
'distance'键对distances列表进行排序。 - 返回
distances_sorted中的前n个元素。
交互式实操练习
通过完成这段示例代码来试试这个练习。
def find_n_closest(query_vector, embeddings, n=3):
distances = []
for index, embedding in enumerate(embeddings):
# Calculate the cosine distance between the query vector and embedding
dist = ____
# Append the distance and index to distances
distances.append({"distance": ____, "index": ____})
# Sort distances by the distance key
distances_sorted = ____
# Return the first n elements in distances_sorted
return ____