18 Stimmen

Kosinusähnlichkeit vs. Hamming-Distanz

Um die Ähnlichkeit zwischen zwei Dokumenten zu berechnen, erstelle ich einen Merkmalsvektor, der die Termhäufigkeiten enthält. Aber dann kann ich mich im nächsten Schritt nicht entscheiden zwischen " Kosinus-Ähnlichkeit " und " Hamming-Abstand ".

Meine Frage: Haben Sie Erfahrung mit diesen Algorithmen? Welcher liefert Ihnen bessere Ergebnisse?

Hinzu kommt, dass: Können Sie mir sagen, wie man die Cosinus-Ähnlichkeit in PHP kodiert? Für die Hamming-Distanz habe ich den Code schon:

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));
}

Ich möchte keinen anderen Algorithmus verwenden. Ich möchte nur Hilfe bei der Entscheidung zwischen den beiden Algorithmen haben.

Und vielleicht kann jemand etwas dazu sagen, wie man die Algorithmen verbessern kann. Erzielt man bessere Ergebnisse, wenn man die Stoppwörter oder gebräuchlichen Wörter herausfiltert?

Ich hoffe, Sie können mir helfen. Vielen Dank im Voraus!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X