python - 存储Minhash的结果

标签 python c list dictionary minhash

结果是固定数量的数组,比方说 中的列表(所有长度相同) .

也可以将其视为矩阵,因此在 中我会使用一个数组,其中每个单元格都指向另一个数组。如何用 Python 实现?

每个项目都是列表或其他东西的列表?

我想到了字典,但键很简单,1、2、...、M,所以我不确定这是否是 pythonic 的方式。

我对实现不感兴趣,我感兴趣的是我应该遵循哪种方法,我应该做出哪种选择!

最佳答案

无论您选择什么容器,它都应该包含 hash-itemID 对,并且应该按 hash 进行索引或排序。未排序的数组不会非常有效。

假设您正在使用大小适中的散列并且您的各种散列算法得到了很好的实现,您应该能够同样有效地将所有最小哈希存储在一个容器中,因为来自一个算法的最小哈希和来自另一个的 minhash 可以忽略不计,如果发生任何此类冲突,它不会显着改变相似性度量。

使用单个容器而不是多个容器可以减少索引的内存开销,但它也会稍微增加所需的处理量。由于内存通常是 minhash 的限制因素,因此单个容器可能更可取。

关于python - 存储Minhash的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37062078/

相关文章:

python - 在 django 模板中格式化数字

c - 管道行为不稳定,对实现没有信心

mysql - R:ifelse 中的字符串列表

c# - "Expression cannot contain lambda expressions"- 异常

python - Django - 将模型字段复制到另一个字段

python - 什么时候不应该在 Python 中使用 self 约定?

c - 两遍 C 预处理?

java - 如何从列表中删除弱引用?

python - 使用Python从USB获取数据

Malloc 的 C 替代方案