我们都在 Google 中看到,如果我们输入查询并打错字,Google 会建议使用更合理的查询版本(这通常是正确的)。现在他们是怎么做到的?我能想到的一种可能方法是找出与给定字符串编辑距离为 1 的所有其他字符串,如果其中任何一个返回具有更高值“搜索”属性的字符串(可能来自后端数据库,每个索引查询词都有一个权重,基于该词在查询中出现的频率)而不是给定的字符串,建议使用该字符串。如果没有找到,则搜索编辑距离为 2 的字符串,依此类推,直到在 5 处,SE 确定该字符串可能是用户正在查找的字符串,并返回相应的搜索结果。
现在有可能在给定字符串的给定编辑距离处找到字符串吗?这个过程的效率如何?有什么很酷的算法可以做到这一点吗?