试图通过示例 python 代码来理解 LSH
trying to understand LSH through the sample python code
我学习的简洁 python 代码是 here
问题 A @ 第 8 行
为了"get_signature"
,我不太理解“res = res << 1”的语法含义
问题 B @ 第 49 行(由我自己通过另一个 Q&A 解决)
"xor = r1^r2" 对我来说没有任何意义,作者后来尝试了 "(d-nna(vor)) ”计算"hash_sim"——(参考第50行)
问题 C @ 关于 hash_sim 一般
这个问题更多是关于LSH的理解,示例代码中的变量“d”(第38行)在做什么----后面用来计算hash_sim 第 50
行
问题 D @ 第 20 和 24 行 -- "&" 的语法
不仅在理解语法“num = num & (num-1)”时遇到问题,而且不确定 "nnz" 在上下文中正在做什么hash_sim 的差异性。当作者将 "xor" 应用到“nnz”时,这个问题可能与我的问题 (-b-) 有关,并且再次等式为“xor"(问题 b)对我来说很奇怪。
p.s.
我对 python 和 LSH 的理解都处于初级水平,我有点陷入了这个问题的循环中。感谢您花时间解决我的困惑以及代码
一个。这是左移:https://docs.python.org/2/reference/expressions.html#shifting-operations 它将位向左移动一位。
b。请注意,^
不是 "to the power of",而是 Python 中的 "bitwise XOR"。
c。正如评论所述:它将 "number of bits per signature" 定义为 2**10
→ 1024
d。这些行计算 num
和 num + 1
的按位与。
该函数的用途记录在上面的评论中:
“# 获取二进制中‘1’的个数”
我学习的简洁 python 代码是 here
问题 A @ 第 8 行
为了"get_signature"
,我不太理解“res = res << 1”的语法含义问题 B @ 第 49 行(由我自己通过另一个 Q&A 解决)
"xor = r1^r2" 对我来说没有任何意义,作者后来尝试了 "(d-nna(vor)) ”计算"hash_sim"——(参考第50行)
问题 C @ 关于 hash_sim 一般
这个问题更多是关于LSH的理解,示例代码中的变量“d”(第38行)在做什么----后面用来计算hash_sim 第 50
行问题 D @ 第 20 和 24 行 -- "&" 的语法
不仅在理解语法“num = num & (num-1)”时遇到问题,而且不确定 "nnz" 在上下文中正在做什么hash_sim 的差异性。当作者将 "xor" 应用到“nnz”时,这个问题可能与我的问题 (-b-) 有关,并且再次等式为“xor"(问题 b)对我来说很奇怪。
p.s.
我对 python 和 LSH 的理解都处于初级水平,我有点陷入了这个问题的循环中。感谢您花时间解决我的困惑以及代码
一个。这是左移:https://docs.python.org/2/reference/expressions.html#shifting-operations 它将位向左移动一位。
b。请注意,^
不是 "to the power of",而是 Python 中的 "bitwise XOR"。
c。正如评论所述:它将 "number of bits per signature" 定义为 2**10
→ 1024
d。这些行计算 num
和 num + 1
的按位与。
该函数的用途记录在上面的评论中:
“# 获取二进制中‘1’的个数”