Middle — Senior
Hogyan számoljuk ki a kérdések közötti koszinusz hasonlóságot?
sobes.tech MI
Válasz az MI-től
A koszinusz hasonlóság két vektor közötti hasonlóság mértéke, amelyet a közöttük lévő szög koszinusza számít ki. Kérdések (például szöveges kérdések) esetén először minden kérdést vektorként (embeddingként) kell ábrázolni, például Word2Vec, BERT vagy TF-IDF modellek segítségével.
Hogyan számoljuk a koszinusz hasonlóságot:
- Minden kérdést számszerű vektorrá alakítunk.
- Kiszámítjuk a két vektor közötti szög koszinuszát:
[ \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}} ]
Példa Pythonban a numpy könyvtár segítségével:
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)
# Példavektorok
q1 = np.array([1, 2, 3])
q2 = np.array([4, 5, 6])
similarity = cosine_similarity(q1, q2)
print(f"Koszinusz hasonlóság: {similarity}")
Így a koszinusz hasonlóság megmutatja, hogy a kérdések mennyire hasonlóak a jelentés szempontjából a beágyazási térben.