Чтобы вычислить сходство между двумя документами, я создаю вектор признаков, содержащий термин частоты. Но затем, для следующего шага, я не могу выбрать между "подобие косинуса" и "Расстояние Хэмминга".
Мой вопрос: есть ли у вас опыт работы с этими алгоритмами? Какой из них дает вам лучшие результаты?
В дополнение к этому: не могли бы вы сказать мне, как закодировать подобие косинуса в 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));
}
Я не хочу использовать какой-либо другой алгоритм. Я только хотел бы иметь помощь, чтобы выбрать между обоими.
И, может быть, кто-то может сказать что-то о том, как улучшить алгоритмы. Вы получите лучшие результаты, если отфильтруете стоп-слова или общие слова?
Я надеюсь, что вы можете мне помочь. Заранее спасибо!