COSINE_DISTANCE (Lakehouse v1)
本文概述 PlaidCloud Lakehouse 中的 cosine_distance 函数,并演示如何使用该函数衡量文档相似度。
PlaidCloud Lakehouse 中的 cosine_distance 函数是一个内置函数,用于计算两个向量之间的余弦距离。它常用于自然语言处理任务,例如文档相似度和推荐系统。
余弦距离是基于两个向量夹角余弦值的相似度度量。该函数接收两个输入向量,并返回介于 0 和 1 之间的值,其中 0 表示向量完全相同,1 表示向量正交(完全不相似)。
Analyze 语法
Section titled “Analyze 语法”func.cosine_distance(<vector1>, <vector2>)SQL 示例
Section titled “SQL 示例”创建表并插入示例数据
先创建一个表,用于存储一些示例文本文档及其对应的嵌入向量:
CREATE TABLE articles ( id INT, title VARCHAR, content VARCHAR, embedding ARRAY(FLOAT32));接下来,向表中插入一些示例文档:
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...'));查询相似文档
现在,使用 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;结果:
┌──────┬──────────────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────┐│ 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 │└──────┴──────────────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────┘