2012-05-01 7 views
11

私は以前のリリースから変更された文字列のリストを持っています。いくつかの変更は簡単です(スペーシング、1単語分など)。可能であれば古い翻訳を使用するように、マイナーな違いがある文字列を検出したいと思います。類似しているが同一ではない文字列を検出するルーチンが必要です

「マイナーな相違」とはどういう意味ですか?私はデータベースで作業を始めるまでわかりません。

2つの文字列が類似しているが同一ではないことを示すチューニング可能なルーチンがありますか?どのように異なる2つの文字列があるかを示す数値を返すルーチンはどれですか?

+2

似たような文字列の等級をつける方法が必要になります。それを行うには百万の方法があります。ここにスレッドがあります。さまざまな答えを見てください:http://stackoverflow.com/questions/4323977/string-similarity-score-hash –

+0

上のリンクや下のリンクにない新しいものを見つけたら、確かにクールでしょう。戻ってきて、あなたがしたことを教えてください。 –

答えて

8

多くのアルゴリズムがあります。キーワードはファジー文字列です。

よく知られているものはLevenshtein distanceです。それによって、ある文字列を別の文字列に変換するために必要な「変更」の数を計算することができます。その結果、文字列の類似度の見積もりが得られます。

この質問も参照してください:How to search for similar words、デルファイのソリューション。

+0

ありがとう!完璧! –

+6

も参照してください。[how-do-you-implement-levenshtein-distance-in-delphi](http://stackoverflow.com/q/54797/576719) –