問題タブ [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.
python - Pythonで文字列内の部分文字列を識別する最も効率的な方法は?
CPV (共通調達語彙) コードのかなり長い文字列を検索する必要があります。
現時点では、単純な for ループと str.find() でこれを行っています
問題は、CPV コードがわずかに異なる形式でリストされている場合、このアルゴリズムはそれを見つけられないことです。
文字列内のコードのさまざまな繰り返しをすべて検索する最も効率的な方法は何ですか? 最大 10,000 個の CPV コードをそれぞれ再フォーマットし、各インスタンスに str.find() を使用するだけですか?
異なるフォーマットの例は次のとおりです。
等
ありがとう :)
lucene - Javaのデータオブジェクトを使用してデータベースにLuceneインデックスを保存する
これは可能ですか?データベースに直接アクセスすることはできません。データ オブジェクトを介してのみアクセスできます。項目が ArrayList などで返された場合、インデックスを検索できますか?
これが不可能な場合、Lucene (または他のツール) を使用して Java を使用してオブジェクトに対してファジー マッチングを行う方法はありますか?
たとえば、FirstName と LastName を持つ Person オブジェクトがあります。名前のあいまい一致を実行したい。x個のPersonオブジェクトの配列があるとします。各Personオブジェクトをループして名前を比較する効率的な方法はありますか?
python - Pythonでこの文字列一致メソッドの実装はありますか?
おおよその文字列一致を使用して、データ ストア内のどのエントリがほぼ重複しているかを調べようとしています。
Pythonで次のアプローチの実装はありますか、それとも自分で試してロールバックする必要がありますか?
ありがとう :)
...
強引なアプローチは、T のすべての部分文字列について P までの編集距離を計算し、距離が最小の部分文字列を選択することです。ただし、このアルゴリズムの実行時間は O(n3 m) になります。
動的計画法を利用したより良い解決策 [3][4] は、問題の別の定式化を使用します。テキスト T の各位置 j とパターン P の各位置 i について、i 番目の最初の文字間の最小編集距離を計算します。パターン Pi と、位置 j で終わる T の部分文字列 Tj',j。
これを多くの文字列に適用する最も効率的な方法は何ですか?
search - ApacheSolrで名前を検索する
一見シンプルだが非常に複雑な検索の世界に足を踏み入れたところです。アプリケーションの場合、ユーザーを名前で検索するための検索メカニズムを構築する必要があります。
以下を含む多数の投稿や記事を読んだ後:
Luceneを個人名(名、姓)の検索に使用するにはどうすればよいですか?
http://dublincore.org/documents/1998/02/03/name-representation/
ユーザーとの関係を最初に優先してソーシャルネットワークを検索する最良の方法は何ですか?
http://www.gossamer-threads.com/lists/lucene/java-user/120417Lucene
インデックスとクエリデザインの質問-人の検索
LuceneFuzzy顧客名と部分的なアドレスを検索します
...そして私がその瞬間に見つけることができない他のいくつか。そして、少なくともインデックス作成と基本的な検索を私のマシンで機能させるために、ユーザー検索のために次のスキームを考案しました。
1)1番目、2番目、3番目の名前フィールドを用意し、Solrでインデックスを付けます
。2)複数列検索のrequestParserとしてedismaxを使用します。3
)音訳、ラテン語からASCIIへの変換などの正規化フィルターの組み合わせを使用します
。4 )最後にあいまい検索を使用します
明らかに、これに非常に慣れていないので、上記がそれを行うための最良の方法であるかどうかはわかりません。この分野で私よりも優れたアイデアを持っている経験豊富なユーザーから話を聞きたいと思います。
次の方法で名前を一致させる必要があります。
1)アクセントフォールディング:JornはJörnと一致し、その逆も同様
です
。2)代替スペル:KarlはCarlと一致し、その逆も同様
です。
ジョンなど
5)Soundexマッチング:エリンとエレン
ガイダンス、批判、コメントは大歓迎です。これが可能かどうか教えてください...またはおそらく私はただの空想です。:)
編集
また、投稿の1つからの例として、一部の人が長い名前を持っている場合に備えて、フルネームフィールドもあることを追加する必要があります。JonPaulまたはDelCarmenもJonPaulDelCarmenと一致する必要があります。
また、これは新しいプロジェクトであるため、スキーマとアーキテクチャを適切と思われる方法で変更できるため、制限は非常に限られています。
search - 数値フィールドの検索
Lucene で、数値フィールドに対する「ファジー」クエリを作成したいと考えています。現在私が見つけたのは、数値フィールドを検索するためのNumericRangeQueryクラスだけでした。私が構築しているアプリケーションでは、ユーザーは一連のタイプと、特定のコレクションで発生させたいこのタイプのオブジェクトの量を指定する必要があります。たとえば、ユーザーは「スプーン 4 本、フォーク 13 本、ナイフ 1 本」を問い合わせる場合があります。
目的の金額と実際の金額の距離に基づいて各数値フィールドにスコアを付けるクエリが必要です。たとえば、スコア = (距離 + 1)^-1 は良い結果をもたらすはずです。これを行う簡単で効率的な方法はありますか?
java - Java でのあいまい文字列検索 (単語の入れ替えを含む)
私は Java の初心者で、入力を事前定義された文字列のリストに一致させるプログラムを作成しようとしています。レーベンシュタイン距離を見てきましたが、次のような問題に直面しました。
「牛フィレ肉」などの入力がある場合は、「牛フィレ肉」に合わせたいと思います。問題は、レーベンシュタイン距離によれば、「牛肉のフィレ」が「マグロのフィレ」のようなものに近いということですが、これはもちろん間違っています。
これにはLuceneのようなものを使用する必要がありますか? Java クラス内で Lucene メソッドを使用していますか?
ありがとう!
django - PostgreSQL と Django での不正確な全文検索
私は PostgreSQL を初めて使用し、不正確な全文検索を行う方法がわかりません。大した問題ではありませんが、私は Django を使用しています。つまり、次のようなものを探しています。
ここで、エントリのリストには、正確に「hello world」またはそれに類似したものが含まれている必要があります。リストは、その値が指定された文字列からどれだけ離れているかに応じて並べ替える必要があります。たとえば、「Hello World」、「hEllo world」、「helloworld」、「hell world」などを含むエントリをクエリに含め、各項目が完璧からどれだけ離れているかを示す何らかのランキングを付けたいと思います。変更されていないクエリ文字列。
これをどのように行うつもりですか?
java - Lucene Fuzzy Search 結果の一致する用語を取得するには?
Lucene Fuzzy Search を使用する場合、一致するファジー用語とそのオフセットをどのように取得しますか?
あいまい検索は正常に機能します。ドキュメントに「fuzzy」または「luzzy」という用語が含まれている場合、一致します。一致した用語とそのオフセットを取得するにはどうすればよいですか?
すべての CONTENT_FIELD に termVectorStored と position および offset が追加されていることを確認しました。
mysql - mysql の照合を使用したアドレスのあいまい照合 (可能であれば、より良い結果のランキングのために重みを使用)
FULLTEXT
やろうとしている indexの myISAM テーブルがあります
結果が出ますが、「london」という単語が入っている人か、「street」という単語が入っている人だけです。3ft_min_word_len
文字の単語は索引付けされていないため、「235」、「w1b」、「2et」は無視されますが、「regent」はどうでしょうか。これを行う標準的な方法は何ですか? 住所のあいまい一致。ありがとう