Ir al contenido

Este documento ofrece una descripción general de la función cosine_distance de PlaidCloud Lakehouse y muestra cómo medir la similitud entre documentos con ella.

La función cosine_distance de PlaidCloud Lakehouse es una función integrada que calcula la distancia del coseno entre dos vectores. Se utiliza habitualmente en tareas de procesamiento del lenguaje natural, como la similitud entre documentos y los sistemas de recomendación.

La distancia del coseno es una medida de similitud entre dos vectores basada en el coseno del ángulo que forman. La función toma dos vectores de entrada y devuelve un valor entre 0 y 1, donde 0 indica vectores idénticos y 1 indica vectores ortogonales (completamente distintos).

func.cosine_distance(<vector1>, <vector2>)

Creación de una tabla e inserción de datos de ejemplo

Cree una tabla para almacenar algunos documentos de texto de ejemplo y sus incrustaciones correspondientes:

CREATE TABLE articles (
id INT,
title VARCHAR,
content VARCHAR,
embedding ARRAY(FLOAT32)
);

Ahora inserte algunos documentos de ejemplo en la tabla:

INSERT INTO articles (id, title, content, embedding)
VALUES
(1, 'Python for Data Science', 'Python is a versatile programming language widely used in data science...', ai_embedding_vector('Python is a versatile programming language widely used in data science...')),
(2, 'Introduction to R', 'R is a popular programming language for statistical computing and graphics...', ai_embedding_vector('R is a popular programming language for statistical computing and graphics...')),
(3, 'Getting Started with SQL', 'Structured Query Language (SQL) is a domain-specific language used for managing relational databases...', ai_embedding_vector('Structured Query Language (SQL) is a domain-specific language used for managing relational databases...'));

Consulta de documentos similares

Ahora busque los documentos más similares a una consulta dada con la función cosine_distance:

SELECT
id,
title,
content,
cosine_distance(embedding, ai_embedding_vector('How to use Python in data analysis?')) AS similarity
FROM
articles
ORDER BY
similarity ASC
LIMIT 3;

Resultado:

┌──────┬──────────────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────┐
│ id │ title │ content │ similarity │
├──────┼──────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────┤
│ 1 │ Python for Data Science │ Python is a versatile programming language widely used in data science... │ 0.1142081 │
│ 2 │ Introduction to R │ R is a popular programming language for statistical computing and graphics... │ 0.18741018 │
│ 3 │ Getting Started with SQL │ Structured Query Language (SQL) is a domain-specific language used for managing relational databases... │ 0.25137568 │
└──────┴──────────────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────┘