我有一个很大的列表(超过200,000)字符串,我想与给定的字符串进行比较。给定的字符串由用户插入,因此可能有些不正确。

我希望做的是在将其添加到列表中,在每个字符串上创建某种预定的哈希。该哈希将包含诸如字符串长度,所有字符等的信息。

我的问题是,这样的东西已经存在吗?当然会有一些让我避免跑步的东西 Levenshtein距离 在列表中的每个字符串上?

也许我还没有想到第三个选择?

有帮助吗?

解决方案

听起来您想使用某种模糊哈希。有很多可用的哈希功能可以执行这样的事情。经典的老Soundex“算法甚至可能起作用。

另一个想法 - 如果您估计不正确的条目的概率很低,那么您实际上可能有99.9%的时间直接命中率,然后倒退到Soundex,可能会捕获90%的剩余案例,然后搜索整个情况其余0.01%的时间列表。

还值得检查此讨论:如何在大字符串数据库中找到字符串的最佳模糊匹配

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top