series_cosine_similarity_fl()
Calcola la somiglianza del cosno di due vettori numerici.
La funzione è una funzione series_cosine_similarity_fl()
definita dall'utente che accetta un'espressione contenente due matrici numeriche dinamiche come input e calcola la somiglianza del cosno.
Nota
Usare la funzione nativa series_cosine_similarity() anziché la funzione descritta in questo documento. La funzione nativa offre la stessa funzionalità ed è migliore per prestazioni e scalabilità. Questo documento viene fornito solo a scopo di riferimento.
Sintassi
series_cosine_similarity_fl(
vec1,
vec2,
[ vec1_size [,
vec2_size ]])
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Tipo | Obbligatoria | Descrizione |
---|---|---|---|
vec1 | dynamic |
✔️ | Matrice di valori numerici. |
vec2 | dynamic |
✔️ | Matrice di valori numerici che corrisponde alla stessa lunghezza di vec1. |
vec1_size | real |
Dimensione di vec1. Equivale alla radice quadrata del prodotto punto del vettore con se stesso. | |
vec2_size | real |
Dimensione di vec2. |
Definizione di funzione
È possibile definire la funzione incorporando il codice come funzione definita da query o creandola come funzione archiviata nel database, come segue:
Definire la funzione usando l'istruzione let seguente. Non sono necessarie autorizzazioni.
Importante
Un'istruzione let non può essere eseguita autonomamente. Deve essere seguito da un'istruzione espressione tabulare. Per eseguire un esempio funzionante di series_cosine_similarity_fl()
, vedere Esempio.
let series_cosine_similarity_fl=(vec1:dynamic, vec2:dynamic, vec1_size:real=double(null), vec2_size:real=double(null))
{
let dp = series_dot_product(vec1, vec2);
let v1l = iff(isnull(vec1_size), sqrt(series_dot_product(vec1, vec1)), vec1_size);
let v2l = iff(isnull(vec2_size), sqrt(series_dot_product(vec2, vec2)), vec2_size);
dp/(v1l*v2l)
};
// Write your query to use the function here.
Esempio
Per usare una funzione definita da query, richiamarla dopo la definizione di funzione incorporata.
let series_cosine_similarity_fl=(vec1:dynamic, vec2:dynamic, vec1_size:real=double(null), vec2_size:real=double(null))
{
let dp = series_dot_product(vec1, vec2);
let v1l = iff(isnull(vec1_size), sqrt(series_dot_product(vec1, vec1)), vec1_size);
let v2l = iff(isnull(vec2_size), sqrt(series_dot_product(vec2, vec2)), vec2_size);
dp/(v1l*v2l)
};
let s1=pack_array(0, 1);
let s2=pack_array(sqrt(2), sqrt(2));
print angle=acos(series_cosine_similarity_fl(s1, s2))/(2*pi())*360
Output
angle |
---|
45 |
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per