Sobes.tech
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:

  1. Muuta iga küsimus arvulisse vektorisse.
  2. 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.