开始使用免费开始使用

按相似度排序

现在您已经为所有特征生成了嵌入向量,下一步是计算相似度。在本练习中,您将定义一个名为 find_n_closest() 的函数,用于计算查询向量与一组嵌入向量之间的余弦距离,并返回 n 个最小距离及其索引。

在下一个练习中,您将使用该函数来驱动语义商品搜索应用。

distance 已从 scipy.spatial 导入。

本练习是课程的一部分

使用 OpenAI API 的 Embeddings 入门

查看课程

练习说明

  • 计算 query_vectorembedding 之间的余弦距离。
  • 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 ____
编辑并运行代码