根据人的姓名提出建议

时间:2011-07-19 16:38:21

标签: c# name-matching

所以我搜索了模糊搜索,Levenshtein距离算法,我不确定是否真的适合我正在做的事情。如果有的话,请告诉我你的想法...

如何获取用户的全名,并生成类似名称的列表?我希望阻止用户在创建帐户之前提供“嘿,你确定这些都不是你”,从而在应用程序中创建多个帐户。

我发现了这篇文章,但它完全是基于SQL的(http://stackoverflow.com/questions/988050/matching-records-based-on-person-name)

我正在使用c#/ Linq,SqlServer。

谢谢你的时间!

2 个答案:

答案 0 :(得分:1)

以下是.NET中SOUNDEX实现的链接:

http://www.codeproject.com/KB/recipes/soundex.aspx

我没有使用它,但似乎评价很好

答案 1 :(得分:0)

如果是我,我会在姓氏上要求完全匹配,然后只尝试猜测名字的差异。这会缩小您的工作范围。

然后,正如您在评论中所建议的那样,您可以应用+/-第一个名字长度的几个字符的规则,以及字符的阈值(80%)必须匹配。

此外,您只能查看也与前X个字符匹配的名字,因为大多数英文名称偏差将在X个字符之后。

示例:

  • John Doe
  • Johnny Doe
  • Johnathan Doe