【发布时间】:2013-02-13 15:29:38
【问题描述】:
我读过 LSH 散列,想知道匹配 1 个字符内的字符串的最佳实现是什么?
test = {'dog':1, 'cat': 2, 'eagle': 3}
test['dog']
>> 1
如果我查找 test['dogs'] 或 test['dogg'],我也想返回 1。我意识到如果我要查找“log”或“cog”它也会返回 1,但我可以编写一个方法来排除这些结果。
此外,我如何进一步使用此方法让一般字符串返回 X 个字符内的匹配项?
string1 = "brown dogs"
string2 = "brown doggie"
假设我的字典中只存储了 string1,那么查找 string2 将返回 string1。
谢谢
【问题讨论】:
-
简而言之,你不能。哈希表是错误的工具。
-
那行不通,因为你描述的不是equivalence relation。
-
那么您是否要获取与给定键最相似的键的值?对吗?
-
@SLaks 我不知道这与等价关系有什么关系。
-
@freakish:哈希表的键比较(哈希函数)必须是等价关系。