一种具有持久性支持的局部敏感哈希的快速python实现。

lshash的Python项目详细描述


Version:0.0.4dev

具有持久性的局部敏感哈希的快速python实现 支持。

亮点

  • 通过使用numpy数组对大量高维数据进行快速哈希计算。
  • 内置支持通过redis的持久性。
  • 支持多个哈希索引。
  • 内置支持通用距离/目标函数,用于对输出进行排序。

安装

LSHash取决于以下库:

  • 努比
  • redis(如果需要通过redis进行持久化)
  • 位数组(如果使用汉明距离作为距离函数)

要安装:

$ pip install lshash

快速启动

为8维输入数据创建6位散列:

>>>fromlshashimportLSHash>>>lsh=LSHash(6,8)>>>lsh.index([1,2,3,4,5,6,7,8])>>>lsh.index([2,3,4,5,6,7,8,9])>>>lsh.index([10,12,99,1,5,31,2,3])>>>lsh.query([1,2,3,4,5,6,7,7])[((1,2,3,4,5,6,7,8),1.0),((2,3,4,5,6,7,8,9),11)]

主界面

  • 初始化LSHash实例:
LSHash(hash_size,input_dim,num_of_hashtables=1,storage=None,matrices_filename=None,overwrite=False)

参数:

hash_size
生成的二进制哈希的长度。
input_dim
输入向量的维数。
num_hashtables = 1
(可选)用于多个查找的哈希表数。
storage = None
(可选)指定要用于索引的存储的名称 储藏室。选项包括“redis”。
matrices_filename = None
(可选)指定存储随机矩阵的.npz文件的路径 或者如果文件不存在,则将被存储
overwrite = False
<(可选)是否已经覆盖矩阵文件,如果它已经存在的话
  • 索引给定LSHash实例的数据点,例如lsh
lsh.index(input_point,extra_data=None):

参数:

input_point
输入数据点是输入维数的数组或元组。
extra_data = None
(可选)要与输入点一起添加的额外数据。
  • 根据给定的LSHash实例查询数据点,例如lsh
lsh.query(query_point,num_results=None,distance_func="euclidean"):

参数:

query_point
查询数据点是输入维数的数组或元组。
num_results = None
(可选)按排序顺序返回的查询结果数。由 默认情况下,将返回所有结果。
distance_func = "euclidean"
(可选)用于对候选人进行排名的距离函数。默认情况下 将使用欧氏距离函数。

V0.0.320012/28–文档修复。 V0.0.22012/12/28–文档修复和小写包名称。 V0.0.12012/20–初次发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在安卓活动上使用uncaughtException对话框   将代数象棋符号转换为棋盘布局或FEN符号的java算法   来自证书的java访问证书签名   正则表达式解析Java字符串特殊字符错误   java将linearlayout动态添加到Relativelayout中   java我怎样才能在ant中不停顿地“失败”构建?   从Java producer到Mongodb的json主题数据   java Log4J 2 Syslog Appender工作不正常   java在Processing 3中在3D对象上绘制2D文本   java Spring MVC Web服务调度程序   mysql Java持久性查找区分大小写的数据检索   java YAML解析器不带密钥的多个根文件   SpringJavaBean需要通过prototype作用域使用相同的对象   由于某种原因,应用程序运行时不会显示java xml文件   java maven在JFrog artifactory(snapshotrepo)中找不到具有第三方libs的jar文件