问题标签 [annoy]

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 投票
1 回答
298 浏览

python - 查询半径 r 内所有点的“Annoy”索引

我可以使用 spotify 的“Annoy”包来查询半径 r 内的点吗

我在他们的 github 页面上的实现中找不到任何相关的函数调用。

我已经使用 Kd-tree 使用查询球点来解决此类问题。但是由于 annoy 更快而且我必须查询数十亿个点,我想知道是否可以使用这个包

0 投票
1 回答
808 浏览

python - 了解 gensim.similarities.index 中 AnnoyIndexer 的 most_similar 方法

所以我做了一个 AnnoyIndexer 并运行了一些 most_similar 查询以在 300 维向量空间中找到一些向量的最近邻居。这是它的代码:

我想知道为什么返回的距离值都取自 1 然后除以 2?当然,在这样做之后,最大/最小距离都搞砸了吗?

0 投票
1 回答
448 浏览

nearest-neighbor - 文档相似度搜索 - annoy & pysparNN

我正在尝试找到一种解决方案来查找最近或近似最近的文档邻居。

现在我使用 tfidf 作为文档的矢量表示。我的数据非常大(N ~ 百万)。如果我对 tfidf 使用 annoy,我的内存就会用完。我认为这是因为 tfidf 的高维度(我的词汇量约为 2000000 个中文单词)。

然后我用 pysparNN 试了一下,效果很好。然而,我担心的是随着我的数据大小的增长,pysparNN 会构建一个更大的索引,最终它可能不适合 RAM。这是一个问题,因为 pysparNN 不像 annoy 那样使用静态文件。

我想知道寻找文本数据最近邻居的好解决方案是什么。现在我正在研究使用 gensim 的烦恼指数和 doc2ve

0 投票
1 回答
545 浏览

gcc - 错误:命令“gcc”失败,退出状态为 1 致命错误:找不到“向量”文件

我运行 pip install annoy 并收到以下错误:

通过阅读其他 stackoverflow 答案,我应该使用 g++ 而不是 gcc 进行编译?我怎么做?

0 投票
1 回答
1744 浏览

linux - 在 Annoy 库中使用 mmap() 在 Docker 容器之间共享 RAM

我正在使用使用mmap()将一些多 Gb 文件加载到 RAM 内存中的Annoy 库。使用 mmap() 的目的是在内存中只加载一次文件,即使在不同的进程需要它时也是如此。

使用 docker,我计划使用在同一主机上执行相同脚本的多个容器进行扩展。但是多 Gb 文件应该只在 RAM 中加载一次(这就是我们使用 mmap() 的原因),否则我的服务器会爆炸。

多 Gb 文件位于安装在我的容器上的卷中。

但是我仍然需要找到一种在容器之间共享 RAM 的方法,以便获得 mmap() 的优势。

我找到了这篇关于在docker中使用--ipc标签的文章,但我不知道它是否适用于我的案例以及如何实现它。欢迎任何帮助。

0 投票
1 回答
359 浏览

nlp - 使用带 Torchtext 的 annoy 进行最近邻搜索

我将 Torchtext 用于一些 NLP 任务,特别是使用内置嵌入。

我希望能够进行逆向量搜索:生成噪声向量,找到最接近它的向量,然后取回最接近噪声向量的单词。

torchtext docs,这里是如何将嵌入附加到内置数据集:

然后我们可以建立烦恼指数:

然后说我想使用嘈杂的向量检索一个单词:

我的问题来自上面的最后两行: Theann_index是使用对象构建enumerateembedding,它是一个 Torch 张量。

[vocab][2]对象有自己的itos列表,给定索引返回一个单词。

我的问题是:我可以确定单词出现在 itos 列表中的顺序与 in 中的顺序相同TEXT.vocab.vectors吗?如何将一个索引映射到另一个索引?

0 投票
0 回答
773 浏览

python - 如何使用 Annoy 或其他类似算法将 spacy 向量(词嵌入)聚类成组

我有一个单词列表,我使用 spacy 的预训练模型en_core_web_lg获得了向量嵌入。

我的问题有两个

这些词向量可以输入到 Annoy like 算法中吗?我可以说 20 个组,每个组包含大约 100 个单词吗?

我将不胜感激任何资源/代码。

0 投票
0 回答
127 浏览

python - 如何通过 doc2vec 嵌入降低聚类的时间复杂度?

作为 doc2vec 嵌入的一部分,我有一堆 300 维的向量。每个向量都是一篇文章的表示。我的目标是丢弃重复的文章。我正在考虑在我的数据集上运行DBSCAN聚类,然后对于每个聚类标签,丢弃重复项。我选择 DBSCAN 是因为它是分层的,它可以将余弦距离作为度量,我认为这比欧几里德距离更适合文档相似性检测。

问题是,如果我选择余弦距离,那么 sklearn DBSCAN 实现不允许 'ball_tree' 和 'kd_tree' 作为算法,因此我留下了 'brute',我猜它有 O(n^2)对所有向量运行时的复杂性。

如果我不走集群路线,那么我会看到两个选项。most_similar使用vanilla doc2vec 或通过 annoy index的方法计算所有向量的相似度。根据这个doc vanilla doc2vec 具有相似性查询的线性复杂度,而 annoy 给出亚线性时间复杂度。我想知道,根据我的用例,哪一个是最佳选择?我错过了更好的方法吗?

0 投票
0 回答
1273 浏览

installation - 使用 pip 安装 annoy 时如何解决错误?

我的系统上有 python 3.8。

我正在尝试使用 pip install annoy 安装 Annoy。

但我收到以下错误:

我怎样才能摆脱这个错误?我试图在网上查看多个相关错误,但似乎没有任何帮助。

0 投票
0 回答
218 浏览

python - 使用 pip install package_name 时如何解决“退出状态 1:python setup.py egg_info”错误?

我无法在我的使用环境中使用scann, lshash, annoyetc安装任何软件包。令人惊讶的是,当我使用 时,它已安装。我收到错误消息:pip installWindows 10condapip install autocorrect

错误:命令出错,退出状态为 1:命令:'c:\users\admin\anaconda3\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\admin\AppData\Local\Temp\pip-install-btjh444k\lshash_e1892c63618846ad8854e50ef0d165c7\setup.py'"'"'; file ='"'"'C:\Users\admin\AppData\Local\Temp\pip-install-btjh444k\lshash_e1892c63618846ad8854e50ef0d165c7\setup.py'"'"';f=getattr(tokenize, '"'"'open' "'"', open)( file );code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"'); f.close();, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\admin\AppData\Local\Temp\pip-pip-egg-info-n1j15tcy' cwd: C:\ Users\admin\AppData\Local\Temp\pip-install-btjh444k\lshash_e1892c63618846ad8854e50ef0d165c7\ 完整输出(7 行): Traceback(最近一次调用最后一次):文件“”,第 1 行,在文件“C:\Users\admin\AppData\Local\Temp\pip-install-btjh444k\lshash_e1892c63618846ad8854e50ef0d165c7\setup.py”,第 3 行,在导入 lshash 文件“C:\Users\admin\AppData\Local\Temp\pip-install-btjh444k \lshash_e1892c63618846ad8854e50ef0d165c7\lshash_init _.py",第 12 行,从 lshash import LSHash ImportError: cannot import name 'LSHash' from partial initialized module 'lshash'(很可能是由于循环导入)(C:\Users\admin\AppData\Local\临时\pip-install-btjh444k\lshash_e1892c63618846ad8854e50ef0d165c7\ lshash_init_.py) ---------------------------------------- 错误:命令出错退出状态 1:python setup.py egg_info 检查日志以获得完整的命令输出

我也安装了Visual C++ Redistributable for Visual Studio 2015。我在用Windows 10