series_cosine_similarity_fl()
두 숫자 벡터의 코사인 유사성을 계산합니다.
함수 series_cosine_similarity_fl()
는 두 개의 동적 숫자 배열이 포함된 식을 입력으로 사용하고 코사인 유사성을 계산하는 UDF(사용자 정의 함수)입니다.
참고
이 문서에 설명된 함수 대신 네이티브 함수 series_cosine_similarity() 를 사용합니다. 네이티브 함수는 동일한 기능을 제공하며 성능 및 확장성에 더 적합합니다. 이 문서는 참조 목적으로만 제공됩니다.
Syntax
series_cosine_similarity_fl(
vec1,
vec2,
[ vec1_size [,
vec2_size ]])
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
이름 | 형식 | 필수 | Description |
---|---|---|---|
vec1 | dynamic |
✔️ | 숫자 값의 배열입니다. |
vec2 | dynamic |
✔️ | vec1과 길이가 같은 숫자 값의 배열입니다. |
vec1_size | real |
vec1의 크기입니다. 이는 벡터 자체의 점 곱의 제곱근과 동일합니다. | |
vec2_size | real |
vec2의 크기입니다. |
함수 정의
코드를 쿼리 정의 함수로 포함하거나 다음과 같이 데이터베이스에 저장된 함수로 만들어 함수를 정의할 수 있습니다.
다음 let 문을 사용하여 함수를 정의합니다. 사용 권한이 필요 없습니다.
중요
let 문은 자체적으로 실행할 수 없습니다. 테이블 형식 식 문 뒤에 이어서야 합니다. 의 작업 예제를 실행하려면 예제 series_cosine_similarity_fl()
를 참조 하세요.
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.
예제
쿼리 정의 함수를 사용하려면 포함된 함수 정의 다음에 호출합니다.
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
출력
각도 |
---|
45 |
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기