Reddit (オープン ソース) アルゴリズムを利用する Web アプリケーションの構築を検討しています。
時間をかけて微調整する予定ですが、今のところランキングシステムを使用するのに良いスタートになると思います.
このアルゴリズムに関するブログ記事を読みましたが、その例は Python で書かれています。これを ColdFusion で使用するために変換するにはどうすればよいですか? より簡単な場合、CFC で使用するための追加のボーナス ポイントはありますか?
コード:
#Rewritten code from /r2/r2/lib/db/_sorts.pyx
from datetime import datetime, timedelta
from math import log
epoch = datetime(1970, 1, 1)
def epoch_seconds(date):
"""Returns the number of seconds from the epoch to date."""
td = date - epoch
return td.days * 86400 + td.seconds + (float(td.microseconds) / 1000000)
def score(ups, downs):
return ups - downs
def hot(ups, downs, date):
"""The hot formula. Should match the equivalent function in postgres."""
s = score(ups, downs)
order = log(max(abs(s), 1), 10)
sign = 1 if s > 0 else -1 if s < 0 else 0
seconds = epoch_seconds(date) - 1134028003
return round(order + sign * seconds / 45000, 7)
このコードについて説明しているブログ投稿: http://amix.dk/blog/post/19588
いくつかのアイデアや例を聞くことを楽しみにしています。
どうもありがとう!マイケル。
また、追加の質問として; このコードは、データセットが既に収集された後、SQL クエリまたは ColdFusion でのある種のソートを介してより適切に実行されますか? 私の選択したDBはMySQLです。
更新: 私が求めていたものに関連する別の質問がここで見つかりました...役立つと思います。 Reddit と Hacker News のランキング アルゴリズムはどのように使用されますか?