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

c# - C# 類似文字列の比較

いくつかのファイル名を持つジェネリック (LIST1) と、名前の完全なリスト (LIST2) を持つ別の biggeneric があります。LIST1 の名前を LIST2 の類似の名前と一致させる必要があります。例えば

レーベンシュタイン距離について読み、フレームワーク ( SignumFramework Utilities )でその実装を使用しました。 2 行目と 3 行目で distance=1 が返されます。しかし、私の場合、3 行目は 2 行目よりも一致しています。

同様の文字列を比較するための別の方法はありますか? もっと柔軟なもの?

0 投票する
9 に答える
13193 参照

php - レーベンシュタイン距離: 単語の交換位置をより適切に処理するには?

PHP levenshtein関数を使用して文字列を比較することに成功しました。

ただし、位置が入れ替わった部分文字列を含む 2 つの文字列の場合、アルゴリズムはそれらをまったく新しい部分文字列としてカウントします。

例えば:

以下よりも共通点が少ないものとして扱われます。

私は、最初の 2つがより似ていることを確認したアルゴリズムを好みます。

位置が切り替わった部分文字列を編集とは異なるものとして識別できる比較関数を考え出すにはどうすればよいでしょうか?

私が考えた 1 つの可能なアプローチは、比較の前に、文字列内のすべての単語をアルファベット順に並べることです。これにより、単語の元の順序が比較から完全に除外されます。ただし、これの欠点は、単語の最初の文字だけを変更すると、1 文字を変更する場合よりもはるかに大きな混乱が生じる可能性があることです。

私が達成しようとしているのは、人に関する 2 つの事実 (フリー テキスト文字列) を比較し、これらの事実が同じ事実を示している可能性を判断することです。事実とは、たとえば、その人が通った学校、雇用主または発行者の名前などです。2 つのレコードは、同じ学校の綴りが異なっていたり、単語の順序が異なっていたり、余分な単語があったりする可能性があるため、それらが同じ学校を指していると推測するには、マッチングが多少あいまいである必要があります。これまでのところ、スペルミスに対しては非常にうまく機能していますが (私はこれに加えて metaphone に似た表音アルゴリズムを使用しています)、学校でよく見られる単語の順序を入れ替えると非常にうまく機能しません: "xxx college" vs 「○○大学」。

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

algorithm - 視覚的類似性検索アルゴリズム

このhttp://labs.ideeinc.com/multicolrのようなユーティリティを構築しようとしていますが、使用しているアルゴリズムがわかりません。誰か知っていますか?

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

php - PHPでのlevenshtein/similar_textの高速化

私は現在、similar_textを使用して、文字列を最大50,000のリストと比較していますが、比較の数が多いため、非常に低速です。約500の一意の文字列を比較するのに約11分かかります。

これを実行する前に、データベースをチェックして、過去に処理されたかどうかを確認します。これにより、最初の実行後は毎回、ほぼ瞬時に処理されます。

レーベンシュタインを使用すると少し速くなり、マニュアルに投稿されたレーベンシュタイン距離関数は面白そうだと思います。これを大幅に高速化できるものがありませんか?

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

algorithm - 2 つのテキストの類似性 (キーワードの適応ローカル アラインメント?)

長さの異なる 2 つのテキスト (最大 4000 文字) があります。そして、(部分的な)言い換えに基づいて類似率を取得する必要があります。テキストの同じ部分が各テキストの異なる位置にある可能性があることに注意してください (したがって、レーベンシュタインは解決策ではありません)。

比較プロセスでは、次のことも行う必要があります。

  • エキスポを増やさない。文字サイズあり
  • パフォーマンスにやさしい。:)

キーワードの適応的なローカル配置」が可能な解決策のようです。

実装例はありますか?優先言語は PHP ですが、翻訳できます。:)

そのトピックに関する他の解決策/アイデア/経験はありますか?

大変お世話になりました。

0 投票する
8 に答える
1587 参照

python - ピアソン類似性スコア、これをさらに最適化するにはどうすればよいですか?

値の2つの辞書を比較するために、ピアソンの類似性スコアを実装しました。この方法では、他のどこよりも多くの時間が費やされるため(数百万の呼び出しが発生する可能性があります)、これは明らかに最適化するための重要な方法です。

ほんの少しの最適化でもコードに大きな影響を与える可能性があるので、ほんの少しの改善でも探求したいと思っています。

これが私がこれまでに持っているものです:

0 投票する
6 に答える
5309 参照

python - 重複する郵送先住所を見つけるための戦略

類似度スコアに基づいて、重複する住所を見つける方法を考え出そうとしています。次の重複アドレスを検討してください。

NORTH -> N のように、すべてのスペース、コンマ、ダッシュ、ポンド記号を削除して、長い単語を省略形にするために、文字列変換を適用することを計画しています。さて、この出力が得られたら、どうすれば addr_3 を残りのアドレスと比較し、同様のものを検出できますか? 何パーセントの類似性が安全でしょうか? このための簡単なpythonコードを提供できますか?

感謝している、

エドゥアルド

0 投票する
4 に答える
554 参照

algorithm - Excel のように類似のパターンを見つけて分析するにはどうすればよいですか?

特定のパターンで 3 つの行を入力し、列を一番下までドラッグすると、Excel の機能がわかります。Excel はパターンを続行しようとします。

例えば

タイプ...

  • テスト-1
  • テスト-2
  • テスト-3

Excel は次のように続けます。

  • テスト-4
  • テスト-5
  • テスト...

日付などの他のパタ​​ーンでも同じように機能します。

同様のことを達成しようとしていますが、次のようなより例外的なケースも処理したいと考えています。

  • テストブルーサムシングエルス
  • テスト-黄色-何か他のもの
  • テストレッドサムシングエルス

このエントリに基づいて、パターンは次のようになります。

  • テスト-[動的]-何か

[DYNAMIC] を他の色で継続するのはまったく別の取引です。今はあまり気にしません。パターン内の [DYNAMIC] 部分を検出することに主に関心があります。

多数のプール エントリからこれを検出する必要があります。この種のパターンを持つ 10,000 個の文字列があり、類似性に基づいてこれらの文字列をグループ化し、テキストのどの部分が常に変化しているかを検出したいとします ([DYNAMIC])。

このシナリオではドキュメントの分類が役立ちますが、どこから始めればよいかわかりません。

アップデート:

複数の[DYNAMIC]パターンを持つことも可能であることを忘れていました。

そのような:

  • test_[動的] 12 [動的2]

重要ではないと思いますが、これを .NET に実装する予定ですが、使用するアルゴリズムに関するヒントは非常に役立ちます。

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

algorithm - 2 つのベクトル形状の類似点を見つける

ベクター グラフィックスの比較に関連する情報やアルゴリズムを探しています。たとえば、ほぼ同一の 2 つの図形を含む 2 つのポイント コレクションまたはベクトル ファイルがあるとします。最初の数値が 2 番目の数値と約 90% 類似していることを確認したいと考えています。