网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Python中怎么利用Faiss库实现向量近邻搜索

Python中怎么利用Faiss库实现向量近邻搜索,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比宁城网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式宁城网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖宁城地区。费用合理售后完善,10余年实体公司更值得信赖。

1、读取预训练好的Embedding数据

import pandas as pdimport numpy as np
df = pd.read_csv("./datas/movielens_sparkals_item_embedding.csv")
# 提取要使用的电影ID列表,注意要转换成int64ids = df["id"].values.astype(np.int64)
# 记录ID列表的大小ids_size = ids.shape[0]
# 读取内容embedding数据,转换成二维arrayimport jsonimport numpy as npdatas = []for x in df["features"]:    datas.append(json.loads(x))# 变成二维arraydatas = np.array(datas).astype(np.float32)
# 记录数据维度dimension = datas.shape[1]

2、使用faiss建立索引

import faiss
index = faiss.IndexFlatL2(dimension)index2 = faiss.IndexIDMap(index)
index2.add_with_ids(datas, ids)

3、实现近邻搜索

# 读取user embedding数据df_user = pd.read_csv("./datas/user_embedding.csv")df_user.head()
# 挑选一条user的embedding,转换成1行N列的二维arrayuser_embedding = np.array(json.loads(df_user[df_user["id"] == 10]["features"].iloc[0]))user_embedding = np.expand_dims(user_embedding, axis=0).astype(np.float32)user_embedding
# 实现搜索,这里的I就是近邻ID列表tok = 30D, I = index.search(user_embedding, topk)     # actual search

4、拼接得到内容列表

# 把搜索出来的ID变成Seriestarget_ids = pd.Series(I[0], name="MovieID")
# 读取电影数据df_movie = pd.read_csv("./datas/ml-1m/movies.dat",                     sep="::", header=None, engine="python",                     names = "MovieID::Title::Genres".split("::"))# 实现内容JOINdf_result = pd.merge(target_ids, df_movie)

看完上述内容,你们掌握Python中怎么利用Faiss库实现向量近邻搜索的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


当前文章:Python中怎么利用Faiss库实现向量近邻搜索
分享地址:http://bjjierui.cn/article/geegdh.html

其他资讯