問題タブ [popularity]
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.
keyword - キーワードの人気度に関する小/大サイズのテキストを作成する
ばかげた質問でしたら申し訳ありません。
キーワードのリストがあり、人気度に応じたフォント サイズでキーワードが書かれたテキストを作成したいと考えています。次のようなものについて、どの用語でフォーラムを検索する必要がありますか。
最も人気のないキーワード
最も人気のあるキーワード
人気キーワード
java - Java:最も人気のあるカテゴリのランダム要素
最も人気のあるカテゴリからランダムな要素を見つけるための最も効率的な方法を見つける必要があります
から
Cheese
またはHam
またはのいずれかが必要Salad
です。上位のカテゴリが複数ある場合は、どのカテゴリからアイテムを取得するかは関係ありません。
私が持っている入力についてはIterator<Foo>
、Foo
私の現在のコードは次のようになります。
python - Djangoでトレンドアルゴリズムを決定して実装する
単純なトレンド/ランキングアルゴリズムを実装する必要があるDjangoアプリケーションがあります。私は:として非常に失われています
私は2つのモデルを持っています、Book
そしてReader
。毎晩、新しい本が私のデータベースに追加されます。各本の読者数も毎晩更新されます。つまり、1冊の本には複数の読者統計レコードがあります(1日につき1レコード)。
特定の期間(過去1週間、過去1か月、または過去1年間)で、最も人気のある本をリストしたいのですが、これにはどのアルゴリズムを使用すればよいですか?
各本の読者数は毎日更新されるだけなので、人気はリアルタイムである必要はありません。
トレンドのウィキペディアの記事をどのように計算したかを示す別のSO投稿で参照されている記事を見つけましたが、その投稿は現在のトレンドの計算方法のみを示していました。
SOについて誰かが指摘したように、これは非常に単純なベースライントレンドアルゴリズムであり、2つのデータポイント間の勾配のみを計算するため、昨日と今日の間のトレンドを示していると思います。
Hacker News、Redditなどで使用されているような非常に複雑なトレンドアルゴリズムを探していません。
リーダー数と日付の2つのデータ軸しかありません。
何をどのように実装すべきかについてのアイデア。統計/アルゴリズムに関連するものを一度も扱ったことがない人にとって、これは非常に困難な作業のようです。
みなさん、よろしくお願いします。
algorithm - ウィルソンスコア間隔可能な結果範囲
この質問は、ウィルソン スコアの信頼区間に関するものです (説明については、こちらを参照してください)。
採点式を完全には理解していません:
(出典: evanmiller.org )
しかし..可能な結果の範囲を知る必要があります。
レートに応じて、3 つのメダルのうち 1 つをユーザーに渡す必要があります。
(私はユーザーが作成したレシピを持っていて、それらに「いいね」をすることができるので、それに応じてレシピのレートを計算します。ユーザーのレートは、レシピのレートに従って計算されます。)
ありがとうヨアフ
c# - 人気ベースのキャッシングのソリューション
約 10.000 個の不変オブジェクトを処理する C# アプリケーションがあります。各オブジェクトのサイズは 50KB ~ 1MB です。アプリケーションは、操作ごとに約 10 ~ 100 個のオブジェクトを選択します。どのオブジェクトが選択されるかは、状況とユーザーの選択によって異なりますが、非常に頻繁に使用されるオブジェクトがいくつかあります。
すべてのオブジェクトを常にメモリに保持するのは多すぎますが、ディスク アクセス時間が迫っています。人気ベースのキャッシュを使用して、ディスク アクティビティを削減したいと考えています。キャッシュには最大が含まれます。300 個のオブジェクト。使用パターンの間に、どれをキャッシュするかを決定することを期待しています。各オブジェクトにアクセス カウンターを簡単に追加できます。人気の高いものが入るほど、あまり人気のないものはキャッシュを離れなければなりません。私のお尻をコーディングせずにそれを行う簡単で独創的な方法はありますか?
algorithm - シンプルな人気アルゴリズム
概要
Ted Jaspers が賢明にも指摘したように、私が 2012 年の最初の提案で説明した方法論は、実際には指数移動平均の特殊なケースです。このアプローチの優れた点は、再帰的に計算できることです。つまり、オブジェクトごとに単一の人気値を保存するだけでよく、イベントが発生したときにこの値を再帰的に調整できます。すべてのイベントを記録する必要はありません。
この単一の人気値は、過去のすべてのイベント (使用されているデータ型の制限内) を表しますが、新しいイベントが考慮されるにつれて、古いイベントは指数関数的に重要ではなくなります。このアルゴリズムは、さまざまな時間スケールに適応し、さまざまなトラフィック量に対応します。 . イベントが発生するたびに、次の式を使用して新しい人気値を計算できます。
(a * t) + ((1 - a) * p)
a
— 0 から 1 の間の係数 (値が大きいほど、古いイベントが早く割引されます)t
— 現在のタイムスタンプp
— 現在の人気値 (例: データベースに保存)
willの適切な値はa
、アプリケーションによって異なります。ここa=2/(N+1)
で、N
は結果に大きく影響するイベントの数です。たとえば、イベントがページ ビューであるトラフィックの少ない Web サイトでは、数日間で数百のページ ビューが予想される場合があります。N=100
( ) を選択a≈0.02
するのが妥当な選択です。トラフィックの多い Web サイトの場合、数日間で数百万のページ ビューが予想される場合があります。その場合、N=1000000
( a≈0.000002
) の方が合理的です。の値はa
、時間をかけて徐々に調整する必要があります。
このポピュラリティ アルゴリズムがいかに単純であるかを説明するために、2 行の Twig マークアップで Craft CMS に実装する方法の例を次に示します。
人気度を計算するために、新しいデータベース テーブルを作成したり、無限のイベント レコードを保存したりする必要がないことに注意してください。
覚えておくべき 1 つの注意点は、指数移動平均にはスピンアップ間隔があるため、値が正確であると見なされるまでに数回の再帰が必要なことです。これは、初期条件が重要であることを意味します。たとえば、新しいアイテムの人気が現在のタイムスタンプを使用して初期化されている場合、そのアイテムは、最終的により正確な位置に落ち着く前に、セット全体ですぐに最も人気のあるアイテムになります。これは、新しいコンテンツを宣伝したい場合に適しています。または、コンテンツを下から順に処理する場合、アプリケーションが最初に起動されたときのタイムスタンプでコンテンツを初期化できます。データベース内のすべての人気値の平均で値を初期化することで、満足のいく中間を見つけることもできるため、中間から開始します。
元の提案
アイテムの年齢と、アイテムが受け取る投票数、クリック数、または購入数に基づいて人気を計算するための提案されたアルゴリズムはたくさんあります。しかし、私が見たより堅牢な方法では、過度に複雑な計算と、データベースを乱雑にする複数の格納値が必要になることがよくあります。私は、変数 (人気値自体以外) を格納する必要がなく、1 つの単純な計算のみを必要とする、非常に単純なアルゴリズムを考えています。それはばかげて簡単です:
p = (p + t) / 2
ここで、p はデータベースに保存されている人気の値で、t は現在のタイムスタンプです。アイテムが最初に作成されるとき、pを初期化する必要があります。次の 2 つの初期化方法があります。
- 現在のタイムスタンプtでpを初期化します
- データベース内のすべてのp値の平均でpを初期化します
初期化方法 (1) は、最近追加されたアイテムに過去のアイテムよりも明らかな利点を与えることに注意してください。したがって、関連性の要素が追加されます。一方、初期化方法 (2) は、新しいアイテムを過去のアイテムと比較して同等に扱います。
初期化メソッド (1) を使用し、現在のタイムスタンプでpを初期化するとします。アイテムが最初の投票を受け取ると、pは作成時間と投票時間の平均になります。したがって、人気値pは引き続き有効なタイムスタンプを表します (最も近い整数に丸めると仮定します) が、それが表す実際の時間は抽象化されます。
この方法では、単純な計算が 1 つだけ必要であり、データベース ( p ) に格納する必要があるのは 1 つの値だけです。この方法は、特定のアイテムの人気が現在の時間を超えることは決してないため、値の暴走も防ぎます。
1 日間にわたって動作するアルゴリズムの例: http://jsfiddle.net/q2UCn/
1 年間にわたって動作するアルゴリズムの例: http://jsfiddle.net/tWU9y/
投票が 1 秒未満の間隔で着実に流れ込むことが予想される場合は、PHPmicrotime()
関数などのマイクロ秒のタイムスタンプを使用する必要があります。それ以外の場合は、PHP 関数などの標準の UNIX タイムスタンプが機能しtime()
ます。
私の質問ですが、このアプローチに大きな欠陥はありますか?
assembly - アセンブリは唯一の低水準プログラミング言語ですか?そうでない場合は、最も広く使用されていますか?
私は最近アセンブリを学び始めました。インターネットを見ると、アセンブリは役に立たないと言う人が増えていますが、そのような時間と労力を必要とする言語で物事をプログラムする価値はありません。高水準言語。高水準言語プログラムと低水準言語プログラムの間の効率は、今日注目を集めるほど実際には目立たないのでしょうか。また、アセンブリのような、より広く使用されている別の低水準言語はありますか?
c++ - 私の友達ネットワークで最も人気のあるいいねを見つける
私は友達のネットワークで最も人気のあるいいねを見つける方法に取り組んでいます。「友達ネットワークで最も人気がある」とは、「友達のいいねが一番多い」と定義されています。
各友達が一意のIDを持ち、いいねされたページがいくつかあるとします。ですから、そのような友達がたくさんいるので、一番好きな友達、そしてこれが好きな友達を見つけたいと思います。基本的には、「友達のX、Y、Zがこれが好き」のようなものを見せたいと思います。
私の最初の解決策は、マップ(逆マッピングを保存するため:like-> set)と優先度付きキュー(上位Nを見つけるため)を使用することです。これが私のアルゴリズムです(C ++ STLを使用):
STLは内部的に赤黒木を使用して優先キューのマップと最小/最大ヒープを実装しているため、このアプローチは私にはかなり速いように思われます。しかし、私に数百人の友達がいて、それぞれに数百人のいいねがあるとしたら、メモリ使用量は膨大になります。もちろん、オブジェクト全体を保存する代わりに、すべての計算にフレンドIDとライクIDを使用する必要があります。これにより、メモリ使用量が大幅に削減されます。
効率を改善する(速度を上げる、メモリを減らす)ために他にどのようなアルゴリズムまたはデータ構造を使用できますか?何らかの理由で、友達のリストをそれぞれのいいねに対して保存することはできません。実行時に計算する必要があります。私はこれをC++を使用して開発しているので、STLまたはブーストを使用するソリューションはさらに優れています。
php - 「人気」要素をzend-searchluceneと適切に統合するための最良の方法は何ですか?
私はこれを読みました、そして私はそれについて正確にどうやって行くかについてまだ少し混乱しています。
検索されている一連のプレイリストの投票数をカウントしているインデックス付けされていないフィールドがあります。メイン検索は正常に機能しますが、アルゴリズムの一部として投票フィールドを含めたいので、インデックス付けされていないフィールドをその一部として含める方法がわかりません。誰かがガイダンスや例を提供できますか?
algorithm - いくつかの既知の要因に基づいて人気を計算する方法
次の要因がわかっている映画のリストがあります。
- 今後映画を見たいと思っている人の数
- 映画を見た人の数
- 映画を楽しんだ人数
- 映画を見て嫌いになった人の数
- 映画のコメント数
- 映画ページの (直接または検索エンジンからの) ページ ヒット数
上記の要因に基づいて、各映画の人気を計算する方法を探しています。そのような場合に人気値を計算するための既知の公式またはアルゴリズムはありますか? 好ましいアルゴリズムは、アイテムごとに以前に計算された人気値を更新するためのより効率的な方法を提供するアルゴリズムです。