百分比类似文本和容差级别

时间:2016-02-26 03:53:51

标签: python algorithm dictionary

案例场景:

想象一个键值对象(字典),它包含以下数据:

{ 
   'www.example.com/':2,
   'www.example.com/happy/':4
}

我从包含以下数据的来源收到一个值:

{
    'www.example.com//':4
}

很明显,www.example.com //与www.example.com/非常相似。我不希望在我的字典中创建一个新条目,而是希望代码在文本相似性方面看到我字典中最接近的密钥,然后总结数字。因此,字典的最终状态如下所示:

{ 
   'www.example.com/':6,
   'www.example.com/happy/':4
}

求和部分很容易,并且容易反弹,但挑战性的部分是字典增长时使用的最佳算法?

即。我是否每次都要遍历字典并检查密钥(如下所示:

for key in dictionary:
    if tolerance > diff(key,collected_data):
        dictionary[key] += collected_data[value]
        break

但上面的例子并没有停止,直到找到最佳值,这不是理想的。

1 个答案:

答案 0 :(得分:1)

我想你想要某种局部敏感散列(LSH),我以前从未尝试过,但你可以尝试像http://nearpy.io/

这样的东西