去年做的电子请帖怎么找原网站网站怎么做前台跟后台的接口

张小明 2026/1/19 20:50:47
去年做的电子请帖怎么找原网站,网站怎么做前台跟后台的接口,儿童 摄影 wordpress 模板,建设局语义搜索技术#xff1a;AI原生应用的关键技术栈 关键词#xff1a;语义搜索、向量检索、AI原生应用、多模态融合、自然语言处理#xff08;NLP#xff09; 摘要#xff1a;在AI原生应用时代#xff0c;传统关键词匹配搜索已无法满足用户对“理解意图”的需求。本文将从“…语义搜索技术AI原生应用的关键技术栈关键词语义搜索、向量检索、AI原生应用、多模态融合、自然语言处理NLP摘要在AI原生应用时代传统关键词匹配搜索已无法满足用户对“理解意图”的需求。本文将从“为什么需要语义搜索”出发用“找书”“点奶茶”等生活案例拆解语义搜索的核心技术栈语义理解→向量表示→高效检索→多模态融合结合Python代码和数学公式详解BERT、Sentence-BERT、FAISS等关键技术最后通过电商商品推荐实战案例揭示语义搜索如何成为AI原生应用的“智能引擎”。背景介绍目的和范围本文旨在帮助开发者、产品经理及AI爱好者理解为什么语义搜索是AI原生应用的“基础设施”语义搜索的核心技术栈从语义理解到向量检索如何协同工作如何用Python快速实现一个基础语义搜索系统覆盖技术点包括自然语言处理NLP、向量空间模型、近似最近邻ANN算法等不涉及底层硬件或超大规模分布式系统细节。预期读者对AI技术感兴趣的非技术人员理解语义搜索的价值初级/中级开发者掌握核心技术原理与代码实现产品经理设计AI原生应用时的技术决策依据文档结构概述本文按“问题引入→核心概念→技术原理→实战案例→未来趋势”逻辑展开重点讲解语义搜索的“理解-表示-检索-融合”四大环节通过代码、公式和生活案例降低理解门槛。术语表核心术语定义语义搜索基于文本/内容的“真实含义”而非表面关键词匹配的搜索技术例用户搜“甜奶茶”系统能理解“甜”是核心需求而非仅匹配“甜”“奶茶”两个词。向量表示将文本/图像/语音转换为计算机可计算的数值向量类似给每个内容“拍一张数字照片”。近似最近邻ANN在海量向量中快速找到与目标向量最相似的方法类似在1000本书中快速找到“内容最接近”的那本。相关概念解释传统关键词搜索基于“字符串匹配”的搜索例用户搜“甜奶茶”系统只返回标题含“甜”和“奶茶”的结果可能漏掉“蜂蜜奶茶”。多模态同时处理文本、图像、语音等多种类型数据例用户上传一张蛋糕照片系统能搜出“巧克力味”“生日款”等文字描述的商品。核心概念与联系故事引入从“找书”看搜索的进化史假设你想找一本“教小朋友用积木搭机器人”的书1.0时代关键词搜索你输入“积木 机器人 小朋友”系统只返回标题或正文同时包含这三个词的书可能漏掉《儿童编程与积木搭建》关键词不匹配但内容相关。2.0时代语义搜索你输入“小朋友用积木学做机器人”系统能理解“小朋友”“积木”“机器人”“学习”是核心意图返回《儿童智能积木编程指南》标题无“学做”但内容高度相关。这就是语义搜索的魅力从“匹配文字”进化到“理解意图”。核心概念解释像给小学生讲故事一样核心概念一语义理解——让机器“听懂人话”语义理解就像“翻译官”把人类的自然语言比如“我想要一杯少糖的杨枝甘露”翻译成机器能“理解”的“含义”。生活类比妈妈让你去超市买“红苹果”你不会只找标签写“红苹果”的而是会挑颜色红、品种是苹果的理解“红”是颜色“苹果”是水果类型。语义理解就是让机器像你一样抓住“少糖”“杨枝甘露”这些核心信息而不是死记硬背“少糖”“杨枝甘露”这几个字。核心概念二向量表示——给内容“拍数字照片”向量表示是把文本、图像等内容转换成一串数字向量就像给每个内容“拍一张数字照片”机器通过比较这些“数字照片”的相似性判断内容是否相关。生活类比班级里每个同学有“身高、体重、年龄”三个数字向量机器通过比较这三个数字的相似性就能判断“小明和小红是不是体型相近”。文本向量同理只不过用更复杂的数字组合表示“含义”。核心概念三高效检索——在海量“数字照片”里快速找人高效检索是从海量向量数字照片中快速找到与目标向量最相似的那个。传统方法像在1000本书里逐本翻找高效检索则像给书贴“主题标签”按标签快速分类查找。生活类比图书馆有10万本书你想找“讲太空探险”的书。如果每本书都有一个“主题向量”比如用0-10分表示“太空”“探险”“科学”等维度机器可以通过计算你的需求向量比如“太空:8探险:9”和每本书的向量相似度瞬间找到最匹配的5本书。核心概念之间的关系用小学生能理解的比喻语义理解、向量表示、高效检索就像“快递三兄弟”语义理解大哥负责“读快递单”把用户需求“送一箱易碎的玻璃水杯”翻译成机器能处理的“任务说明”“易碎品、玻璃、水杯”。向量表示二哥负责“给快递贴编码”把每个快递商品、文章、图片的特征易碎性、材质、类型转换成一串数字向量方便机器存储和比较。高效检索三弟负责“快速找快递”在仓库海量向量库里根据用户需求的向量快速找到最匹配的快递内容。核心概念原理和架构的文本示意图语义搜索技术栈可概括为“理解→表示→检索→融合”四步用户查询 → 语义理解提取核心意图 → 向量表示转换为数值向量 → 高效检索在海量向量中找最相似 → 多模态融合结合图/文/声优化结果Mermaid 流程图用户输入查询语义理解模块生成查询向量候选内容库内容向量化模块构建向量数据库近似最近邻检索模块返回最相似内容核心算法原理 具体操作步骤第一步语义理解——用BERT模型“听懂人话”传统关键词搜索的痛点是“只认字不认意”比如“手机”和“移动电话”是同一个意思但关键词搜索会认为是两个不同的词。语义理解的核心是让机器“理解”词与词、句与句之间的语义关联这需要用到预训练语言模型如BERT。BERT的工作原理用“拆积木”比喻BERT就像一个“语言积木大师”它先通过大量文本比如维基百科、新闻学习“词语积木”的组合规则比如“苹果”可以指水果也可以指手机品牌具体含义由上下文决定。当输入一个句子如“我想买苹果手机”BERT会分析每个词“我”“想”“买”“苹果”“手机”的上下文关系最终输出一个能表示整句含义的向量。Python代码示例用Hugging Face库加载BERT模型fromtransformersimportBertTokenizer,BertModel# 加载预训练的BERT模型和分词器tokenizerBertTokenizer.from_pretrained(bert-base-uncased)modelBertModel.from_pretrained(bert-base-uncased)# 输入句子textI want to buy an apple phone# 分词并添加特殊标记[CLS]和[SEP]inputstokenizer(text,return_tensorspt,paddingTrue,truncationTrue)# 通过模型生成句向量[CLS]标记的输出表示整句含义outputsmodel(**inputs)sentence_vectoroutputs.last_hidden_state[:,0,:]# shape: [1, 768]768维向量第二步向量表示——用Sentence-BERT优化句向量BERT直接输出的句向量如上例中的768维向量在短文本如查询语句上效果可能不够好因为BERT主要设计用于“词级”或“篇章级”任务。Sentence-BERTSBERT是专门优化的句向量模型通过对比学习让相似句子的向量更接近不相似的更远离。SBERT的核心改进用“调颜料”比喻传统BERT生成的句向量像“随机调的颜色”可能两个相似句子的颜色向量差异很大。SBERT通过“对比学习”调整颜料向量参数让相似句子的颜色更接近向量余弦相似度更高不相似的颜色差异更大余弦相似度更低。Python代码示例用SBERT生成句向量fromsentence_transformersimportSentenceTransformer# 加载预训练的SBERT模型支持多语言效果更好modelSentenceTransformer(all-MiniLM-L6-v2)# 输入两个句子sentences[I want to buy a sweet milk tea,# 用户查询Honey lemon tea with less sugar# 候选商品描述]# 生成句向量每个句子对应一个384维向量embeddingsmodel.encode(sentences)print(f向量1形状{embeddings[0].shape})# 输出(384,)print(f向量2形状{embeddings[1].shape})# 输出(384,)第三步高效检索——用FAISS实现海量向量的快速查找假设我们有100万条商品描述每条对应一个384维向量。直接计算用户查询向量与所有100万条向量的相似度如余弦相似度需要约100万次计算耗时太长。这时候需要近似最近邻ANN算法其中最常用的是Facebook开源的FAISS。FAISS的核心原理用“分盒子”比喻FAISS把100万条向量“分进不同的盒子”聚类每个盒子里的向量相似度较高。当用户查询时FAISS先找到最接近的几个盒子再在盒子内部精确查找大大减少计算量。FAISS检索流程构建索引将所有候选向量存入FAISS索引类似给书分类上架。查询向量将用户查询转换为向量如用SBERT生成。近似检索在索引中快速找到最相似的k个向量如前5条。Python代码示例FAISS检索importfaissimportnumpyasnp# 假设我们有10万条候选向量384维num_vectors100000dimension384candidate_vectorsnp.random.rand(num_vectors,dimension).astype(float32)# 模拟数据# 构建FAISS索引使用Flat索引适合小数据大数据可用IVFFlat等indexfaiss.IndexFlatL2(dimension)# L2距离也可用余弦相似度index.add(candidate_vectors)# 向索引添加向量# 用户查询向量384维query_vectornp.random.rand(1,dimension).astype(float32)# 检索最相似的5条k5distances,indicesindex.search(query_vector,k)print(f最相似的5条索引{indices[0]})# 输出[123, 456, 789, ...]候选向量的下标print(f对应的距离越小越相似{distances[0]})# 输出[0.1, 0.2, 0.3, ...]数学模型和公式 详细讲解 举例说明向量相似度的数学基础余弦相似度向量相似度是语义搜索的核心指标常用余弦相似度计算两个向量的“方向相似性”不考虑长度。公式如下余弦相似度 ( A , B ) A ⋅ B ∥ A ∥ ∥ B ∥ \text{余弦相似度}(A, B) \frac{A \cdot B}{\|A\| \|B\|}余弦相似度(A,B)∥A∥∥B∥A⋅B​其中( A \cdot B ) 是向量点积对应位置相乘后求和。( |A| ) 和 ( |B| ) 是向量的L2范数长度。举例说明假设用户查询向量 ( A [2, 3] )候选商品向量 ( B [4, 6] )。点积 ( A \cdot B 2×4 3×6 8 18 26 )。( |A| \sqrt{2^2 3^2} \sqrt{13} ≈ 3.605 )。( |B| \sqrt{4^2 6^2} \sqrt{52} ≈ 7.211 )。余弦相似度 ( 26 / (3.605×7.211) ≈ 26 / 26 1 )因为B是A的2倍方向完全相同。近似最近邻ANN的数学目标ANN的目标是在海量向量中找到与查询向量 ( q ) 最接近的 ( k ) 个向量 ( v_i )使得∀ i ∈ [ 1 , k ] , ∥ q − v i ∥ ≤ ∥ q − v j ∥ ( ∀ j k ) \forall i \in [1, k], \|q - v_i\| \leq \|q - v_j\| \quad (\forall j k)∀i∈[1,k],∥q−vi​∥≤∥q−vj​∥(∀jk)FAISS通过向量空间划分如聚类减少需要计算的向量数量牺牲少量精度换取时间效率通常召回率≥95%。项目实战电商商品推荐系统开发环境搭建硬件普通笔记本电脑内存≥8GB推荐16GB。软件Python 3.8安装以下库pipinstallsentence-transformers faiss-cpu pandas源代码详细实现和代码解读我们将实现一个“奶茶商品语义搜索系统”输入用户需求如“少糖的杨枝甘露”返回最匹配的商品。步骤1准备商品数据假设我们有一个奶茶商品列表milk_teas.csv包含商品名称和描述商品ID商品名称商品描述1经典杨枝甘露大颗西柚芒果酱椰奶正常糖2蜂蜜柠檬茶新鲜柠檬天然蜂蜜少糖3低糖杨枝甘露西柚粒芒果泥3分糖4全糖珍珠奶茶黑糖珍珠全脂牛奶全糖步骤2将商品描述转换为向量用SBERT模型生成每个商品描述的向量并存储到FAISS索引中。importpandasaspdfromsentence_transformersimportSentenceTransformerimportfaissimportnumpyasnp# 1. 加载商品数据dfpd.read_csv(milk_teas.csv)descriptionsdf[商品描述].tolist()# 提取所有商品描述# 2. 初始化SBERT模型生成句向量modelSentenceTransformer(all-MiniLM-L6-v2)# 3. 生成商品向量每个描述对应一个384维向量product_vectorsmodel.encode(descriptions)product_vectorsproduct_vectors.astype(float32)# FAISS需要float32类型# 4. 构建FAISS索引dimensionproduct_vectors.shape[1]# 384维indexfaiss.IndexFlatIP(dimension)# 使用内积与余弦相似度正相关需先归一化向量product_vectors_normalizedproduct_vectors/np.linalg.norm(product_vectors,axis1)[:,np.newaxis]# 归一化index.add(product_vectors_normalized)# 添加归一化后的向量到索引步骤3处理用户查询并检索用户输入“少糖的杨枝甘露”生成查询向量用FAISS检索最匹配的商品。# 5. 处理用户查询user_query少糖的杨枝甘露query_vectormodel.encode([user_query])# 生成查询向量1×384维query_vector_normalizedquery_vector/np.linalg.norm(query_vector)# 归一化# 6. 检索最相似的3个商品k3distances,indicesindex.search(query_vector_normalized,k)# 7. 输出结果print(f用户查询{user_query})print(最匹配的商品)fori,(distance,idx)inenumerate(zip(distances[0],indices[0])):product_namedf.iloc[idx][商品名称]product_descdf.iloc[idx][商品描述]print(f{i1}.{product_name}相似度{distance:.4f}{product_desc})代码解读与分析归一化处理FAISS的IndexFlatIP内积索引要求向量归一化此时内积结果等于余弦相似度因为归一化后向量长度为1( A \cdot B \cos\theta )。相似度排序distances返回的是内积值越大越相似例如商品3低糖杨枝甘露的描述包含“3分糖”和“杨枝甘露”与用户查询的余弦相似度会很高。运行结果示例用户查询少糖的杨枝甘露 最匹配的商品 1. 低糖杨枝甘露相似度0.8923西柚粒芒果泥3分糖 2. 经典杨枝甘露相似度0.6541大颗西柚芒果酱椰奶正常糖 3. 蜂蜜柠檬茶相似度0.5120新鲜柠檬天然蜂蜜少糖实际应用场景1. 电商商品推荐用户搜“适合夏天的轻薄连衣裙”语义搜索能理解“夏天→轻薄”“连衣裙→女装”返回雪纺、真丝材质的连衣裙而不仅是标题含“夏天”“轻薄”的商品。2. 智能客服用户问“我的快递什么时候到”语义搜索能匹配“快递配送时效”“物流查询”等知识库内容即使用户没说“物流”“时效”等关键词。3. 内容平台如抖音、小红书用户搜索“露营必备清单”语义搜索能关联“帐篷、折叠椅、烧烤架”等内容甚至推荐“露营拍照技巧”意图是“准备露营”。4. 多模态搜索图/文/声融合用户上传一张“蓝白条纹衬衫”的照片语义搜索能匹配文字描述为“蓝白条纹、棉质、宽松”的商品或推荐用户评论中“适合夏天”的同款。工具和资源推荐模型工具Sentence-BERT句向量生成的首选模型GitHub链接。Hugging Face Transformers预训练语言模型的一站式库支持BERT、RoBERTa等。向量数据库FAISSFacebook开源的ANN库适合小规模数据。MilvusZilliz开源的向量数据库支持大规模分布式适合生产环境。Pinecone云端向量数据库无需部署适合快速验证。学习资源《自然语言处理入门》车万翔等NLP基础教材。《向量检索原理与实践》Zilliz社区ANN算法深度解析。未来发展趋势与挑战趋势1多模态语义搜索未来搜索将不再局限于文本而是融合图像、语音、视频等多模态数据。例如用户说“我想要周杰伦唱的、带钢琴伴奏的慢歌”系统能同时理解语音指令、音乐风格和乐器特征返回《安静》《说好的幸福呢》等歌曲。趋势2实时性与低延迟AI原生应用如直播电商要求搜索响应时间≤100ms未来需要更高效的ANN算法如基于GPU的并行计算和轻量化模型如DistilBERT。趋势3个性化语义搜索结合用户历史行为搜索、点击、购买调整语义理解权重。例如常买“无糖奶茶”的用户搜“甜奶茶”系统会优先推荐“代糖奶茶”而非“全糖奶茶”。挑战1算力与成本高质量语义搜索需要大模型如GPT-4和海量向量存储中小企业可能面临算力成本过高的问题。挑战2隐私保护向量表示可能隐含用户隐私如医疗咨询内容需要研究“隐私保护的向量检索”如联邦学习、同态加密。挑战3跨语言与文化差异中文“奶茶”在英文中是“milk tea”但不同文化对“甜”的定义可能不同如东南亚偏好极甜日本偏好微甜语义搜索需要适配跨语言和文化差异。总结学到了什么核心概念回顾语义理解让机器“听懂人话”提取核心意图如“少糖”比“少糖”这两个字更重要。向量表示将内容转换为数字向量“数字照片”方便机器比较相似性。高效检索用ANN算法在海量向量中快速找到最匹配项“分盒子找书”。概念关系回顾语义理解是“翻译官”向量表示是“数字照片”高效检索是“快速找照片”三者协同构成语义搜索的技术栈。多模态融合则是“扩展技能”让搜索能处理图/文/声等多种内容。思考题动动小脑筋生活观察题你在使用电商APP时有没有遇到“关键词搜索结果不相关但语义搜索更准”的情况举例说明。技术实践题如果让你为“菜谱APP”设计语义搜索你会如何定义“用户查询”和“菜谱描述”的向量维度提示考虑“食材”“烹饪方式”“口味”等特征开放思考题多模态搜索中如何融合“用户上传的蛋糕照片”和“文字描述的蛋糕口味”可能遇到哪些技术难点附录常见问题与解答Q传统搜索和语义搜索的本质区别是什么A传统搜索是“字符串匹配”找字语义搜索是“意图匹配”找含义。例如用户搜“拍立得相机”传统搜索返回标题含“拍立得”“相机”的结果语义搜索还会返回“即拍即印相机”含义相同但关键词不同。Q向量维度越高越好吗A不一定。高维度如768维能存储更多细节但计算成本更高低维度如128维计算快但可能丢失关键信息。需根据任务调整如短文本推荐用384维长文本用768维。QFAISS和Milvus有什么区别AFAISS是基础库适合研究和小数据Milvus是基于FAISS的向量数据库支持分布式、索引管理、API接口适合生产环境。扩展阅读 参考资料《Deep Learning for Search》Douwe Kiela等——搜索与深度学习的经典教材。Sentence-BERT论文Sentence-BERT: Sentence Embeddings using Siamese BERT-NetworksFAISS官方文档Faiss DocumentationMilvus官网Milvus Vector Database
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

郑州网站建设君捷axrue怎么做网站的原型图

我们平时在使用 claude code CLI 的时候,除了使用 claude 自己的模型,还会接入一些比较便宜的国产模型,比如 GLM4.6 、MiniMax-M2、kimi k2 等等。这时候如果能支持在多个模型之间随意切换,那就可以大大提高使用效率。目前市面上也…

张小明 2026/1/17 19:44:42 网站建设

win7iis如何做网站成都住建官方网

在反应堆物理模拟领域,OpenMC作为开源蒙特卡罗粒子输运计算程序,其与LibMesh集成的非结构化网格功能正经历重要的技术架构重构。本文深入探讨自适应网格支持面临的核心挑战、架构设计演进路径,以及面向多物理场耦合应用的实现策略。 【免费下…

张小明 2026/1/17 19:44:45 网站建设

网站建设 竞赛 方案漂亮的网站设计

第一章:还在手动收集表情包?Open-AutoGLM智能采集系统让你领先同行3年在内容创作和社群运营中,高质量的表情包已成为提升互动效率的核心资源。然而,传统手动搜索、分类与存储的方式不仅耗时,还难以应对海量社交平台的动…

张小明 2026/1/17 19:44:46 网站建设

wordpress动漫网站网站 建设 公司

白领年终总结PPT神器横评:为什么ChatPPT是2025年当之无愧的效率之王? 作为一名饱受年终总结折磨的职场人,每年12月最头疼的不是业绩复盘,而是要把几十页的数据、文档变成“老板看得懂、同事觉得专业”的PPT。今年我横评了市面10余…

张小明 2026/1/17 19:44:47 网站建设

企业网站有什么功能合肥网站建设公司 千鸟

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

张小明 2026/1/17 19:44:47 网站建设

赣州网站建设江西网站建设淮安市淮阴区建设局网站

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…

张小明 2026/1/17 18:56:10 网站建设