69

同様の質問がありますが、ソース コードで使用できる C# ライブラリに関するものではありません。

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

すでに lucene を見てきましたが、同様の文字列を検索するのがより簡単で、インデックス作成部分のオーバーヘッドがないものが必要です。

私がマークした答えには2つの非常に簡単なアルゴリズムがあり、1つはLINQも使用しているので完璧です.

4

8 に答える 8

34

レーベンシュタイン距離の実装:

後者を使用する .NET 1.1 プロジェクトがあります。単純ですが、私が必要としているものには完全に機能します。私が覚えていることから、少し微調整が必​​要でしたが、明らかでないことは何もありませんでした.

于 2008-09-17T14:38:51.443 に答える
30

Sam's String Metrics https://github.com/StefH/SimMetrics.Netというタイトルの非常に印象的なライブラリも参照できます。これには多数のアルゴリズムが含まれます。

  • ハミング距離
  • レーベンシュタイン距離
  • Needleman-Wunch 距離またはセラーズ アルゴリズム
  • スミス・ウォーターマン距離
  • 後藤距離またはスミス・ウォーターマン・後藤距離
  • ブロック距離 or L1 距離 or シティブロック距離
  • モンジュ・エルカン距離
  • ジャロ距離メトリック
  • ジャロ・ウィンクラー
  • SoundEx 距離測定
  • マッチング係数
  • サイコロの係数
  • Jaccard Similarity または Jaccard Coefficient または Tanimoto 係数
  • オーバーラップ係数
  • ユークリッド距離または L2 距離
  • コサイン類似度
  • 変分距離
  • ヘリンジャー距離またはバタチャリヤ距離
  • 情報半径 (Jensen-Shannon ダイバージェンス)
  • 調和平均
  • スキュー発散
  • 混乱確率
  • タウ
  • Fellegi and Sunters (SFS) メトリック
  • TFIDF または TF/IDF
  • ファストA
  • ブラストP
  • 最大一致
  • qグラム
  • ウッコネン アルゴリズム
于 2009-07-08T02:04:03.210 に答える
14

それらは私自身の発明ではありませんが、私のお気に入りです。私はそれらについてブログを書き、ダイス係数、レーベンシュタイン距離、最長共通部分列、および二重メタフォンの独自の微調整バージョンを、ファジー文字列を見つけるための 4 つの関数というブログ投稿で公開しました。 C# 拡張機能で一致します。

于 2011-05-28T01:42:25.017 に答える
2

Lucene.netをご覧になりましたか? Java Lucene 検索エンジン API を .Net プラットフォームに移植したものです。そのライブラリは多くの検索機能を提供します。私は1年ほど前にそれをいじったので、私の提案をたくさんの経験に基づいているとは思わないでください. 私はWindows Developer Power Toolsの本でそれを見て、試乗しました。API ドキュメントを調べて、探しているファジー検索のようなものが提供されているかどうかを確認してください。

于 2008-09-17T14:33:15.360 に答える
1

このコード プロジェクト ペーパーには、レーベンシュタイン距離を使用した文字列類似関数があります。

于 2008-09-17T14:35:14.417 に答える
1

次のレーベンシュタイン距離アルゴリズムがあり、2 つの文字列の類似性 (実際には違い) に値を割り当てます。これを基に構築するために使用できます

于 2008-09-17T14:37:04.523 に答える
0

Linux 用のBeagle Projectは c# (mono) で書かれており、Google デスクトップのような検索ツールです。この種の文字列マッチング用のコードが含まれている場合があります。

私の記憶が正しければ、Luceneライブラリを使用してデータを検索および取得します。多分それはあなたのプロジェクトにも役立つかもしれません。

于 2008-09-17T14:28:09.567 に答える
0

「C# の三項検索ツリー辞書」( http://www.codeproject.com/KB/recipes/tst.aspx ) を使用して、同様の文字列を検索しました。

よろしく、パトリシオ

于 2008-09-17T16:26:57.800 に答える