同様の質問がありますが、ソース コードで使用できる C# ライブラリに関するものではありません。
ご協力ありがとうございました。
すでに lucene を見てきましたが、同様の文字列を検索するのがより簡単で、インデックス作成部分のオーバーヘッドがないものが必要です。
私がマークした答えには2つの非常に簡単なアルゴリズムがあり、1つはLINQも使用しているので完璧です.
同様の質問がありますが、ソース コードで使用できる C# ライブラリに関するものではありません。
ご協力ありがとうございました。
すでに lucene を見てきましたが、同様の文字列を検索するのがより簡単で、インデックス作成部分のオーバーヘッドがないものが必要です。
私がマークした答えには2つの非常に簡単なアルゴリズムがあり、1つはLINQも使用しているので完璧です.
レーベンシュタイン距離の実装:
後者を使用する .NET 1.1 プロジェクトがあります。単純ですが、私が必要としているものには完全に機能します。私が覚えていることから、少し微調整が必要でしたが、明らかでないことは何もありませんでした.
Sam's String Metrics https://github.com/StefH/SimMetrics.Netというタイトルの非常に印象的なライブラリも参照できます。これには多数のアルゴリズムが含まれます。
それらは私自身の発明ではありませんが、私のお気に入りです。私はそれらについてブログを書き、ダイス係数、レーベンシュタイン距離、最長共通部分列、および二重メタフォンの独自の微調整バージョンを、ファジー文字列を見つけるための 4 つの関数というブログ投稿で公開しました。 C# 拡張機能で一致します。
Lucene.netをご覧になりましたか? Java Lucene 検索エンジン API を .Net プラットフォームに移植したものです。そのライブラリは多くの検索機能を提供します。私は1年ほど前にそれをいじったので、私の提案をたくさんの経験に基づいているとは思わないでください. 私はWindows Developer Power Toolsの本でそれを見て、試乗しました。API ドキュメントを調べて、探しているファジー検索のようなものが提供されているかどうかを確認してください。
このコード プロジェクト ペーパーには、レーベンシュタイン距離を使用した文字列類似関数があります。
次のレーベンシュタイン距離アルゴリズムがあり、2 つの文字列の類似性 (実際には違い) に値を割り当てます。これを基に構築するために使用できます。
Linux 用のBeagle Projectは c# (mono) で書かれており、Google デスクトップのような検索ツールです。この種の文字列マッチング用のコードが含まれている場合があります。
私の記憶が正しければ、Luceneライブラリを使用してデータを検索および取得します。多分それはあなたのプロジェクトにも役立つかもしれません。
「C# の三項検索ツリー辞書」( http://www.codeproject.com/KB/recipes/tst.aspx ) を使用して、同様の文字列を検索しました。
よろしく、パトリシオ