27

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

4

2 に答える 2

35

レーベンシュタイン距離の公式を紹介します。すばらしい:

http://en.wikipedia.org/wiki/Levenshtein_distance

情報理論とコンピュータサイエンスでは、レーベンシュタイン距離は2つのシーケンス間の差の量を測定するための文字列メトリックです。編集距離という用語は、レーベンシュタイン距離を具体的に指すためによく使用されます。

個人的には、プロバイダー名の重複がチェックされるヘルスケア設定でこれを使用しました。レーベンシュタインプロセスを使用して、信頼度を評価し、それが真の複製なのか、それともユニークなものなのかを判断できるようにしました。

于 2011-11-21T21:10:00.390 に答える
3

これは古い質問だと思いますが、この答えは、現在同じ問題を扱っている人々を助けることができると思います。

https://github.com/JakeBayer/FuzzySharpをご覧ください

あいまい検索の特定の方法を実装する複数のメソッドを持つac#NuGetパッケージです。確かではありませんが、おそらくFoscoの回答もそのうちの1つで使用されています。

編集:このパッケージについてのコメントに気づきましたが、この質問の中でより良い場所に値すると思います

于 2021-12-02T14:37:08.597 に答える