我有一个问题,我需要在哈希映射中进行模糊查找,即返回与最接近查询的那个键对应的值,在我的例子中是通过 Levenshtein 距离测量的。
我目前的方法是dict
使用特殊的查找方法进行子类化,该方法计算针对所有键的 Levenshtein 距离,然后返回得分最低的键的值。基本上是这样的:
import Levenshtein
class FuzzyLookupDict(dict):
def fuzzy_lookup(self, query):
levs = [(key, Levenshtein.ratio(query, key)) for key in self.keys()]
key, score = max(levs, key=lambda lev: lev[1])
return self.get(key)
这是一个好方法还是我没有想到的更好的解决方案?