問題タブ [fuzzy-comparison]

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 投票する
12 に答える
80387 参照

python - あいまい文字列比較に適したPythonモジュール?

単純なあいまい文字列比較を実行できるPythonモジュールを探しています。具体的には、文字列がどれだけ似ているかをパーセンテージで示したいと思います。私はこれが潜在的に主観的であることを知っているので、とりわけ、位置の比較や最長の類似した文字列の一致を実行できるライブラリを見つけたいと思っていました。

基本的に、単一のパーセンテージを生成するのに十分シンプルでありながら、実行する比較のタイプを指定できるように十分に構成可能なものを見つけたいと思っています。

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

math - 数値が別の数値のパーセンテージ内にあるかどうかを判断する方法

スワイプした線がまっすぐかどうかをあいまいに認識する iPhone コードを書いています。2 つの終点の方位を取得し、それを 0、90、180、および 270 度と比較します。許容範囲はプラスマイナス 10 度です。今、私はたくさんの if ブロックを使ってそれをやっていますが、これは非常に不格好に思えます。

方位0..360、公差パーセンテージ (たとえば 20% = (-10° から +10°))、および90 度などの直線角度が与えられた場合、方位が公差内にあるかどうかを返す関数を作成する方法は?

更新: おそらく、私は具体的すぎます。数値が別の数値のパーセンテージ内にあるかどうかを判断する優れた一般的な関数は、多くの分野で役立つと思います。

例: swipeLength の数値はmaxSwipe10 %以内ですか? それは役に立ちます。

私が何を得ているか分かりますか?

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

mysql - 共通キーが存在しない場合、2 つのテーブルを比較することはできますか?

重複を比較したい 2 つのテーブルがあります。これらのテーブルは、名前、市区町村、都道府県などの基本的な会社情報フィールドにすぎません。私が確認できる唯一の一般的なフィールドは名前列ですが、名前は正確ではありません。LIKE ステートメントを使用して 2 つの比較を実行する方法はありますか? また、どなたでも追加の提案をお待ちしております。

ありがとう。

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

php - Fuzzy Text Search: Regex Wildcard Search Generator?

I'm wondering if there is some kind of way to do fuzzy string matching in PHP. Looking for a word in a long string, finding a potential match even if its mis-spelled; something that would find it if it was off by one character due to an OCR error.

I was thinking a regex generator might be able to do it. So given an input of "crazy" it would generate this regex:

It would then return all matches for that word or variations of that word.

How to build the generator: I would probably split the search string/word up into an array of characters and build the regex expression doing a foreach the newly created array replacing the key value (the position of the letter in the string) with ".+".

Is this a good way to do fuzzy text search or is there a better way? What about some kind of string comparison that gives me a score based on how close it is? I'm trying to see if some badly converted OCR text contains a word in short.

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

sql - テキストを分析するための TSQL クエリ

注文番号、キャンセル日、理由を含むテーブルがあります。理由フィールドは varchar(255) フィールドであり、多くの異なる営業担当者によって書かれたものであり、キャンセル理由を分類するためにレポートを生成する必要がある理由カテゴリでグループ化するのが非常に困難です。TSQL で理由を分析する最良の方法は何ですか?

営業担当者が入力した理由のサンプル

ところで、私は SQL Server 2005 を持っています。

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

sql - q-gram近似マッチングの最適化

q-gramを使用してファジーマッチングを実行したい300万人のレコードを含むテーブルがあります(姓など)。これにリンクする 2 グラムのテーブルを作成しましたが、このデータ ボリューム (約 5 分) では検索パフォーマンスが高くありません。

基本的に 2 つの質問があります: (1) テーブル スキャンを回避するためにパフォーマンスを改善する方法を提案できますか (つまり、検索文字列と 300 万の姓の間で一般的な q-gram をカウントする必要があります) (2) q-gram を使用する場合、Aは B に似ており、C は B に似ていますが、それは C が A に似ていることを意味しますか?

敬具

ピーター

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

image-processing - わずかに変更された画像を認識するにはどうすればよいですか?

約 200 万枚の jpeg 画像の非常に大きなデータベースがあります。それらの画像の重複をファジー検索したいと思います。重複画像とは、ピクセルの多く (約半分) が同じ値で、残りの R/G/B 値が約 +/- 3 ずれている 2 つの画像です。画像は肉眼と同じです。これは、jpeg を再圧縮することで得られる違いのようなものです。

2 つの画像が同一であるかどうかを検出する簡単な方法は既にあります。すべてのピクセルの差分輝度を合計し、しきい値と比較します。この方法は 100% 正確であることが証明されていますが、200 万枚に対して 1 枚の写真を作成するのは非常に時間がかかります (写真 1 枚あたり数時間)。

ハッシュテーブルでフィンガープリントを比較できるように、画像のフィンガープリントを取得したいと思います。比較する必要がある画像の数を確実に 100 に減らすことができたとしても、1 と 100 を比較するのに最適な状態になるでしょう。このための適切なアルゴリズムは何でしょうか?

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

sql - ファジールックアップが参照テーブルから値のヌルセットを返す原因は何ですか?

私はテーブルのビューでファジールックアップを行っていますが、時折例外を除いて類似性を返す素晴らしい仕事をしていますが、何が問題を引き起こしているのか理解できないようです。ビューと元のテーブルの両方に値が存在し、「完全一致」のために選択した列の値がルックアップビューとソースSQL。

null値を取得する理由について何か考えはありますか?

代替テキストhttp://img689.imageshack.us/img689/4846/fuzzylkp.jpg

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

regex - ファジー正規表現

私の仕事では、ダメラウ・レーベンシュタイン距離などの近似文字列マッチングアルゴリズムを使用して、コードがスペルミスの影響を受けにくくするという素晴らしい結果が得られました。

ここで、文字列をのような単純な正規表現と照合する必要がありますTV Schedule for \d\d (Jan|Feb|Mar|...)。これは、文字列TV Schedule for 10 Janが0をT Schedule for 10. Jan返し、2を返す必要があることを意味します。

これは、正規表現(この場合は100x12)ですべての文字列を生成し、最適な文字列を見つけることで実行できますが、実用的ではありません。

これを効果的に行う方法について何かアイデアはありますか?

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

python - Python/PIL を使用した (類似した) 画像の比較

Python 2.6 と PIL を使用して、2 つの画像の類似度(読み取り:レーベンシュタイン距離)を計算しようとしています。

迅速な比較のためにpython-levenshteinライブラリを使用する予定です。

主な質問:

画像を比較するための良い戦略は何ですか? 私の考えは次のようなものです:

  • RGB に変換 (透明 -> 白) (または、モノクロに変換しますか?)
  • 小さい方を大きい方のサイズに拡大します
  • 各チャンネル (= モノクロに変換された場合は唯一のチャンネル) をシーケンス (アイテム値 = ピクセルの色値) に変換します。
  • 2 つのシーケンス間のレーベンシュタイン距離を計算します

もちろん、これはミラーリングされたイメージ、トリミングされたイメージなどのケースを処理しません。しかし、基本的な比較には、これは役立つはずです。

どこかに文書化されたより良い戦略はありますか?

編集:アーロン H は速度の問題について正しいです。Levelshtein の計算は、数百 x 数百ピクセルより大きい画像の場合、ほぼ永遠にかかります。ただし、100x100 と 200x200 にダウンスケーリングした後の結果の違いは、私の例では 1% 未満であるため、最大画像サイズを ~100px 程度に設定するのが賢明かもしれません...

編集: PreludeAndFugue に感謝します。その質問は私が探していたものです。

ちなみに、レーベンシュタイン距離は最適化できるようですが、背景に冗長な要素がたくさんあるためか、非常に悪い結果が得られます。他のいくつかのアルゴリズムを見なければなりません。

EIDT:二乗平均平方根偏差とピーク信号対雑音比は、実装がそれほど難しくなく、CPU の負荷がそれほど高くないように見える別の 2 つのオプションのようです。ただし、形状などを認識するための何らかのコンテキスト分析が必要になるようです。

とにかく、すべてのリンクと、NumPy/SciPy への方向性を指摘してくれてありがとう。