2011-03-20 205 views
2

C#中有一種簡單的方法來比較兩個字符串並找出兩者之間的相似百分比嗎?假設你有一個字符串「我喜歡Bing」和「我喜歡Google」,它會比較「I」「Like」「Bing」和單詞「I」「Like」「Google」等字樣,然後會說2/3它是一樣的,並會返回.66比較兩個字符串C#?

+0

你想做字符串對齊,還是一個接一個的比較? – 2011-03-20 22:09:57

+1

您正在尋找的相似度的定義是什麼? – 2011-03-20 22:10:24

+1

什麼樣的相似性?你在尋找人物角色或模式,比如「我的名字是馬龍」和「我的兄弟是馬龍」。兩者都會產生不同的結果。 – Marlon 2011-03-20 22:11:12

回答

5

Damerau–Levenshtein distance可能是我見過的最常見的實現。給定維基百科頁面上的樣本應該足夠簡單,以在C#中實現。

+1

http://blogs.msdn.com/b/toub/archive/2006/05/05/590814.aspx這裏也有一些代碼。 – 2011-03-20 22:12:32

+1

或在這裏:http://www.dotnetperls.com/levenshtein – BrokenGlass 2011-03-20 22:13:01

+2

http://en.wikibooks.org/wiki/Algorithm_implementation/Strings/Levenshtein_distance#C.23 – 2011-03-20 22:13:19