두 문서 간의 유사도를 계산하기 위해 주파수라는 용어가 포함 된 특징 벡터를 만듭니다. 하지만 다음 단계에서는 "Cosine similarity"과 "Hamming distance"사이를 결정할 수 없습니다.코사인 유사도와 해밍 거리
내 질문 :이 알고리즘에 대한 경험이 있습니까? 어느 것이 더 나은 결과를 제공합니까?
그 외에 : PHP에서 코사인 유사성을 코딩하는 법을 가르쳐 주시겠습니까? 해밍 거리에 대해서는 이미 코드를 가지고 있습니다 :
function check ($terms1, $terms2) {
$counts1 = array_count_values($terms1);
$totalScore = 0;
foreach ($terms2 as $term) {
if (isset($counts1[$term])) $totalScore += $counts1[$term];
}
return $totalScore * 500/(count($terms1) * count($terms2));
}
다른 알고리즘을 사용하고 싶지 않습니다. 나는 둘 사이에서 결정할 도움이 필요하다.
누군가 알고리즘을 개선하는 방법에 대해 말할 수 있습니다. 정지 단어 또는 일반적인 단어를 걸러 내면 더 나은 결과를 얻을 수 있습니까?
도와 주시면 감사하겠습니다. 미리 감사드립니다!
고맙습니다. :) 그러나 마이크의 해답 (선택된 해답)이 더 나은가요? 코드는 더 짧으며 당신만큼 빠르다. 차이점은 무엇입니까? – caw
마이크의 기능은 실제로 정확하지 않습니다. 'echo check (array ('a ','b ','c '), array ('a ','b ','c ')); 0.33을 반환합니다. : – Toto
당신의 함수가 정말로 맞습니까? [1, 1, 1]과 [1, 1, 0]은 0.71입니다. 그러나 http://www.miislita.com/searchito/binary-similarity-calculator.html는 0.82 ?! 유사도 값을 문서 길이로 나누어야합니까? – caw