我目前正在开展一个项目,该项目要求我将我们的乐队和场地数据库与许多外部服务相匹配。
基本上我正在寻找一些关于确定两个名字是否相同的最佳方法的方向。例如:
- 我们的数据库场地名称 - “The Pig and Whistle”
- 服务1——“猪和口哨”
- 服务2——“猪与口哨”
- etc etc
我认为主要的区别是缺少“the”或使用“&”而不是“and”,但也可能存在拼写略有不同和顺序不同的单词等问题。
在这种情况下通常使用哪些算法/技术,我是否需要过滤干扰词或进行某种拼写检查类型匹配?
你在 C# 中见过类似的例子吗?
更新:如果有人对 C# 示例感兴趣,您可以通过执行以下操作来访问堆
执行此操作的规范(可能也是最简单的)方法是测量编辑距离 http://en.wikipedia.org/wiki/Levenshtein_distance两根弦之间。如果距离相对于字符串的大小较小,则可能是同一字符串。请注意,如果您必须比较许多非常小的字符串,则很难判断它们是否相同。对于较长的字符串效果更好。
更聪明的方法可能是比较两个字符串之间的编辑距离,但为更明显的转换分配零距离,例如“and”/“&”、“Snoop Doggy Dogg”/“Snoop”等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)