問題タブ [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 投票する
1 に答える
112 参照

similarity - あるバージョンのファイルのテキスト ブロックが、以前のバージョンのどのファイルに由来するかを判断する方法は?

問題を以下に説明します: 1 つのバージョン (A、B、C、D など) のファイルのリストがあるとします。次のバージョンでは、次のファイル (A、E、F、G) があります。それらの内容にはいくつかの類似点があります。後のバージョンのファイルは、ファイル名の変更、コンテンツの追加、削除、または部分的な変更によって、または変更なし (たとえば、A は変更されていません) によって以前のバージョンから取得されます。

ファイル (E、2 番目のバージョン) からテキストのブロックを取得し、このテキスト ブロックが含まれているファイル (1 番目のバージョン) を確認します。B、C、D にテキスト フラグメントが含まれていることがわかりました。このテキストブロックが実際にどのファイル(Bまたはcまたはd)から来たかを判断したい(Eは、2番目のバージョンで名前が変更されたファイルであると想定しています)。

今後のバージョンで内容が変更・追加・削除される可能性があるので、類似性を判断するためにLCSアルゴリズムを使用しています。しかし、ファイルを以前のバージョンにマップすることはできません。考えられるアプローチの 1 つは、一致するテキスト ブロックの位置情報を使用することだと思います。しかし、このヒューリスティックが常に機能するとは限りません。それを見つけるための研究やアルゴリズムはありますか。どんな方向でも役に立ちます。前もって感謝します。

0 投票する
7 に答える
54263 参照

arrays - 2 つの配列間のコサイン類似度を求める

2 つの配列間のコサイン類似度 (またはコサイン距離) を見つけることができる組み込み関数が R にあるかどうか疑問に思っていますか?

現在、私は独自の機能を実装していますが、Rにはすでに機能があるはずだと思わずにはいられません。

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

lucene - カスタム類似性クラスのLucenenumDocsとdoqFreq

Luceneでアプリケーションを実行しているim(im noob with it)であり、いくつかの問題に直面しています。私のアプリケーションでは、Lucene 2.4.0ライブラリとカスタム類似性実装を使用しています(jarがインポートされます)

私のアプリでは、doqFreqとnumDocsを手動で計算し(すべてのインデックスの値を追加してから、すべてのクエリで使用するためにグローバル値を計算します)、カスタム類似性実装でその値を使用して、新しいIDF。

問題は、この余分なクラスとは別にluceneのコードを変更したくないため、その新しい類似性の実装でアプリから新しいdoqFreqとnumDocsの値を使用(または送信)する方法がわからないことです。

何か提案や例はありますか?私はドキュメントを読みましたが、これにアプローチする方法は今はわかりません:s

ありがとう

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

cluster-analysis - コサイン類似性測定:複数の結果

私のプログラムでは、クラスタリングを使用して類似アイテムのサブセットを生成し、クラスターの類似度を判断する方法としてコサイン類似度を使用しています。たとえば、ユーザー1に3つのクラスターがあり、ユーザー2に3つのクラスターがある場合、すべてのクラスターが相互に比較されます。コサイン類似度を使用した9つの結果が生成されます。たとえば、[0.3、0.1、0.4、0.12、0.0、0.6、0.8、 1.0、0.22]

私の問題は、これらの結果に基づいて、これらの値を具体的な結果に変換して、これら2人のユーザーがどれほど類似しているかを示すにはどうすればよいかということです。

私が作成した簡単な方法は、すべての値を比較の数で割り、それらを合計して1つの値を取得することでしたが、これは非常に単純なアプローチです。

ありがとう、

なので


私が達成しようとしていることの基本的な説明は、ソーシャルブックマークWebサービスDelicious.comから、ブックマークとタグから、2人のユーザーがどれほど似ているかを判断できるかどうかです。

これまで、ユーザーのブックマークのタグと各タグの共起からクラスターを作成しました。たとえば、1つのクラスターは次のようになります。

また、別のユーザーが、タグから作成された同様のクラスターを持っている場合があります。

この数字は、保存されたブックマークで、この例では「fruit」というタグとタグが共起した回数を表します。

コサイン類似度を使用してこれらのクラスターを比較し、それらがどの程度類似しているかを判断しました。最初の質問から、多くのクラスター比較結果(すべてのユーザークラスターを別のユーザークラスターと比較)を使用して、結果を集計して意味のある結果。

コサイン類似性を不適切に使用している可能性が非常に高いですが、

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

java - 文字列類似性メトリックに関するアドバイス(Java)。距離、音のように聞こえますか、それともコンボですか?

プロセスの一部では、文字列類似性アルゴリズムを適用する必要があります。

このプロセスの結果が保存され、SS_Datasetなどが生成されます。

このデータセットに基づいて、さらに決定を下す必要があります。

私の質問は次のとおりです。

  • SS_Datasetを生成するために1つ以上の文字列類似性アルゴリズムを適用する必要がありますか?

  • 「距離」と「音のような」類似性を計算するアルゴリズム間の比較はありますか?

アルゴリズムの1つのファミリは、他のファミリよりも正確な結果を生成しますか?組み合わせにより、類似性についてより正確な結果が得られますか?

  • 使用した実装をお勧めできますか?

私の実装には、次のライブラリのパッケージが含まれます

http://www.dcs.shef.ac.uk/~sam/simmetrics.html

http://jtmt.sourceforge.net/

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

performance - 非常に高速なドキュメントの類似性

単一のドキュメントと多数のドキュメント (n ~= 100 万) のそれぞれの間のドキュメントの類似性をできるだけ早く判断しようとしています。より具体的には、私が比較している文書は電子メールです。それらはグループ化されており (つまり、フォルダーまたはタグがあります)、どのグループが新しい電子メールに最も適しているかを判断したいと考えています。高速なパフォーマンスが重要です。

私のアプリオリな仮定は、項ベクトル間の余弦類似性がこのアプリケーションに適しているということです。これが使用する良い尺度であるかどうかについてコメントしてください!

パフォーマンスを高速化するために、次の可能性をすでに考慮しています。

  1. すべての用語ベクトルを事前に正規化する

  2. 各電子メール (n ~= 1,000,000) ではなく、各グループ (n ~= 10,000) の用語ベクトルを計算します。これはおそらく私のアプリケーションでは受け入れられるでしょうが、そうしない理由が思いつく場合はお知らせください!

いくつかの質問を聞きたいんです:

  1. 新しい電子メールに、以前の電子メールのいずれにも見られなかった新しい用語が含まれている場合、すべての用語ベクトルを再計算する必要があるということですか? これは高価そうです。

  2. クエリドキュメントに近い可能性があるベクトルのみを考慮する賢い方法はありますか?

  3. これらすべてのベクトルに使用しているメモリの量をより節約する方法はありますか?

ありがとう!

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

database - 次元の呪いについて

私の質問は、私が少し読んだこのトピックについてです。基本的に私の理解では、高次元ではすべての点が互いに非常に接近することになります。

私が持っている疑問は、これが通常の方法(たとえばユークリッド)で距離を計算することが有効であることを意味するかどうかです。それがまだ有効である場合、これは、高次元でベクトルを比較するときに、この 3 番目のベクトルが完全に無関係である場合でも、最も類似した 2 つは 3 番目のベクトルとあまり変わらないことを意味します。

これは正しいです?この場合、一致しているかどうかをどのように判断できますか?

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

mysql - MySQLで類似度を一致させてソートする方法は?

現在、私は検索機能を行っています。私のデータベースには、次のデータがあるとしましょう。

  • キーワード1
  • キーワード 2
  • キーワード3
  • キーサムシング

ユーザーは、検索するキーワードとして「Key」と入力しました。これは私の現在のクエリです:

基本的に、2 つの質問があります。

  1. 類似度で並べ替える (並べ替える) 方法を教えてください。上記の例から、最初の結果として「キー」が必要でした。私の現在の結果は、Keyword1、Keyword2、Keyword3、Keysomething、Key です。

  2. 私の SQL クエリは "data_string" 列でのみ検索します。他の列を検索したい場合はどうすればよいですか? 私はこのようなことをする必要がありますか:

Q2 よりも優れた/高速なクエリはありますか?

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

similarity - コサイン類似性について

私はドキュメント間のコサイン類似性を見つけています..私はこのようにしました

D1 =(8,0,0,1)ここで、8,0,0,1は、項t1、t2、t3、t4のtf-idfスコアです。

D2 =(7,0,0,1)

cos(theta)=(56 + 0 + 0 + 1)/ sqrt(64 + 49)sqrt(1 +1)

になります

cos(シータ)= 5

さて、この値から何を評価しますか... cos(theta)= 5がそれらの間の類似性について何を意味するのかわかりません...私は正しいことをしていますか?

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

python - Map Reduce を使用するように Python 協調フィルタリング コードを変換する

Python を使用して、アイテム間のコサイン類似度を計算しています。

購入 (ユーザー、アイテム) を表すイベント データを指定すると、ユーザーが「購入した」すべてのアイテムのリストが得られます。

この入力データを考えると

Python辞書を作成します

その辞書から、購入した/購入していないマトリックスと、別の辞書 (bnb) を生成します。

そこから、(1,1,0) と (1,1,1) の間のコサインを計算することで (1,2) の間の類似度を計算し、0.816496 を得ています。

私はこれをやっています:

ブルートフォースアプローチは私を殺していると思います.データが大きくなるにつれて遅くなるだけです. 私の信頼できるラップトップを使用して、8500 人のユーザーと 3500 のアイテムを処理する場合、この計算は何時間も実行されます。

辞書内のすべての項目の類似性を計算しようとしていますが、思ったよりも時間がかかります。これは MapReduce の良い候補だと思いますが、キーと値のペアに関して「考える」のに苦労しています。

または、私のアプローチの問題であり、必ずしも Map Reduce の候補ではありませんか?