HNSW相似最近邻
1.安装
pip install hnswlib -i https://pypi.douban.com/simple/
2.HNSW使用及说明
def annsearch(data, data_labels):
"""利用HNSW进行近似最近邻搜索
Arg:
data (:list), 待比对向量列表
data_labels (:list), 检索库向量列表
Return:
labels: 相似向量索引
distances: 相似评分
"""
data1 = np.array(data, dtype=np.float)
data_labels1 = np.array(data_labels, dtype=np.float)
embed_len, embed_dim = data_labels1.shape
raw_labels = np.arange(embed_len)
ann = hnswlib.Index(space='l2', dim=embed_dim)
ann.init_index(max_elements=embed_len, ef_construction=200, M=16)
ann.add_items(data_labels1, raw_labels)
ann.set_ef(100)
labels, distances = ann.knn_query(data1, k=1)
return labels, distances
3.hnswlib的Github地址
https://github.com/nmslib/hnswlib