python - 我需要一个函数,给定相似的输入返回相似的索引

标签 python hash indexing

所以我在研究哈希函数,发现给定 2 个相似的字符串,即使有一位不同,结果也将是一个完全不同的哈希键。我实际上需要创建某种唯一的 id,它具有对于相似输入非常相似的功能(将是数百万个字母数字字符串)。

示例:

  • 两个相等的字符串必须具有相同的哈希值。
  • 两个不同的字符串必须具有不同的哈希值。
  • 两个非常相似的不同字符串必须具有不同的哈希值,同时彼此相差不太远。

实现这一目标的好方法是什么?我正在使用Python。

最佳答案

你所要求的是不可能的,假设“相似散列”意味着这些值应该具有相似的大小 - 例如,12345 与 12346 相似,但与 92345 不同。这样做的原因是相似性该排序是一维的(数轴),但字符串彼此相似的方式没有固定的维度(例如,“foo”、“fob”和“fod”彼此之间的距离均为 1)。

如果您想执行模糊匹配,则需要使用不同的方法对文本进行索引,例如 thisthis .

如果您只想比较各个值的相似性,首先不要对它们进行散列 - 只需立即计算它们的编辑距离即可。

关于python - 我需要一个函数,给定相似的输入返回相似的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7733713/

相关文章:

python - Numpy 索引问题.....高级索引 X[0] 在这里做什么?

python - 类与参数化实例

python - 如何创建 pyserial 可以读取的虚拟串行?

python - 如何衡量 Python 的 asyncio 代码性能?

导航链表时无法访问指针

node.js - NodeJS在目录中递归散列文件

python - 为什么我无法导入我的 pip 列表中的库?

c# - 删除在数据库中存储为散列的组合框项目 C#

C++:写入/读取无效/超出绑定(bind)的数组索引?

HTML 敏捷包创建新的 HTMLNode