Kategorien:

Vektorähnlichkeitsfunktionen

VECTOR_COSINE_SIMILARITY

Berechnet die Cosinus-Ähnlichkeit zwischen zwei Vektoren.

Die Cosinus-Ähnlichkeit basiert auf dem Winkel zwischen zwei Vektoren in einem mehrdimensionalen Raum, wobei die Größe der Vektoren nicht berücksichtigt wird. Der Wert der Cosinus-Ähnlichkeit ist das innere Produkt der Vektoren geteilt durch das Produkt ihrer Längen. Die Cosinus-Ähnlichkeit liegt immer im Intervall [-1, 1]. Beispielsweise haben identische Vektoren eine Cosinus-Ähnlichkeit von 1, zwei orthogonale Vektoren haben eine Ähnlichkeit von 0 und zwei entgegengesetzte Vektoren haben eine Ähnlichkeit von -1.

Siehe auch:

VECTOR_INNER_PRODUCT, VECTOR_L2_DISTANCE, Vektoreinbettungen

Syntax

VECTOR_COSINE_SIMILARITY( <vector>, <vector> )
Copy

Argumente

vector

Der VECTOR-Wert, aus dem der Winkel berechnet wird.

vector

Der VECTOR-Wert, nach dem der Winkel berechnet wird.

Rückgabewerte

Gibt einen FLOAT-Wert im Intervall [-1, 1] zurück, der die Cosinus-Ähnlichkeit zwischen den beiden Eingabevektoren angibt.

Nutzungshinweise

  • Aufgrund von Berechnungsoptimierungen in den Vektorvergleichsfunktionen können Gleitkommafehler etwas größer als üblich sein (z. B. etwa 1e-4).

Beispiele

In diesem Beispiel wird die Funktion VECTOR_COSINE_SIMILARITY aufgerufen, um den Vektor zu finden, der [1,2,3] am nächsten kommt.

SELECT a, VECTOR_COSINE_SIMILARITY(a, [1,2,3]::VECTOR(FLOAT, 3)) AS similarity
  FROM vectors
  ORDER BY similarity DESC
  LIMIT 1;
Copy
+-------------------------+
| [1, 2.2, 3] | 0.9990... |
+-------------------------+