<?php
function similarity($w1,$w2) {
//return cosine similarity of w1 and w2 using formula in the
//definition here: http://en.wikipedia.org/wiki/Cosine_similarity
//get numerator:
$numerator = 0;
for($i = 0, $l = count($w1); $i < $l; $i++) $numerator += $w1[$i]*$w2[$i];
//get abs(w1) and abs(w2)
$abs_w1 = 0; $abs_w2 = 0;
for($i = 0, $l = count($w1); $i < $l; $i++) {
$abs_w1 += $w1[$i]*$w1[$i];
$abs_w2 += $w2[$i]*$w2[$i];
}
$abs_w1 = sqrt($abs_w1);
$abs_w2 = sqrt($abs_w2);
//make denominator:
$denominator = $abs_w1*$abs_w2;
return $numerator/$denominator;
}
echo similarity([1,99,3,4,5,6,7,8,9],[1,2,3,4,5,6,7,8,88]);
preferences:
42.22 ms | 402 KiB | 5 Q