Sobes.tech
Middle — Senior

როგორ ითვლება კითხვებს შორის კოსინუსური მსგავსება?

sobes.tech AI

პასუხი AI-სგან

კოსინუსის მსგავსება არის ორი ვექტორის შორის მსგავსების ზომა, რომელიც გამოითვლება მათ შორის კუთხის კოსინუსის სახით. კითხვებისთვის (მაგალითად, ტექსტური) ჯერ უნდა წარმოადგინოთ თითოეული კითხვა ვექტორად (embedding), მაგალითად Word2Vec, BERT ან TF-IDF მოდელების გამოყენებით.

როგორ გამოთვალოთ კოსინუსის მსგავსება:

  1. გარდაქმნათ თითოეული კითხვა რიცხვობრივ ვექტორად.
  2. გამოითვალეთ ორი ვექტორის შორის კუთხის კოსინუსი:

[ \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}")

ამ გზით, კოსინუსის მსგავსება აჩვენებს, რამდენად ჰგავს კითხვები მნიშვნელობით, გარჩევის სივრცეში.