Độ tương đồng cosine giữa các embedding

Dễ

numpyembeddingAI4 test · 12 giây · sai số 1e-5

Embedding biểu diễn từ/câu thành vector; hai vector càng cùng hướng thì càng giống nghĩa. Tính ma trận độ tương đồng cosine S (n, m) với S[i, j] = (A[i]·B[j]) / (‖A[i]‖·‖B[j]‖).

  • Chuẩn hóa từng hàng về độ dài 1 rồi nhân ma trận A_norm @ B_norm.T.
  • Đảm bảo không có vector 0 trong test.

Viết hàm

cosine_similarity(A, B)

Tham số

  • A: ma trận (n, d)
  • B: ma trận (m, d)

Trả về

Ma trận (n, m), giá trị trong [−1, 1].

Ví dụ

Tham số

A = [[1,0],[1,1]]
B = [[2,0],[0,3]]

Kết quả

[[1.0,0.0],[0.707106781,0.707106781]]

Hai vector ngược chiều → −1

Tham số

A = [[1,2,3]]
B = [[-1,-2,-3]]

Kết quả

[[-1.0]]

Bài tiếp theo: Trung bình trượt →

Python · NumPy

Bấm “Chạy thử” để gọi cosine_similarity() với 2 ví dụ trong đề và so sánh kết quả. Dùng print() thoải mái để gỡ lỗi.