Bắt đầu ngayBắt đầu miễn phí

Sắp xếp theo độ tương đồng

Giờ bạn đã nhúng xong tất cả đặc trưng, bước tiếp theo là tính độ tương đồng. Trong bài tập này, bạn sẽ định nghĩa hàm find_n_closest(), hàm này tính khoảng cách cosine giữa một vector truy vấn và danh sách các embedding, rồi trả về n khoảng cách nhỏ nhất kèm theo chỉ số của chúng.

Ở bài tập kế tiếp, bạn sẽ dùng hàm này để xây dựng ứng dụng tìm kiếm ngữ nghĩa cho sản phẩm.

distance đã được nhập từ scipy.spatial.

Bài tập này là một phần của khóa học

Nhập môn Embeddings với OpenAI API

Xem khóa học

Hướng dẫn bài tập

  • Tính khoảng cách cosine giữa query_vectorembedding.
  • Thêm vào danh sách distances một dictionary chứa distindex của nó.
  • Sắp xếp danh sách distances theo khóa 'distance' của mỗi dictionary.
  • Trả về n phần tử đầu tiên trong distances_sorted.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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 ____
Chỉnh sửa và Chạy Mã