通过embeddings轻松实现搜索功能

前言

随着人工智能和深度学习的进步,智能模型嵌入(embeddings)的引入使得搜索引擎能够通过计算空间维度来发现更为相似的对象。这种方法不仅提升了搜索结果的精确度和个性化程度,还为搜索引擎的进一步优化和创新提供了新的可能性。

embeddings

在计算机科学和机器学习领域,"embeddings"(嵌入)通常指的是将高维空间中的对象(如文本、图像、音频等)映射到低维空间的向量表示。这种向量表示能够捕捉对象的语义和特征,使得它们可以更有效地被计算机处理和理解。具体来说,嵌入是指将对象映射到一个连续的向量空间中,使得相似的对象在这个空间中距离较近。

使用embeddings将文本转换为语义向量

step1:导入所需包

首先,你需要导入必要的Python包。在这个例子中,openai用于与OpenAI的API交互,而.env或dotenv用于读取环境变量,这通常用来存储敏感信息如API密钥。

step2:创建OpenAI客户端对象

创建一个连接到OpenAI API的客户端,使得你可以使用该客户端来进行与OpenAI API相关的操作。

step3:调用embeddings接口

通过指定的OpenAI文本嵌入模型,将"如何创建vue组件"这个问题转换为一个向量化的表示,以便后续进行语义相似性比较、文本聚类。

向量化结果:

搜索匹配实现

通过上述操作,一旦数据库中的文档或项目被编码为向量形式并存储于数据库内,当用户发起查询时,其输入的查询文本同样会经过相同的向量化过程,转化为对应的语义向量。随后,系统会对查询向量与数据库中存储的所有向量进行相似度计算,以识别那些在语义上最接近查询意图的条目。

相似度计算常用的方法之一是余弦相似度(cosine similarity),这是一种衡量两个非零向量之间的角度余弦值的度量方式。余弦相似度能够有效地反映两个向量在高维空间中的方向相似性,而不受它们的模长影响,因此非常适合于文本相似性分析。

具体步骤如下:

  1. 向量化:使用预训练的语言模型或专门设计的嵌入算法将文本转化为向量表示。

  2. 存储:将所有文本的向量表示存储在数据库中,优化存储结构以提高检索效率。

  3. 查询向量化:对用户的查询文本进行同样的向量化处理。

  4. 相似度计算:通过计算查询向量与数据库中每个向量的余弦相似度,找到最接近的匹配项。

  5. 排序与输出:根据相似度得分对结果进行排序,并返回得分最高的若干条目作为推荐结果。

demo实例

准备的数据

将这个JSON文件中的数据(每个帖子(post)的标题和分类进行文本嵌入),并将带有嵌入向量的帖子信息保存至另一个文件中,便于后续计算查询向量与数据库中每个向量的余弦相似度。

根据搜索文本 "vue组件开发",找出与其语义最接近的帖子,并按照相似度高低输出相关的帖子标题和分类信息。

结果输出:

最后

最后,我们轻松实现了一个搜索推荐功能,这一机制不仅提升了信息检索的精度和效率,还能够支持基于内容的推荐系统,为用户提供个性化且语义相关的信息或产品建议。

相关推荐
爱敲代码的小黄36 分钟前
神经网络入门指南:从 CNN、RNN 到 Attention
人工智能·面试·程序员
一只爱撸猫的程序猿1 小时前
我看着一个 AI 引擎在 14 天里,从"记忆"走进了"搜索"
人工智能·后端·架构
我登哥MVP2 小时前
DeepSeek-Harness-Super-Agent-学习笔记
人工智能·深度学习·神经网络·机器学习·自然语言处理·agent
LucianaiB2 小时前
【元宝搜索开发者征文大赛】AI时代,学得慢就不用学?用元宝搜索打造一个教程保质期,确保每一个教程符合你的现状
前端·人工智能·ai编程
冬奇Lab4 小时前
一天一个开源项目(第256篇):Anatomy —— 让 Claude 为技术概念「发明一台机器」,画成可交互的等距插画
人工智能·开源
孟郎郎4 小时前
打造一切(Craft Anything)——克隆构造世间万物
人工智能·ai·github·软件构建·开源软件
Martina_03214 小时前
AI生成3D场景的霓虹灯一开就糊成光团?用6步检查Emissive、Bloom与曝光
人工智能·3d·ai·自然语言处理·游戏引擎·材质·贴图
master3364 小时前
AI领域常用名词的系统梳理
人工智能·ai
Spidermanbaout4 小时前
Prompt-Engineering实战-2026年11月2日
人工智能·机器学习·ai·chatgpt·ai编程