0

如果您正在编写代码来模糊匹配两个字符串,例如“coca-cola”与“koca-cola”,有一些标准的方法可以做到这一点,例如

  1. 比较 Levenshtein 编辑距离 ( http://en.wikipedia.org/wiki/Levenshtein_distance )
  2. 计算每个字符串的基于语音的散列(例如双变音)并进行比较。

但是,我找不到有关为子字符串执行此操作的标准且有效方法的信息。例如,对于输入“告诉我可口可乐”(“干草堆”),您想选择公司“可口可乐”(“针”)。

您不能使用修改后的 Levenshtein 算法,因为您可能有数百万根针头(数据库中的公司),这会占用太多资源。您可能可以计算大海捞针中每个单词的语音散列并与每个针进行比较,但是语音表示也有很多限制,我想知道是否有一个完善的标准来处理这个不使用语音的问题?

我正在寻找一种简单易懂且可扩展的算法。已经发布了类似的问题,其中给出了建议的答案,例如 Bitap 算法,但就像 Levenshtein 一样,这似乎没有规模化。

4

0 回答 0