千家信息网

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

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,Python中怎么利用Faiss库实现向量近邻搜索,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、读取预训练好的Embedding数据
千家信息网最后更新 2025年01月31日Python中怎么利用Faiss库实现向量近邻搜索

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

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库实现向量近邻搜索的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

搜索 内容 数据 近邻 二维 向量 方法 更多 电影 问题 束手无策 为此 原因 大小 对此 就是 技能 篇文章 索引 经验 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全论文1500字英文版 ps5哪个服务器比较便宜 用python软件开发 合肥软通动力软件开发C sql 数据库 顺序排列 网络安全主题班会反思 惠普服务器磁盘设置 漳州软件开发笃行网络 杭州首创网络技术有限公司 在数据库技术中反映班级 网络安全技术方面的书籍 网络技术发展阶段是什么 亳州招聘软件开发人员 市委网信办公室网络安全防线 如何确定无线网络安全 软件开发企业怎么进行会计核算 数据库如何存放压缩文件 服务器时间条的很快 魔兽世界 刀片服务器 东莞市民传授网络安全 dns服务器配置外部域名 廊坊方舟网络技术有限公司 计算机网络技术专业情况评估 杨浦区软件开发技术服务公司 MGI数据库导出基因 网站360网络安全研究员 西安软件开发好找工作吗 数据库每个字段名都是什么意思 阿里云xshell数据库 阿里云服务器怎么设置默认配置
0