私はこのサイトについてあまり知りませんが、このようなシステムは一般的に同じように機能します。重み付けされた値のセットを正規化して、単一の比較可能な値を生成します。
ルールのリストを定義し、重要度に基づいてそれらに重みを付けてから、それらをすべて一緒に実行して、最終的な値を取得します。
この場合、次のようになります。
- 総訪問数=10%
- いいねの総数=10%
- ビスト数/いいね数=40%(人気=それを気に入った訪問者の割合)
- 過去30日間のいいね数=20%(現在の人気)
- 著者の評価=20%
次に、これらのルールの値を正規化する必要があります。データが何であるか、数値のスケールなどに応じて、これはルールごとに異なるため、実行可能な値、たとえば1から100の間が必要です。
上記の正規化の例:
= 50,000ビストのうちのビスタのパーセンテージ(ビストの適切な数)
(vists / 50000 ) * 100
= 10,000件のいいねのうちのいいねの割合(いいねの数)
(likes / 10000) * 100
=それを気に入った訪問者の割合
(likes / vists) * 100
= 1,000件のいいねのうち過去30日間のいいねの割合(30日間のいいねの数)
(likesIn30Days / 1000) * 100
=作者の恣意的な評価
これらすべての最大値が100であることを確認してください(それ以上の場合は、元に戻します)。次に、重みに応じてこれらすべてを組み合わせる必要があります。
人気=(1 * 0.1) + (2 * 0.1) + (3 * 0.4) + (4 * 0.2) + (5 * 0.2)
これはすべて私の頭のてっぺんから外れていてラフです。すべての段階でパーセンテージに正規化する必要がないため、これには明らかにはるかに効率的な方法がありますが、要点を理解するのに役立つことを願っています。
アップデート
私は実際に参照や余分な読書を持っていません。私は、小さな実装でのみ、より大きな概念としてそれを実際に使用したことはありません。
あなたが読んだもののほとんどは、一般的な方法論的なランキングシステムと理論になると思います。ルールとデータ形式に応じて、実装は大きく異なります。実際には、データの集計を数えずに、コードが約10行になるとしたら、これは非常に大きな概念のようです。