一种具有持久性支持的局部敏感哈希的快速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我想读取一个带分隔符的或csv文件,并将相应的值保存在postgres DB中   java ANT在解压任务期间连接文件   java Log4j在一行中打印嵌套异常   解压缩HTTPInputStream时,java GZIPInputStream过早关闭   java如何在GWTExt的GridPanel中的标题下放置子标题?   java词典快速排序   dll管理JAVA中的非托管代码?   java无法通过我的Springboot Servlet应用程序使用SAAJ从SOAP消息获取附件   用Java更新MySQL表   java Json格式错误,当他已经得到一个数组时请求数组   Spring数据REST中资源所有权对java的限制   java Vaadin布局扩展   java使用jsoup获取元素外部但元素旁边的文本   java使用javax从GMail获取消息的UID。用IMAP发送邮件   Java中数字到单词的转换模块   java如何减少拨号表中的字体大小   java垃圾值>��� 在springmvc中对swaggerui(io.swagger)的描述中,如何删除它?