Tag: minhash

存储Minhash的结果

结果是固定数量的数组,比如python中的列表(所有长度相同)。 人们可以将它看作矩阵,所以在c中我会使用一个数组,其中每个单元格都指向另一个数组。 如何用Python做到这一点? 每个项目都是列表或其他内容的列表? 我想到了一本字典,但关键是微不足道的,1,2,……,M,所以我不确定这是否是这里的pythonic方式。 我对实施不感兴趣,我对我应该遵循哪种方法感兴趣,我应该选择哪种方式!

如何在Locality Sensitive Hashing(使用jaccard距离)中将向量哈希到桶中?

我正在实现一个近邻搜索应用程序,它将找到类似的文档。 到目前为止,我已经阅读了LSH相关材料的很大一部分(LSH背后的理论是某种令人困惑的,我还不能100%地对其进行比较)。 我的代码能够使用minhash函数计算签名矩阵(我接近结尾)。 我还在签名矩阵上应用了条带策略。 但是我无法理解如何将带中的签名向量(列)散列到桶中。 我的最后一个问题可能是最重要的问题,但我不得不问一些introduction问题: 问题1:哈希函数是否只将相同的向量映射到同一个桶? (假设我们有足够的水桶) 问题2:哈希函数是否应该将相似的向量映射到同一个桶? 如果是,那么这种相似性的程度/定义是什么,因为我不是在计算比较,而是在进行散列。 q3:根据上面的问题,我应该使用什么样的哈希表算法? 问题4:我认为我最弱的一点是我不知道如何生成一个哈希函数,它将向量作为输入并选择一个桶作为输出。 我可以根据q1和q2自己实现一个…有关为LSH bucketing生成哈希函数的任何建议吗?