问题标签 [lsh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
123 浏览

apache-spark - 用于 minhashLSH 的 Pyspark 预处理(Jaccard 相似度)

我正在使用 spark 创建一个数据集,以使用 pyspark.ml 中的 minhashLSH 算法。

我有一张这样的桌子:

基本上,我的目标是创建一个这样的表:

...等等。

基本上,我想将值放在行上,将用户放在列上。每个特征都有不同的唯一值。

如果用户 1 在特征 1 中有 value_1_1,则取值为 1,否则为 0。如果用户 2 在特征 2 中有 value_2_1,则取值为 1,否则为 0

... 等等。

我这样做基本上是因为我想在 pyspark 中使用 minhashLSH 算法计算 jaccard 相似度。

有什么建议吗?

谢谢,祝你有美好的一天!

PS 以上数值只是一个例子!!!这不是我现在的 DF

0 投票
0 回答
59 浏览

python - MinHash LSH - 如何在 PySpark 中计算输出列?

我已经阅读了很多关于 MinHash LSH 的实现,但我不明白输出结果。

例如,在这里,为什么所有的值都是负数?怎么可能?它是如何计算的?

使用 MinHashLSH 的结果示例

https://databricks.com/fr/blog/2017/05/09/detecting-abuse-scale-locality-sensitive-hashing-uber-engineering.html

在我的程序中,我只有一个 100 行的表和另一个 200 行的表,在 RegexTokenizer 和 NGram(n=3) 之后,MinHashLSH 输出列充满了 -2580000000、-1808000058 等值。

另一个例子 :

提前致谢!

0 投票
1 回答
77 浏览

elasticsearch - 如何选择 Elastiknn LSH Jaccard 相似性指标参数 L 和 k ?在我的情况下,我的 minhash 大小 = 100,并且 jaccard Similarity = 0.8

我正在尝试使用 Elasticknn 插件检测近乎重复的内容。

我创建了文本文档的 minhash,Minhash 设置大小 = 100

我想使用 Elasticknn 插件应用具有 Jaccard 相似性的 LSH(因为它有这种类型的索引可用,)

根据我对 LSH、Minhash 重复检测算法的了解,根据所需的 jaccard 相似度级别(比如 0.8),我们必须选择

  1. 桶数b
  2. 桶大小r

Elastiknn 提供了一些不同的参数 https://elastiknn.com/api/#jaccard-lsh-mapping

  1. L - 哈希表的数量。一般来说,增加这个值会增加召回率。
  2. k - 组合成单个散列值的散列函数的数量

我不确定Lk是否实际上是br

谁能解释如何从 Elastiknn 调整 L 和 k 以获得所需级别的 jaccard 类似文档的最大准确性?

0 投票
0 回答
25 浏览

python-3.x - 为字符串赋予十六进制颜色,以便与另一个字符串相似的字符串将获得相似的颜色

我有一个多个字符串的列表,我想为每个字符串获取一个十六进制颜色(如哈希),以便相似的字符串得到相似的颜色。

例子:

  • “读取寄存器 1”-> #242fff
  • “读取寄存器 2”-> #242fa5
  • “打印你好”->#990000
  • “读取 reg 2”-> #245fb0
  • “打印你好世界”-> #990033

(我将用它为 excel 行着色,所以 HSV 不适合这个问题......)

有什么想法吗?

谢谢!

0 投票
0 回答
97 浏览

python - 局部敏感散列 (LSH) 词嵌入

我试图理解这篇论文,但我真的在努力完成一些步骤。
我添加了一些让我感到困惑的片段,但整个代码都可以在这里找到

基本上,第一步是计算一个共现矩阵和一个稀有词列表,我对此很好。

然后我们需要一个 NN 列表和一个 NN 矩阵作为自动编码器的输入,并获得我们使用 LSH 的那些。

在这里,据我了解,我们正在为输入数据创建一个 hashsize-bit 哈希,然后我们正在为 co-occ 矩阵的每个值计算一个索引向量。

然后我们正在创建 NN 列表和矩阵:

这段代码有两点我不明白:首先,查询所有罕见词的每个共现值是什么意思(lsh.query(cooc_matr[rarewords[i]], num_results=friends,distance_func='euclidean'))。
其次,我完全不知道这个循环的目的是什么:

以及为什么将 a 附加str(8)fri列表中。

如果您能帮助我理解,我将不胜感激。如果你觉得我的问题很愚蠢,我很抱歉,但我只是这件事的初学者。

0 投票
0 回答
5 浏览

hash - 是否有任何散列函数可以为几乎相似的输入生成相同的结果?

我想实现一个问题解决方案,该解决方案需要一个散列函数,该函数为相似的输入返回相同的输出。输入将是一些代码,我希望散列函数忽略变量名称等。

如果没有这样的散列函数可用,那么我如何使用其他散列算法来实现它。请问有什么建议吗?

0 投票
0 回答
16 浏览

python - 每次执行后最小哈希向量相似度都在变化

我正在实施 min-hash 来比较两个文本文档。我为两个文档创建了长度为 128 的向量,但由于随机数,每次重新执行代码时,我都会得到不同的 Jaccard 相似性。那么我怎样才能每次都得到相同的 Jaccard 相似度呢?是的,我不能使用种子来重现随机数。

我使用的 Minhash 公式是 h(x) = (a * val + b) % prime Random Hash Eq 系数 a 和 b 是随机选择的小于 x 最大值的整数。c 是一个比 x 的最大值稍大的素数。

0 投票
0 回答
13 浏览

python - 将 LSH 类更改为分类器

我想将 LSH 类更改为分类器,在该分类器中我可以使用 fit 方法和 predict 方法,以便在处理时间方面将其与其他最近邻方法进行比较。这是代码:

从副本导入副本从 itertools 导入组合导入 numpy 作为 np 从熊猫导入 DataFrame 从 sklearn.metrics.pairwise 导入 pairwise_distances

LSH 类:def init (self, data): self.data = data self.model = None

0 投票
0 回答
11 浏览

python - 如何使用 Hierarchical Navigable Small Worlds (HNSW) 和 LSH 数据分类

我想使用 Hierarchical Navigable Small Worlds (HNSW) 和 LSH 进行数据分类。我通过如下调整来使用 Annoy 算法: