2010-11-01 33 views
5

有沒有任何庫可以很容易地比較C#中2個字符串的「相似性」?我在想的是,如果你有字符串,C#字符串「相似性」比較測試

"This is a test" // 100% 
"THIS IS A TEST" // 95% 
" This is a test" // 98% 
"This is" // 60% 
"Foobar" // 0% 
"this test is a" // 70% 

等等。他們每個人都會得到一個分數比基字符串。

+1

定義相似...更具體一點,一般的方法是http://en.wikipedia.org/wiki/Longest_common_subsequence_problem – 2010-11-01 04:12:42

+7

http://en.wikipedia.org/wiki/Levenshtein_distance – 2010-11-01 04:15:57

+0

Levenshtein距離聽起來很有趣。我把「相似」放在引號中,因爲我不確定如何定義它!這將是一個測試每種方法的問題,以瞭解哪種方法對我的情況具有最佳的打擊率。 – mike 2010-11-01 04:50:21

回答

3

看看Levenstein。

Levenshtein距離是兩個字符串之間的差異。我在一個網絡爬蟲應用程序中使用它來比較網頁的新舊版本。如果它已經改變了,我會在我的數據庫中更新它。

CodeProject的這個實現在http://www.codeproject.com/KB/recipes/Levenshtein.aspx