Middle — Senior
Kaip apskaičiuoti klausimų kosinusinį panašumą?
sobes.tech AI
Atsakymas iš AI
Kosinusinė panašumas yra matas, kuris apibūdina dviejų vektorių panašumą, ir jis apskaičiuojamas kaip kampo kosinusas tarp jų. Klausimams (pavyzdžiui, tekstiniams) pirmiausia reikia kiekvieną klausimą pavaizduoti kaip vektorių (embeddingą), pavyzdžiui, naudojant Word2Vec, BERT ar TF-IDF modelius.
Kaip apskaičiuoti kosinusinę panašumą:
- Konvertuoti kiekvieną klausimą į skaitmeninį vektorių.
- Apskaičiuoti kampo kosinusą tarp dviejų vektorių:
[ \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}} ]
Pavyzdys Python kalba naudojant numpy biblioteką:
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)
# Vektorių pavyzdžiai
q1 = np.array([1, 2, 3])
q2 = np.array([4, 5, 6])
similarity = cosine_similarity(q1, q2)
print(f"Kosinusinė panašumas: {similarity}")
Taip kosinusinė panašumas parodo, kiek klausimai yra panašūs pagal prasmę embeddingų erdvėje.