PHP에서 코사인 유사성을 코딩하고 있습니다. 때로는 formula이 결과를 제공합니다. inverse cos을 사용하여이 수에서 차수를 도출하려면 1과 0 사이 여야합니다.코사인 유사성 결과가 하나 이상
나는 1을 더 가깝게할수록 차수가 필요 없다는 것을 안다. , 0에 가까울수록 덜 유사합니다.
그러나 나는 1보다 큰 숫자를 어떻게 만들지 모르겠다. 그것은 단지 그것이 완전히 다른 것을 의미 하는가? 2가 0보다 덜 유사합니까? -이 0에서 하나의 이동으로 가장 유사한
가장 가까운0 아래로 아래에서 1 :
당신은 유사성의 순서는 종류의가는 것을 말할 수 있습니다. 위의 1에서 가장 가깝습니다 - 멀어 질수록 덜 비슷해집니다.
감사합니다.
내 코드의 요청은 다음과 같습니다
$norm1 = 0;
foreach ($dict1 as $value) {
$valuesq = $value * $value;
$norm1 = $norm1 + $valuesq;
}
$norm1 = sqrt($norm1);
$dot_product = array_sum(array_map('bcmul', $dict1, $dict2));
$cospheta = ($dot_product)/($norm1*$norm2);
당신에게 값의 종류 내가 갖는 아이디어 제공하려면 :
0.9076645291077
2.0680991116095
1.4015600717928
1.0377360186767
1.8563586243689
1.0349674872379
1.2083865384822
2.3000034036913
0.84280491429133
? 코드를 보여줄 수 있습니까? – Tap
@Tap 코드를 추가했습니다. – samiles
cospheta가 1보다 큰 결과를 가져 오는 $ dict1 및 $ dict2 값의 예를 들려 줄 수 있습니까? – Tap