- Categorias:
VECTOR_COSINE_SIMILARITY¶
Calcula a similaridade do cosseno entre dois vetores.
A similaridade do cosseno é baseada no ângulo entre dois vetores em um espaço multidimensional; a magnitude dos vetores não é considerada. O valor de similaridade do cosseno é o produto interno dos vetores dividido pelo produto de seus comprimentos. A similaridade do cosseno está sempre no intervalo [-1, 1]
. Por exemplo, vetores idênticos têm uma similaridade de cosseno de 1
, dois vetores ortogonais têm uma similaridade de 0
, e dois vetores opostos têm uma similaridade de -1
.
- Consulte também:
VECTOR_INNER_PRODUCT , VECTOR_L1_DISTANCE , VECTOR_L2_DISTANCE , Incorporações de vetor
Sintaxe¶
VECTOR_COSINE_SIMILARITY( <vector>, <vector> )
Argumentos¶
vector
O valor VECTOR para calcular o ângulo.
vector
O valor VECTOR para calcular o ângulo.
Retornos¶
Retorna um valor FLOAT, no intervalo [-1, 1]
que indica a similaridade do cosseno entre os dois vetores de entrada.
Notas de uso¶
Devido às otimizações computacionais nas funções de comparação de vetores, os erros de ponto flutuante podem ser um pouco maiores do que o normal (ou seja, cerca de 1e-4).
Exemplos¶
Este exemplo chama a chama VECTOR_COSINE_SIMILARITY para encontrar o vetor mais próximo 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... |
+-------------------------+