Sobes.tech
Middle — Senior

Hoe bereken je de cosinussimilariteit tussen vragen?

sobes.tech AI

Antwoord van AI

De cosine similarity is een maat voor de overeenkomst tussen twee vectoren, berekend als de cosinus van de hoek tussen hen. Voor vragen (bijvoorbeeld tekstuele) moet elke vraag eerst worden weergegeven als een vector (embedding), bijvoorbeeld met behulp van modellen zoals Word2Vec, BERT of TF-IDF.

Hoe de cosine similarity te berekenen:

  1. Zet elke vraag om in een numerieke vector.
  2. Bereken de cosinus van de hoek tussen de twee vectoren:

[ \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}} ]

Voorbeeld in Python met behulp van de numpy-bibliotheek:

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)

# Voorbeelden van vectoren
q1 = np.array([1, 2, 3])
q2 = np.array([4, 5, 6])

similarity = cosine_similarity(q1, q2)
print(f"Cosine similarity: {similarity}")

Op deze manier laat de cosine similarity zien hoe vergelijkbaar de vragen zijn qua betekenis in de embedding-ruimte.