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

Έτσι, η συνημίτονη ομοιότητα δείχνει πόσο παρόμοιες είναι οι ερωτήσεις ως προς το νόημα στον χώρο των embeddings.