COSINE_DISTANCE (Lakehouse v1)
Ce document présente la fonction cosine_distance de PlaidCloud Lakehouse et montre comment mesurer la similarité de documents avec cette fonction.
La fonction cosine_distance de PlaidCloud Lakehouse est une fonction intégrée qui calcule la distance cosinus entre deux vecteurs. Elle est couramment utilisée dans les tâches de traitement du langage naturel, comme la similarité de documents et les systèmes de recommandation.
La distance cosinus est une mesure de similarité entre deux vecteurs, fondée sur le cosinus de l’angle qui les sépare. La fonction prend deux vecteurs en entrée et renvoie une valeur comprise entre 0 et 1, où 0 indique des vecteurs identiques et 1 des vecteurs orthogonaux (totalement dissemblables).
Syntaxe Analyze
Section intitulée « Syntaxe Analyze »func.cosine_distance(<vector1>, <vector2>)Exemples SQL
Section intitulée « Exemples SQL »Création d’une table et insertion de données d’exemple
Créons une table pour stocker quelques documents texte d’exemple et leurs embeddings correspondants :
CREATE TABLE articles ( id INT, title VARCHAR, content VARCHAR, embedding ARRAY(FLOAT32));Insérons maintenant quelques documents d’exemple dans la table :
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...'));Recherche de documents similaires
Trouvons maintenant les documents les plus proches d’une requête donnée avec la fonction cosine_distance :
SELECT id, title, content, cosine_distance(embedding, ai_embedding_vector('How to use Python in data analysis?')) AS similarityFROM articlesORDER BY similarity ASC LIMIT 3;Résultat :
┌──────┬──────────────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────┐│ 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 │└──────┴──────────────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────┘