2011-03-20 102 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