web-dev-qa-db-ja.com

あいまいテキストマッチングC#

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

21
Myles McDonnell

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

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

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

個人的には、医療機関の設定でこれを使用し、プロバイダー名の重複をチェックしました。 Levenshteinプロセスを使用して、信頼度を評価し、それが真の複製であるか固有のものであるかを判断できるようにしました。

27
Fosco