如何设置 ruby murmur 哈希的种子值
有没有办法设置使用 ruby 哈希函数的种子值(即 1.9 中的 murmur 哈希,不知道 JRuby?),以便我每次运行脚本时都可以获得相同的哈希代码(即在多个并行上)进程或在不同的节点上),
这样就
可以将“这是一个测试”。
每当我运行这个时,今天、明天、三周后等,hash 都是相同的
我想这样做,这样我就可以并行实现 MinHash
我可以看到在murmur_hash gem 表示 murmur 哈希接受种子,因此我假设每当我选择相同的种子时,我都可以设置种子并确定性地获取哈希代码
Is there a way to set the seed value for using the ruby hash function (i.e. murmur hash in 1.9, don't know JRuby?) so that I can get the same hash code every time I run the script (i.e. in parallel on multiple processes or on different nodes)
so that
puts "this is a test".hash
is the same whenever I run this , today, tomorrow, 3 weeks from now, etc
I want to do this so I can implement MinHash in parallel
I can see in the murmur_hash gem that the murmur hash accept a seed so I assume I can set the seed and get the hash code deterministically whenever I choose the same seed
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试这个种子 0xbc9f1d34,来自 jeff Dean 的 LevelDB 源代码,:)
try this seed 0xbc9f1d34, from jeff dean's LevelDB source code, :)
如果有人想知道,请恢复此内容...
您可以使用
murmurhash3
gem 位于此处。您可以覆盖
String
类中内置的哈希函数。不,您可以在任何字符串上使用此哈希函数。
假设您使用相同的种子
12345678
,那么您应该在任何服务器、进程、线程上重复获得相同的哈希值。并行中的 MurmurHash
您可以
parallel
gem 位于此处然后只需传递项目列表你想并行执行/散列。
如果您不喜欢使用另一个 gem 并行执行哈希,那么这里有一个使用 vanilla Ruby 的示例来帮助您。
http://taw.blogspot.com/2010/05 /very-simple-parallelization-with-ruby.html
Reviving this if anyones wants to know...
You can use the
murmurhash3
gem located here.You can override the hash function built into
String
class.No you can use this hash function on any string.
Assuming you use the same seed
12345678
, then you should repeatedly get the same hash on any server, process, thread.MurmurHash in Parallel
You can
parallel
gem located hereThen simply pass the list of items you want to be executed/hashed in parallel.
If you not into using another gem to execute the hashes in parallel, then here is an example to use vanilla Ruby to get you going.
http://t-a-w.blogspot.com/2010/05/very-simple-parallelization-with-ruby.html