COSINE_DISTANCE (Lakehouse v1)
Ten dokument przedstawia funkcję cosine_distance w PlaidCloud Lakehouse i pokazuje, jak za jej pomocą mierzyć podobieństwo dokumentów.
Funkcja cosine_distance w PlaidCloud Lakehouse jest wbudowaną funkcją obliczającą odległość kosinusową między dwoma wektorami. Jest powszechnie używana w zadaniach przetwarzania języka naturalnego, takich jak podobieństwo dokumentów i systemy rekomendacji.
Odległość kosinusowa jest miarą podobieństwa między dwoma wektorami, opartą na kosinusie kąta między nimi. Funkcja przyjmuje dwa wektory wejściowe i zwraca wartość od 0 do 1, gdzie 0 oznacza wektory identyczne, a 1 wektory ortogonalne (całkowicie niepodobne).
Składnia Analyze
Dział zatytułowany „Składnia Analyze”func.cosine_distance(<vector1>, <vector2>)Przykłady SQL
Dział zatytułowany „Przykłady SQL”Tworzenie tabeli i wstawianie przykładowych danych
Utwórzmy tabelę do przechowywania kilku przykładowych dokumentów tekstowych i odpowiadających im osadzeń:
CREATE TABLE articles ( id INT, title VARCHAR, content VARCHAR, embedding ARRAY(FLOAT32));Teraz wstawmy do tabeli kilka przykładowych dokumentów:
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...'));Wyszukiwanie podobnych dokumentów
Teraz znajdźmy dokumenty najbardziej podobne do danego zapytania, używając funkcji 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;Wynik:
┌──────┬──────────────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────┐│ 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 │└──────┴──────────────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────┘