同様の質問がありますが、ソースコードで使用できるC#ライブラリに関するものではありません。
ご協力ありがとうございます。
すでにルセンを見てきましたが、同様の文字列を検索し、インデックス作成部分のオーバーヘッドなしで、より簡単に検索できるものが必要です。
私がマークした答えには、2つの非常に簡単なアルゴリズムがあり、1つはLINQも使用するため、完璧です。
レーベンシュタイン距離の実装:
後者を使用する.NET 1.1プロジェクトがあります。それは単純ですが、私が必要とするものには完璧に機能します。私が覚えていることから少し調整する必要がありましたが、それは明らかではありませんでした。
samの文字列メトリック http://sourceforge.net/projects/simmetrics/files/ というタイトルの非常に印象的なライブラリも見ることができます。これには、アルゴリズムのホストが含まれます。
それらは私自身の発明ではありませんが、私のお気に入りであり、私はそれらについてブログに書き、Dice Coefficient、Levenshtein Distance、Longest Common Subsequence、Double Metaphoneの独自の調整バージョンを Four Functions C#拡張でファジー文字列の一致を見つけるための 。
Lucene.net をご覧になりましたか?これは.NetプラットフォームへのJava Lucene検索エンジンAPIのポートです。そのライブラリは多くの検索機能を提供します。1年ほど前に遊んでいたので、豊富な経験に基づいた提案を受け取り、本Windows Developer Power Toolsでそれを見て、試乗しました。 API documentation 探しているファジー検索のようなものを提供するかどうかを確認します。
この コードプロジェクトペーパー には、 レーベンシュタイン距離 を使用した文字列類似度関数があります。
次のLevenshtein Distance Algorithmがあり、2つの文字列の類似度(実際には違い)に値を割り当てます。これは、構築に使用できます。 http://www.merriampark.com/ldcsharp.htm
「C#の3項検索ツリー辞書」( http://www.codeproject.com/KB/recipes/tst.aspx )を使用して、類似の文字列を検索しました。
よろしく、パトリシオ
Linux用の Beagle Project はc#(モノ)で記述されており、google-desktopに似た検索ツールです。この種の文字列照合のためのコードが含まれている場合があります。
正しく思い出せば、データの検索と取得に Lucene ライブラリを使用します。それはあなたのプロジェクトにも役立つかもしれません。