Categorias:

Funções de similaridade vetorial

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_L2_DISTANCE , Incorporações de vetor

Sintaxe

VECTOR_COSINE_SIMILARITY( <vector>, <vector> )
Copy

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 a 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 (por exemplo, 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;
Copy
+-------------------------+
| [1, 2.2, 3] | 0.9990... |
+-------------------------+