Middle — Senior
Суроолор ортосунда косинус жакындыгын кантип эсептөө керек?
sobes.tech AI
AIден жооп
Косинус окшоштуулугу — бул эки вектор ортосундагы окшоштуулукту өлчөөчү өлчөм, ал алардын ортосундагы бурчтун косинусуна барабар. Суроолор үчүн (мисалы, тексттик) биринчи кезекте ар бир суроону вектор (embedding) түрүндө көрсөтүү керек, мисалы, Word2Vec, BERT же TF-IDF моделдери аркылуу.
Косинус окшоштуулугун кантип эсептөө:
- Ар бир суроону сандык векторго айлантуу.
- Эки вектор арасындагы бурчтун косинусун эсептөө:
[ \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}} ]
Python'до 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)
# Векторлордун мисалдары
q1 = np.array([1, 2, 3])
q2 = np.array([4, 5, 6])
similarity = cosine_similarity(q1, q2)
print(f"Косинус окшоштуулугу: {similarity}")
Ушул жол менен, косинус окшоштуулугу суроолордун мааниси боюнча окшоштугун көрсөтөт.