Middle — Senior
Kako izračunati kosinusnu sličnost između pitanja?
sobes.tech АИ
Одговор од АИ
Косинусна sličnost je mera sličnosti između dva vektora, koja se računa kao kosinus ugla između njih. Za pitanja (na primer, tekstualna), prvo je potrebno predstaviti svako pitanje u obliku vektora (embedding), na primer pomoću modela Word2Vec, BERT ili TF-IDF.
Kako izračunati kosinusnu sličnost:
- Pretvoriti svako pitanje u numerički vektor.
- Izračunati kosinus ugla između dva vektora:
[ \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}} ]
Primer u Python-u pomoću biblioteke numpy:
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)
# Primeri vektora
q1 = np.array([1, 2, 3])
q2 = np.array([4, 5, 6])
similarity = cosine_similarity(q1, q2)
print(f"Kosinusna sličnost: {similarity}")
Na ovaj način, kosinusna sličnost pokazuje koliko su pitanja slična po značenju u prostoru embeddinga.