Sobes.tech
Middle — Senior

Kā aprēķināt jautājumu kosinusa līdzību?

sobes.tech AI

Atbilde no AI

Kosīniskā līdzība ir mērs, kas raksturo divu vektoru līdzību, un to aprēķina kā leņķa kosinusu starp tiem. Jautājumiem (piemēram, teksta jautājumiem) vispirms jāattēlo katrs jautājums kā vektors (embedding), piemēram, izmantojot Word2Vec, BERT vai TF-IDF modeļus.

Kā aprēķināt kosīnisko līdzību:

  1. Katru jautājumu pārveidot par skaitlisku vektoru.
  2. Aprēķināt leņķa kosinusu starp abiem vektoriem:

[ \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}} ]

Piemērs Python valodā ar numpy bibliotēku:

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)

# Vektoru piemēri
q1 = np.array([1, 2, 3])
q2 = np.array([4, 5, 6])

similarity = cosine_similarity(q1, q2)
print(f"Kosīniskā līdzība: {similarity}")

Tādējādi kosīniskā līdzība rāda, cik līdzīgi ir jautājumi pēc nozīmes embedingu telpā.