問題タブ [ranking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3186 参照

algorithm - ランキングアルゴリズム

ユーザーの評価に基づいていくつかの製品を並べ替える必要があります。

3 つの製品 { abc } があり、この製品に関するユーザーのフィードバックがあるとします。どのユーザーがフィードバックを提供するかは重要ではありません (この質問は、相関フィルタリングに精通している場合、相関フィルタリングに関するものではありません。ユーザーの関心はここでは当てはまりません)。

以下の各行は、ユーザーが 3 つの製品を比較しようとしたときのフィードバックです。

a 150 ポイント- b 0 ポイント(このユーザーは、2 つの製品 a と b についてどう思うかを教えてくれました。a と b を比較して、150 ポイントを与えると b は 0 ポイントになると考えました)

a 150 ポイント- c 20 ポイント

c 200 ポイント- a 10 ポイント(前のものにもかかわらず、このユーザーは c が a よりも優れていると考えています)

a 200 ポイント- b 40 ポイント- c 100 ポイント

a 150 ポイント- b 50 ポイント

a 150 ポイント- b 20 ポイント

(これらの評価は単なるサンプルであり、実際の製品数と評価はこれよりもはるかに大きくなっています)

ここで、ユーザーの投票に基づいて製品のランキングを見つけるアルゴリズムが必要です。私の見解では、この問題を相関グラフで説明し、すべての製品を相互に接続するのが最善の方法です。

あらゆる種類のヘルプやヒントをいただければ幸いです。

/**************************************************** ********************************/

ポイントを加算して製品のポイントの平均を計算することはできません。ポイントをどのように取得したかが重要だからです。aがbに対して 800 点を獲得し、caに対して 10 点を獲得しとします。

a 200 - b 0

a 200 - b 0

a 200 - b 0

a 200 - b 0

c 10 - a 0 (これは、c が a より優れていることを意味します)

したがって、間違いなくaはbよりも優れていますが、10 点が少ないため、 cは a よりも優れたランクを獲得しました。

/**************************************************** ********************************/

0 投票する
1 に答える
1212 参照

lucene - Solrの地理的位置を使用したランキング

Solr / Luceneのカスタムランキングアルゴリズムを実装する正しい方法は何ですか?

特定の地域のイベントに対応するドキュメントに距離加重ランキングシステムを実装するZventsについて読みました(http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Zvents)。

同様のことをしたいと思います。さまざまな都市の広告にインデックスを付け、特定の場所にある最も近い広告の関連性を高めたいと考えています。

0 投票する
1 に答える
4171 参照

java - カスタム検索結果ランキングを実装する方法は?

私の lucene インデックスには、フィールド「itemName」を持つドキュメントが含まれています。このフィールドは、0 から 1 の間のブースト ファクターでブーストされます。BooleanQuery を作成するときに、一致した句の数とブースト ファクターによって結果をランク付けしたいので、式は次のようになります。

スコアは常に 0 から 1 の間の浮動小数点数になります。すべての句が一致し、ブースト ファクターが 1 の場合は 1 です。

たとえば、ブースト係数のない 3 つのドキュメントの "itemName" のフィールド値が次の場合:

BooleanQuery は次のようになります。

count_of_matching_clauses = 2 および count_of_total_clauses = 2 であるため、document1 は (2/2 +0)/2 = 0.5 のスコアで取得されます。

document2 は (1/2+0)/2 = 0.25 のスコアで取得されます: count_of_matching_clauses = 1 および count_of_total_clauses = 2

count_of_matching_clauses = 2 および count_of_total_clauses = 2 であるため、document3 は (2/2 +0)/2 = 0.5 のスコアで取得されます。

このランキングメカニズムを lucene に実装するにはどうすればよいですか? 結果のランク付けにカスタム ランキング クラスを使用するように lucene に指示するにはどうすればよいですか?

0 投票する
3 に答える
436 参照

sql - この例で検索結果をフィルタリングする方法

何千もの商品を含む商品テーブルがあります。一部の製品は異なる色でご利用いただけます。しかし、誰かがたとえば「mp3プレーヤー」を検索するとき、私は彼にすべての色を表示したくはありません。代わりに、最も売れている色のプレーヤーだけを表示します。

彼女はテーブルレイアウトです(簡略化):

しかし、ユーザーが「Mp3 player red」を検索するとき、私は彼に黒いプレーヤーの代わりに赤いプレーヤーを見せたいと思います。検索は「like」演算子を使用して実行されます(ええ、私はluceneを知っています、とにかくこれを解決する必要があります)。

この問題を解決する方法について何か提案はありますか?私にはいくつかのアイデアがありますが、どれも良い解決策ではないようです。ありがとう、

postgreSQL dbおよびjaveは、結果を作成するために使用されます。

0 投票する
5 に答える
690 参照

algorithm - ケーキ比較アルゴリズム

これは文字通りケーキを比較することです。私の友人は、マンハッタンで最高のカップケーキ屋を決定することを目標に、カップケーキ パーティーを開いています。実際には、それよりもはるかに野心的です。読む。

27 のベーカリーがあり、19 人が参加しています (おそらく 1 つまたは 2 つのノーショーがあります)。各ベーカリーから 4 つのカップケーキが用意されます。可能であれば、定番のバニラ、チョコレート、レッド ベルベットを含み、4 つをワイルドカード フレーバーで締めくくります。カップケーキを評価する 4 つの属性があります: 風味、しっとり、プレゼンテーション (かわいさ)、および一般的な良さです。人々は、サンプリングした各カップケーキの属性ごとに 5 段階で評価を提供します。最後に、各カップケーキを 4 つか 5 つに切ることができます。

問題は、各属性および各フレーバー (「ワイルドカード」をフレーバーとして扱う) について、統計的に意味のあるベーカリーのランキングを作成するための手順はどのようなものかということです。具体的には、ベーカリーを 8 回ランク付けしたいと考えています。フレーバーごとにパン屋を良さ (良さは属性の 1 つ) でランク付けし、属性ごとにすべてのフレーバーでベーカリーをランク付けします (つまり、フレーバーとは無関係です)。 、つまり、すべてのフレーバーを集約します)。大賞は、良い属性の最高ランクのベーカリーに贈られます。

もちろん、これを一般化するためのボーナスポイント。

これは約 12 時間後に発生するため、その間に誰も回答がない場合は、最終的に何をしたかを回答として投稿します。

PS: パーティー後のブログ記事はこちら: http://gracenotesnyc.com/2009/08/05/gracenotes-nycs-cupcake-cagematch-the-sweetest-battle-ever/

0 投票する
3 に答える
1319 参照

sql-server - SQL Server 全文検索からの正確な一致の特定

SQL Server 2008 の全文検索を使用しており、FreeTextTable に参加して結果のランキングを決定しています。

結果セットが正確に一致しているかどうかを判断するにはどうすればよいですか?

たとえば、ある検索で次のような結果が得られる場合があります。

ランク範囲の広がりは、1 つの結果が他のすべての結果よりも圧倒的に関連性が高いことを示唆しており、上位の結果が検索用語に正確に一致する可能性が最も高いことを示しています。

しかし、別の検索では、次の結果が得られる場合があります。

この結果セットのランク範囲が広がっていないことは、検索結果が不正確であることを示しています。

ランクの広がりが結果が正確であることを示唆しているかどうかを示すブール値を結果の追加の列として出力するにはどうすればよいですか?

ありがとうございました!

0 投票する
0 に答える
6861 参照

search-engine - BM25 アルゴリズムの説明

BM25 アルゴリズムについて説明してください。現在、あまり良くない従来の tf-idfを使用しています。

0 投票する
2 に答える
4026 参照

sql - 派生列での SQL ランキング関数の使用

派生列で並べ替えられたクエリで SQL Server 2008 ランキング関数を使用しようとしています。これが例です

私が読んだ内容に基づいて、OVER関数はエイリアスでは機能しないため、無効な列名「ポイント」というエラーが常に発生します。

派生列でソートされた結果セットの連続した行番号を取得できる別の方法を知っている人はいますか?

0 投票する
12 に答える
9396 参照

c++ - 範囲内の最大および 2 番目に大きい要素を検索する

最大の要素を削除して再度検索せずに上記を見つけるにはどうすればよいですか? これを行うより効率的な方法はありますか?これらの要素が重複しているかどうかは問題ではありません。