Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 好的散列算法,接近原始文本输入,减少雪崩效应?_Python_Mysql_String Matching - Fatal编程技术网

Python 好的散列算法,接近原始文本输入,减少雪崩效应?

Python 好的散列算法,接近原始文本输入,减少雪崩效应?,python,mysql,string-matching,Python,Mysql,String Matching,我们需要在MySQL表中存储一个文本字段(比如说2000个字符)及其唯一的散列(比如SHA1)。 为了测试MySQL表中已经存在的文本,我们生成文本的SHA1,并查找它是否存在于唯一字段哈希中 现在让我们假设有两个文本: 这是将存储在数据库中的文本,并将生成其哈希 这是文本,将存储在数据库中并生成其哈希 注意细微的差别。 假设1已经被添加到数据库中,那么对2的检查将不起作用,因为它们的SHA1哈希值将完全不同 一个明显的解决方案是使用Leveinstein distance或difflib迭代所

我们需要在MySQL表中存储一个文本字段(比如说2000个字符)及其唯一的散列(比如SHA1)。 为了测试MySQL表中已经存在的文本,我们生成文本的SHA1,并查找它是否存在于唯一字段
哈希中

现在让我们假设有两个文本:

  • 这是将存储在数据库中的文本,并将生成其哈希
  • 这是文本,将存储在数据库中并生成其哈希
  • 注意细微的差别。

    假设1已经被添加到数据库中,那么对2的检查将不起作用,因为它们的SHA1哈希值将完全不同

    一个明显的解决方案是使用Leveinstein distance或difflib迭代所有已添加的文本字段,以从MySQL表中精细匹配

    但这不是以性能为导向的。 是否有一个与文本内容相关的好的散列算法?i、 e.为非常相似的文本生成的两个哈希值本身非常相似


    这样,在将可能的重复项添加到MySQL表中之前,可以更容易地检测它们。

    我非常怀疑您要查找的内容是否存在,因此我提出了一个更简单的解决方案:

    提出一个用于规范化文本的简单算法,例如:

    • 规范化空白
    • 删除标点符号

    然后,计算该散列并将其存储在单独的列(
    normalizedHash
    )中,或者将ID存储到一个规范化散列表中。然后,您可以通过标准化内容比较这两个不同的条目。

    我非常怀疑您要查找的内容是否存在,因此我提出了一个更简单的解决方案:

    提出一个用于规范化文本的简单算法,例如:

    • 规范化空白
    • 删除标点符号

    然后,计算该散列并将其存储在单独的列(
    normalizedHash
    )中,或者将ID存储到一个规范化散列表中。然后,您可以通过两个不同的条目的标准化内容来比较它们。

    听起来您在寻找对位置敏感的哈希。除此之外,在该站点上运行搜索以获取一些指针。

    听起来您正在寻找对位置敏感的哈希。除此之外,在该站点上运行搜索以获取一些指针