2011-09-12 6 views
0

私はアルゴリズムを検索しています。最近の、興味深い記事と未回答/未回答投稿のバランスがとれた

たとえば、Stackoverflowを取得します。 ( - 、0 +、)

  • タグ(それらの活動に基づいており、タグの重要性)
  • ユーザー(ユーザー評価/評判、年齢、最近の活動)
  • 記事は

    • 評価によってグループに分割されています
    • キーワード

    そして私は、最適化/バランスよくミックスを作成するためにそれらをソートする方法、方法を探しています。
    私は最新のものだけを表示したくない、または最も重要なものだけを表示することは望ましくないでしょうか。

    多分、名前は "Multiple-attributes optimal sorting"などです。

    誰でもアドバイスできますか? おかげ

    ADD1:多分私たちは、それらを正規化、その後、これらの要因のそれぞれに対して別々のサブスコアを生成し、それらを一緒に追加し、各ポストの結果の合計によってソートについてFitness functionhttp://en.wikipedia.org/wiki/Fitness_function

    答えて

    1

    を話しています。たとえば、

    1. 評価で投稿のすべてをランク付けし、ランク付けの順位を0.0-1.0の範囲(最高評価の投稿は1.0、最低は0.0)に設定します。
    2. 投稿のタグを取得し、タグのみに基づいて同様の0.0〜1.0のスコアを計算する関数を作成します。
    3. ユーザーに対して同じ操作を行う別の関数を作成します。
    4. また、必要なキーワードを入力してください。

    他のものよりもいくつかの要因を考慮する必要がある場合は、合計に加算する前に一定の係数でサブクラスを掛けます。たとえば、評価を重要にする場合や、 4つのサブスコアが文字の場合は(3*A)+B+C+Dとなります。

    あなたは物事をサブコースにどのように翻訳していますか?それはあなたが実際にあなたの特定のアプリのために決めなければならないものです。 「正しい」それを行う単一の方法はありません。

    +0

    偉大な答え、ありがとう!このような大きなサイトの規模でこのアルゴリズムを見ているときにあなたの答えに追加できるものはありますか?サブコースのキャッシュやSQLレベルでの各要素のランク付けなど、 –

    +0

    私は、関連するデータを静的に保存できるだけ多くのサブスコアを格納し、必要なときに再計算することをお勧めします。たとえば、ユーザーのサブスクリプションは、他のすべてのユーザーデータと一緒にユーザーテーブルに格納し、次に結合するだけです。同様に、タグサブスクリプションは、タグテーブルに格納された単純な平均加重値でなければなりません。格付けサブソースは、ポスト自身の行に格納され、+/-ボートがキャストされたときにのみ再計算されます。 – Amber

    +0

    あなたが望むのであれば、ジョイントを避けるために投稿と一緒にユーザーのサブスクリプションをキャッシュすることもできます。最初に投稿を作成したときのユーザーの重み付けによるランク付けは、必ずしも悪い考えではありません。実績のある退役軍人よりも人気のある記事を作成する)。タグのサブストアはキャッシュされ、ポスト・タグが編集されたときにのみ再計算されます(これまでまたは可能であったとしても)。投稿の内容が編集されたときにのみ再計算されます。したがって、理論的には、サブスコアの加重合計をキャッシュすることができ、索引付き問合せを簡単に実行できます。 – Amber