- Catégories :
VECTOR_COSINE_SIMILARITY¶
Calcule la similarité cosinus entre deux vecteurs.
La similarité cosinus est basée sur l’angle entre deux vecteurs dans un espace multidimensionnel ; l’ampleur des vecteurs n’est pas prise en compte. La valeur de similarité cosinus est le produit interne des vecteurs divisé par le produit de leurs longueurs. La similitude cosinus se situe toujours dans l’intervalle [-1, 1]
. Par exemple, des vecteurs identiques ont un similarité cosinus 1
, deux vecteurs orthogonaux ont une similarité 0
et deux vecteurs opposés ont une similarité -1
.
- Voir aussi :
VECTOR_INNER_PRODUCT , VECTOR_L2_DISTANCE , Intégrations vectorielles
Syntaxe¶
VECTOR_COSINE_SIMILARITY( <vector>, <vector> )
Arguments¶
vector
Valeur VECTOR à partir de laquelle calculer l’angle.
vector
Valeur VECTOR vers laquelle calculer l’angle.
Renvoie¶
Renvoie une valeur FLOAT dans l’intervalle [-1, 1]
qui indique la similarité cosinus entre les deux vecteurs d’entrée.
Notes sur l’utilisation¶
En raison d’optimisations de calcul des fonctions de comparaison de vecteurs, les erreurs en virgule flottante peuvent être légèrement plus importantes que d’habitude (par exemple, environ 1e-4).
Exemples¶
Cet exemple appelle la fonction VECTOR_COSINE_SIMILARITY pour trouver le vecteur le plus proche de [1,2,3]
.
SELECT a, VECTOR_COSINE_SIMILARITY(a, [1,2,3]::VECTOR(FLOAT, 3)) AS similarity
FROM vectors
ORDER BY similarity DESC
LIMIT 1;
+-------------------------+
| [1, 2.2, 3] | 0.9990... |
+-------------------------+