2 Stimmen

Algorithmus zur Bestimmung der "Heißheit" eines Threads

Ich versuche eine Möglichkeit zu finden, um festzustellen, wie "heiß" bestimmte Threads in einem Forum sind. Welche Kriterien würden Sie verwenden und warum? Wie würden diese zusammenkommen, um eine Hotness-Wertung zu geben?

Die Kriterien, an die ich denke, umfassen:

  • wie viele Antworten
  • wie lange her ist die letzte Antwort
  • durchschnittliche Zeit zwischen den Antworten

Die Probleme, die dieser Algorithmus lösen muss:

  • Ein Thread mit 500 Antworten ist offensichtlich heiß, es sei denn, die letzte Antwort liegt über ein Jahr zurück.
  • Ein Thread mit 500 Antworten, der vor einer Sekunde beantwortet wurde, ist offensichtlich heiß, es sei denn, es hat 4 Jahre gedauert, um 500 Antworten zu erreichen.
  • Ein Thread mit 15 Antworten in den letzten 4 Minuten ist wirklich heiß!

Gibt es irgendwelche Ideen, Gedanken oder vollständige Lösungen da draußen?

0voto

Yuliy Punkte 16897

Warum nicht einfach ein Art exponentielles Abdecymodell verwenden. Hitze des Threads = Summe( k^(Zeit seit dem Posten) ) für alle Beiträge. Das hat den Vorteil, dass es wirklich einfach zu aktualisieren und zu berechnen ist. Man müsste mit k und Ihrer Zeiteinheit spielen (k sollte < 1 sein, aber ziemlich nah dran)

Aktuelle Hitze = Hitze zum Zeitpunkt des letzten Beitrags * k^(Zeit seit dem letzten Beitrag).
Hitze nach neuem Beitrag = aktuelle Hitze + 1

0voto

Michael Borgwardt Punkte 334642

Eine Sache, auf die Sie achten sollten, ist, ob die Leute möglicherweise versuchen werden, den Algorithmus zu "manipulieren", um ihre Threads "heiß" zu halten oder zu machen. Tatsächlich können Sie ziemlich sicher davon ausgehen, dass sie das tun werden.

Das Mindeste, was Sie tun sollten, um dies zu verhindern, ist nur Antworten von verschiedenen Personen zu berücksichtigen.

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