Middle — Senior
Kuidas arvutada küsimuste kosinuslikku sarnasust?
sobes.tech AI
Vastus AI-lt
Kosinus sarnas on mõõt, mis näitab kahe vektori sarnasust ning arvutatakse nende vahelise nurga kosinuse kaudu. Küsimuste (näiteks tekstiliste) puhul tuleb esmalt iga küsimus esitada vektorina (embedding), kasutades näiteks Word2Vec, BERT või TF-IDF mudeleid.
Kuidas arvutada kosinus sarnasust:
- Muuta iga küsimus arvulisse vektorisse.
- Arvutada kahe vektori vahelise nurga kosinus:
[ \text{cosine_similarity}(A, B) = \frac{A \cdot B}{|A| |B|} = \frac{\sum_{i=1}^n A_i B_i}{\sqrt{\sum_{i=1}^n A_i^2} \sqrt{\sum_{i=1}^n B_i^2}} ]
Näide Pythonis numpy raamatukoguga:
import numpy as np
def cosine_similarity(vec1, vec2):
dot_product = np.dot(vec1, vec2)
norm_a = np.linalg.norm(vec1)
norm_b = np.linalg.norm(vec2)
return dot_product / (norm_a * norm_b)
# Vektorite näited
q1 = np.array([1, 2, 3])
q2 = np.array([4, 5, 6])
similarity = cosine_similarity(q1, q2)
print(f"Kosinus sarnasus: {similarity}")
Seega näitab kosinus sarnasus, kui sarnased on küsimused semantiliselt embedding-ruumis.