問題タブ [fuzzy-search]

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

algorithm - don't care を使用したパターン マッチングで 2D マッチングの問題を解決するにはどうすればよいですか?

ここに示されている「ドントケア」を使用したパターンマッチングのフィッシャー&パターソンアルゴリズムを理解していると思います: http://u.cs.biu.ac.il/~amir/AlgII/fp-set1.html

ただし、私が理解したように、「ドントケア」の 1 次元マッチングを使用して、O((n^2)(logm)) 時間で 2 次元マッチングを解決することが可能です。そのためには、「ドント ケア」記号を各文字列の末尾などに追加し、これを 1 次元の問題に変換する必要があります。そこがよく分からない部分です。いくつか試してみましたが、それがどのように役立つかわかりません。

では、「ドントケア」を使用した 1D マッチングは、2D マッチングの解決にどのように役立つのでしょうか?

ありがとう。

編集:私はそれを理解したと思います。テキストを線形化する必要があります (行の連結)。パターンにも同じことが言えますが、各行の後に nm don't-care シンボルを追加する必要があります (パターンの最後の行を除く)。それでも、これには O((n^2)(log(m^2))) 時間がかかると思いますが、前述の時間は不可能だと思います。コメント?

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

algorithm - あいまいな @username で一致するユーザーを見つけるアルゴリズム

Meta または SO で、たとえば誰かがコメントを入力したときなど、コメントをより適切に照合するアップグレードされたアルゴリズムを Jeff が投稿した投稿を見たことがあると思います。

ユーザー名「Tom」と一致します。特殊文字がある場合は、私のユーザー名が「T0m」で、誰かが入力@Tomしても一致するとします。

この投稿が実際に存在する場合、この投稿へのリンクを持っている人はいますか? 私が正しく思い出せば、それは彼が共有したコードであり、私にとって役立つでしょう!

それ以外の場合、ディスカッションに参加しているユーザー名のリストが与えられた場合:

そして、与えられた@Aaron、または@Aron入力として、リストで参照されている正しいユーザーを選択する最良の方法は何ですか?

一般的なアルゴリズムは問題ありませんが、私がそれを行っているサイトは ASP.net c# であるため、その言語の例があれば素晴らしいでしょう。これは私がこれまでに持っているもので、EXACT マッチ (すべて小文字) に最適です。

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

lucene - あいまい一致のSolr/lucene用語の最大文字数

Solrとのあいまい一致を実験しようとしています。

ドキュメントのインデックス付きfirst_nameフィールドで、「MYNEWORGANIZATION20SEP2011」と記載しました。実際には、「My New Organization 20-Sep-2011」という単語でしたが、スペースやその他の文字を削除しました。

クエリ「MYNEWORGANIZATION20SEP2011」として直接検索すると、単語の上(スペースなし)で、Solrは上記のドキュメントIDとして1つの結果になります。完璧です!

しかし、この文字列から2つの文字を削除し、クエリで「MYNEWORGANIZATION20SEP20〜0.8」を指定すると、結果は0になります。

新しいクエリの場合、MYNEWORGANIZATION20SEP20のメインドキュメントデータとの距離は2です。したがって、一致率は90%を超える必要があるため、データを検索する必要があります(クエリでは、80%の一致のみを指定しています。

ところで、first_nameを「rushik」のように6〜7文字として使用し、「rushik〜0.75」のようなファジークエリを提供すると、検索は正しく機能し、データが返されます。

上記の両方の場合で、フィールドタイプを「text_general」として使用しています-solr3.3を使用しています。

Solrでのあいまい検索にcharsの制限はありますか、それともどこでも構成できますか?-デフォルトのsolr構成を使用していますが、solrconfig.xmlでは何も変更されていません

スペースを手動で削除せずに、ファジークエリを使用して文字列のように「MyNewOrganization20-Sep-2011」を検索するためのより良い方法はありますか。

ありがとう、ルシク。

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

visual-studio - Visual Studio から SSIS Fuzzy Grouping を実行できるのに、デプロイされたパッケージでは実行できないのはなぜですか?

Fuzzy Grouping を作成する SSIS パッケージを作成しました。任意のサーバーを対象とする Visual Studio から実行でき、問題なく実行されます。これらのサーバーのいずれかにリモート接続して dtsx を実行しようとすると、Fuzzy Grouping コンポーネントの実行時に PRODUCTLEVELTOLOW エラーが発生します。

すべてのサーバーで SQL Server 2005 Standard を実行しています。Fuzzy Grouping やその他のコンポーネントを利用するには、SQL Server 2005 Enterprise が必要であると読みました。それはエラー メッセージに一致しますが、これが正しい場合、Visual Studio から機能するのはなぜですか?

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

編集:あいまいなグループ化を作成する他の方法はありますか? おそらく、SSIS コンポーネントの経験がある人は、同様のコンポーネントを作成することが選択肢になるかどうかを言うことができますか?

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

sql - PostgreSQL のみで単純なあいまい検索を作成するには?

RoR ベースのサイトの検索機能に少し問題があります。私はいくつかのコードを持つ多くの製品を持っています。このコードは、「AB-123-lHdfj」のような任意の文字列にすることができます。今、私はILIKE演算子を使って製品を見つけます:

正常に動作しますが、「AB123-lHdfj」や「AB123lHdfj」などのコードを持つ製品を見つけることができません。

これにはどうすればよいですか?Postgresには、文字列の正規化機能、または私を助ける他の方法がありますか?

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

python - データベースでの近似検索

機関 (大学、病院など) のリストを含む大規模なデータベースがあります。機関の名前はさまざまなソースから来ており、同じ機関でも異なるスペルを使用できます。たとえば、スペルが間違っているか、単語が短縮されている可能性があります (「uni」、「univ」、または「university」)。

データベースに挿入する必要がある名前が与えられた場合、この機関が既にデータベースにあるかどうかを確認する実用的な方法はありますか? これは研究プロジェクトではないので、かなり高速なソリューションを探しています。

私はdjangoとpostgresqlを使用していますが、問題ではないと思います。

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

sql - 不正確な測定値を使用して一連のデータを検索する(ファジー論理)

これは、より複雑なフォローアップの質問です。連続した値を検索する効率的な方法

製品には、多くのセグメント行(数千)を含めることができます。各セグメントには、各製品(1、2、3、4、5など)の1から始まる位置列と、(323.113、5423.231、873.42、422.64、763.1など)などの任意の値を含むことができる列があります。 )。データは読み取り専用です。

製品を曲として、セグメントを曲の音符のセットとして考えると役立つ場合があります。

曲のスニペットなど、連続するセグメントのサブセットを前提として、製品に一致する可能性のあるものを特定したいと思います。ただし、測定値にエラーが発生する可能性があるため、サブセット内のセグメントがデータベース内のセグメントと正確に一致しない場合があります。

測定したセグメントのサブセットに最も近い製品のセグメントを見つけることで、製品候補を特定するにはどうすればよいですか?また、データベースはこのタイプのデータに最適なメディアですか?

-

これが、私がこの問題にどのように取り組んでいたかについてのいくつかの考えです。これらを正確な要件と見なさないでください。私は、これを可能な限り最高に機能させるために、あらゆる種類のアルゴリズムを受け入れています。近さを判断するには、複数のしきい値変数が必要だと考えていました。1つの可能性は、近接しきい値と一致しきい値を実装することです。

たとえば、次の値が与えられます。

近接しきい値により、測定されたセグメントが実際のセグメントより1上または下になる場合、測定1は製品Aと一致する可能性があります。これは、多くのセグメントが正確に一致しない場合でも、実際の値に対して近接しきい値内にあるためです。

一致しきい値が3以上の一致の測定に許可されている場合、測定2は製品Aを返す可能性があります。これは、セグメントの1つ(78)が近接しきい値をはるかに超えているにもかかわらず、正しい順序で3つのセグメントに一致しているため、一致しきい値。

測定されたすべてのセグメントは実際のセグメントに存在しますが、近接または一致のしきい値内にないため、測定3は製品Aと一致しません。

更新:回答の1つで、最も厳密に一致することの意味を定義するように求められました。どう答えたらいいのかよくわかりませんが、歌のアナロジーを続けて説明しようと思います。セグメントが録音された曲の最大周波数を表すとしましょう。同じ曲をもう一度録音すると似たようなものになりますが、バックグラウンドノイズや録音機器のその他の制限により、周波数の一部が一致し、一部が近くなり、一部がかなり離れます。このシナリオでは、ある録音が別の録音と「一致」するタイミングをどのように定義しますか?これは、この問題で使用するために私が探しているのと同じ種類のマッチングロジックです。

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

c# - あいまいテキストマッチングC#

写真家が画像のメタデータをクリーンアップするのを支援するために、デスクトップUI(.Net WinForms)を作成しています。66k以上のフレーズのリストがあります。統合の可能性のある候補を特定するために、ある種のアルゴリズムを採用した、私が使用できる優れたオープンソース/無料の.NETコンポーネントを誰かが提案できますか?たとえば、空白や句読点、あるいはわずかなスペルミスだけが異なる、実際には同じ単語またはフレーズである2つ以上のエントリが存在する場合があります。アプリケーションは、最終的にはユーザーがフレーズの統合を実行することに依存しますが、潜在的な候補を自動的に見つける効果的な方法を持つことは非常に貴重であることがわかります。

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

sql - データセットのファジー インデックス

ユーザーが「知っている限りの情報」を提供できる検索機能を提供する必要があるという問題に直面しています。次に、このデータセットをさまざまなルックアップ テーブルと照合して、ローカル ID の 1 つと確実に関連付けることができるかどうかを判断する必要があります。たとえば、この検索クエリのレコードがあるとします。ほとんどのフィールドはあいまいです。

例: 1 つのフィールドは名前 (ユーザーが名のみを持つフィールド) であり、ユーザーが番地のみを持つ別のストリートである可能性があります。

データセットは中サイズ (~10M エントリ) です。

この問題に対する最善のアプローチは何ですか? SQL + サウンドデックス? ルセン?

ありがとう!