我目前正在从事一个项目,需要我将我们的乐队和 field 数据库与许多外部服务相匹配。
基本上,我正在寻找确定两个名称是否相同的最佳方法的方向。例如:
- 我们的数据库地点名称 - “The Pig and WhiSTLe”
- 服务 1 - “ pig 和哨子”
- 服务 2 - “ pig 与口哨”
- 等等等等
我认为主要区别在于缺少“the”或使用“&”而不是“and”,但也可能存在拼写略有不同和单词顺序不同等问题。
在这种情况下通常使用哪些算法/技术,我是否需要过滤噪音词或进行某种拼写检查类型匹配?
您在 C# 中看到过类似的示例吗?
更新:如果有人对 C# 示例感兴趣,可以通过执行 google code search for Levenshtein distance 来访问堆。
最佳答案
执行此操作的规范(并且可能是最简单的)方法是测量 Levenshtein distance 两个字符串之间。如果距离相对于字符串的大小而言很小,则它可能是同一个字符串。请注意,如果您必须比较很多非常小的字符串,则很难判断它们是否相同。它适用于更长的字符串。
更聪明的方法可能是比较两个字符串之间的 Levenshtein 距离,但将零距离分配给更明显的转换,例如“and”/“&”、“Snoop Doggy Dogg”/“Snoop”等.
关于c# - 如何判断两个相似的乐队名称是否代表同一个乐队?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1918838/