Độ 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.