【问题标题】:Fuzzy search over millions of strings with custom distance function使用自定义距离函数对数百万个字符串进行模糊搜索
【发布时间】:2019-02-21 07:40:41
【问题描述】:

我有一个大的短字符串池和一个自定义距离函数(比如说 Damerau-Levenshtein 距离)。

问:根据自定义距离从池中获取前 N 个字符串的最先进的解决方案是什么?

我正在寻找解决此问题的理论方法以及编码实现(Java、Python 等)。

【问题讨论】:

  • 你能提供“你想要的东西吗?”有一些例子吗?

标签: algorithm data-structures fuzzy-search fuzzy-comparison string-algorithm


【解决方案1】:

直接的方法是迭代所有字符串,计算每个字符串的距离,并在迭代时只保留最好的 N。

如果您需要大量执行此任务,您应该考虑是否可以对成本进行上限/下限估算,该估算的计算速度比您的实际成本函数要快得多。例如。为您的字符串预先计算所有 n-gram(例如 3-gram)。或者也许比较长度差异已经可以给出距离的下限。对于所有下界距离高于第 n 个最佳匹配的当前距离的字符串,您可以跳过计算距离。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-31
    • 2012-01-16
    • 2015-08-14
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 2017-04-30
    • 2010-12-30
    相关资源
    最近更新 更多