了解NearPy,进行快速最近邻搜索

NearPy是一个Python框架,专注于高维向量空间的(近似)最近邻搜索。它利用局部敏感哈希(LSH)方法实现快速搜索。文章介绍了NearPy的工作原理、Engine配置、哈希策略以及如何使用Redis存储。通过实例展示了如何存储和检索向量,同时支持密集和稀疏向量。
摘要由CSDN通过智能技术生成

NearPy是一个Python框架,用于使用不同的局部敏感散列方法在高维向量空间中进行快速(近似)最近邻搜索。
你可以使用NearPy去进行试验和评估新的(研究)方法,但也可以直接用于实际应用。NearPy配有一个redis存储适配器。
要安装它,只需执行 pip install NearPy。它还将安装scipy,numpy和redis。
现在支持密集和稀疏(scipy.sparse)向量。
点击此处了解更多信息:http://pixelogik.github.io/NearPy/

(文中向量和矢量是同一个意思,都翻译于vector)

原理

为了找到查询向量的近似最近邻居,首先索引要存储的向量。对于应该被索引(’存储’)的每个向量,生成散列,即字符串值。该散列用作存储向量的后备数据单元的键。在大多数情况下,后备数据单元只是一个系列的向量,后备数据单元是在这种应用下使用的术语。
这样生成的后备数据单元(bucket)的键(即向量散列值)对于查找查询向量的最近邻居没有任何用处。因此,NearPy实现近似最近邻算法的机制的“秘密”是使用所谓的一些局部敏感哈希函数—LSH。这些局部敏感哈希函数考虑了空间性,因此它们倾向于为近似向量生成相同的散列值(后备数据的键)。这使得在给定查询向量的情况下获得接近向量的速度非常快。因为这是一种非常粗略的方法,所以它被称为近似最近邻搜索,因为您可能无法获得真正的最近邻居。在许多应用程序中这是很好的一种折中方式,因为你只想得到20个“足够相等”的向量。

Engine — 发动机

使用NearPy时,您将主要通过配置和使用Engine对象来完成此操作。Engines是可配置的管道,用于使用局部敏感哈希(LSH)进行近似最近邻搜索(ANNS)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值