Sobes.tech
Middle — Senior

Wie berechnet man die Kosinusähnlichkeit zwischen Fragen?

sobes.tech KI

Antwort von AI

Der Kosinusähnlichkeitsmaß ist ein Maß für die Ähnlichkeit zwischen zwei Vektoren, das als Kosinus des Winkels zwischen ihnen berechnet wird. Für Fragen (z.B. Textfragen) muss jede Frage zunächst als Vektor (Embedding) dargestellt werden, z.B. mit Modellen wie Word2Vec, BERT oder TF-IDF.

So berechnet man die Kosinusähnlichkeit:

  1. Jede Frage in einen Zahlenvektor umwandeln.
  2. Den Kosinus des Winkels zwischen den beiden Vektoren berechnen:

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

Beispiel in Python mit der numpy-Bibliothek:

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)

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

similarity = cosine_similarity(q1, q2)
print(f"Kosinusähnlichkeit: {similarity}")

Auf diese Weise zeigt die Kosinusähnlichkeit, wie ähnlich die Fragen im Bedeutungsraum der Embeddings sind.