問題タブ [cosine-similarity]

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 に答える
1914 参照

elasticsearch - Elasticsearch スコアリング

「more like this」クエリを使用して、elasticsearch を使用して、特定のドキュメントに類似したドキュメントを検索しています。

0 から 1 の間の Elasticsearch スコアを取得する簡単な方法はありますか (コサイン類似度を使用)。

ありがとう!

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

similarity - ユークリッド距離に相対頻度を使用する

相対頻度を使用して、D1 と D2 などの 2 つのドキュメント間のユークリッド距離 (類似度) を計算するにはどうすればよいですか?

以下は、絶対頻度を使用した 2 つのドキュメント間のコサイン距離とユークリッド距離の両方の例です。

コサイン D1,D2 = (4x4+9x5) / 12.45x10.72 = 0.4569 (絶対周波数 & 相対周波数) コサインの絶対周波数は相対周波数と同じです

また

ユークリッド D1、D2 = sqrt( sqr(4-4) + sqr(9-5) + sqr(7) + sqr(7) + sqr(5) + sqr(3) ) =sqrt( 0+16+49+ 49+25+9) = sqrt( 148 ) = 12.17(絶対度数)。

この相対頻度0.2532です。

この問題の相対頻度 ( euclidean )を取得しようとしていますが、役立つチュートリアルが見つかりません。数式や説明なしで、答え0.2532しか見つけることができませんでした。

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

python - Pythonを使用して2つの番号付きデータセット間のコサイン類似度を見つける

長さ 22 のデータセットに番号を付けました。各数値は 0 から 1 の間で、その属性のパーセンテージを表します。

Python を使用して、このような 2 つのデータセット間のコサイン類似度を計算するにはどうすればよいですか?

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

recommendation-engine - これは、機能する可能性のあるユーザーアイテムの推奨へのアプローチですか?

ユーザー インタラクションに基づくレコメンデーション システム (協調フィルタリング) を組み込んだアプリケーションを設計しています。ホームページのユーザーには、操作する 6 つのアイテムのセットが表示されます。アイテム数は50~300アイテム。次のアクションが可能です。

  1. アイテムをクリックする (強い関心)
  2. アイテムを更新する (少し興味がある)
  3. 続きを読むダイアログを開きます (少し興味があります)
  4. 先に進むために何もしないでください (無関心)

このデータは収集され、保存されます。システムは、ユーザーに興味のあるアイテムを推奨する必要があります。このデータを評価システムに変えようと考えています。

オプション A) ユーザーがアイテムをクリックすると、これは暗黙のライフタイム レーティング 5 に変換されます。アイテムを更新すると 4 になります。したがって、私の user->item マトリックスは次のようになります。

この例では、john は項目 1 をクリックして項目 3 を更新しました。評価は実際にしか上がりません。つまり、ユーザーが以前に項目を更新した場合、私は 4 を書き、項目が後でクリックされた場合にのみ 5 に更新します。

オプション B) ユーザーが上記のアクションのいずれかを実行するたびに、アイテムのスカラー値をインクリメントします。つまり、無限に大きくなる可能性があります。

数値を 1 から 10 までの評価スケールに変換するのが難しくなったため、これは問題かもしれません。

オプション C) すべてのやり取りを個別にカウントする

ここで問題となるのは、ある項目について「読む」ことは、おそらく 1 回だけであるということです。

どのようなオプションを選択するかに関係なく、私の考えは、コサイン類似度やピアソン相関などを使用して、類似したユーザーを最初に見つけることです。次に、そのリストから上位 10 人から 30 人のユーザーを選び、お気に入りのアイテムのトップリストを作成します。そのリストから、現在のユーザーが過去にほとんど触れていないアイテムをお勧めします。

これはうまくいくものですか?似たようなユーザーを見つけると、現在のユーザーにとって興味深い (新しい) アイテムを見つける機会がなくなるのではないかと心配しています。

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

cluster-analysis - コサインの類似性に関するいくつかの質問

昨日、次のように定義されるコサインの類似性を学びました。

ここに画像の説明を入力

2 つのベクトルがどの程度類似しているかを効果的に測定できます。

Aここでの定義では、L2 ノルムを使用してとの内積を正規化していますB。私が興味を持っているのは、分母にAとの L1 ノルムを使用しない理由です。B

分母に L1 ノルムを使用すると、 の場合、余弦類似度は 1 にならない、と先生に言われましたA=B。次に、コサイン類似度の定義を次のように変更すると、元のモデルと比較して、変更されたモデルの長所と短所は何ですか?

sim(A,B) = (A * B) / (||A||1 * ||B||1) A!=B の場合

A==B の場合、sim(A,B) = 1

誰かが私にもう少し説明をしてくれれば幸いです。

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

data-mining - コサイン類似度の理解を深める

テキストマイニングとデータマイニングについて少し調べています。コサインの類似性を理解するには、もっと助けが必要です。私はそれについて読みましたが、インターネット上のすべての例は、コサイン類似度を介して計算する前に tf-idf を使用していることに気付きました。

私の質問

データセットとなるテキストファイルから最高度数分布を使うだけでコサイン類似度を計算することは可能ですか?私が経験したほとんどのビデオとチュートリアルでは、データをコサイン類似度に入力する前に tf-idf を実行しました。そうでない場合、コサイン類似度に入力できる他のタイプの方程式/アルゴリズムは何ですか?

2. コサイン類似度を計算するために tf-idf で正規化が使用されるのはなぜですか? (正規化せずにできますか?) コサイン類似度は、tf-idf 出力の正規化から計算されます。なぜ正規化が必要なのですか?

3. tf-idf の重みに対して実際にどのようなコサイン類似度が行われますか?

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

python - 情報検索、転置索引発行

こんにちは、xml コレクションからいくつかのドキュメントのインデックスを作成する小さなプログラムを作成しようとしています。tf-idf メソッドを使用します。私のプログラムがクエリを読み取ると、各ドキュメントの各単語のタプル ('tf-idf','docid') のリストが返されます。

これは例です:

この場合、ドキュメント 2 には 1 つの単語しか含まれていません。

ここで私の質問は次のとおりです。これらのドキュメントとクエリの間でドット積を実行する必要があることはわかっていますが、どうすればよいですか? クエリを重みのベクトルに変換するにはどうすればよいですか?

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