案例场景:
想象一个包含以下数据的键值对象(字典):
{
'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
}
求和部分很容易,反弹容差也很容易,但具有挑战性的部分是随着字典的增长,最好的算法是什么?
即我是否必须每次都遍历字典并检查 key (像这样:
for key in dictionary:
if tolerance > diff(key,collected_data):
dictionary[key] += collected_data[value]
break
)
但是上面的例子在找到最佳值之前不会停止,这并不理想。
最佳答案
我猜你想要某种局部敏感哈希 (LSH),我以前从未尝试过,但你可以尝试类似 http://nearpy.io/ 的东西
关于python - 相似文本百分比和容忍度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35643124/