大型语言模型的语义搜索 Search keyword 一 关键词搜索 (大型语言模型是什么意思)
本文目录导航:
大型语言模型的语义搜索(一):关键词搜索(keyword Search)
关键词搜索(Keyword Search)是信息搜索中的基础技术,广泛应用于各类应用,如Spotify、YouTube和Google地图等。
其核心算法是Okapi BM25,此算法基于概率检索框架,用于评估文档与搜索查询的相关性。
Okapi BM25在信息检索中被搜索引擎用于排序,提高搜索结果的精准度。
为了演示如何使用Cohere的API调用BM25算法搜索维基百科数据库,首先需要配置Python环境。
这里需要安装cohere和weaviate-client包,导入cohere和weaviate的API_key,进而创建weaviate client来连接在线数据库。
我们所使用的在线数据库是一个包含1000万条自维基百科数据记录的公共数据库,每条记录代表一段维基百科文章,涵盖了10种不同语言,包括但不限于英语、德语、法语、西班牙语、意大利语、日语、阿拉伯语、中文、韩语和印地语。
在执行查询时,可以设置不同的语言。
在实现关键词搜索功能时,我们将使用API KEY配置参数来确保与Cohere和Weaviate服务的连接。
对于COHERE_API_KEY,需要在Cohere网站上注册账号并创建API Key;而WEAVIATE_API_KEY和WEAVIATE_API_URL则使用公开示例中的API Key和URL。
关键词搜索的原理是通过比较问题和文档中重复词汇的数量,从而确定最相关的结果。
在搜索系统内部,关键词搜索分为检索和重新排名两个阶段。
第一阶段使用倒排索引和BM25算法对文档进行评分,第二阶段则对评分结果进行排序。
关键词检索存在局限性,尤其是在语义相关性上。
当文档与问题在语义上相关但未出现重复词汇时,关键词检索可能无法准确检索到相关文档。
为解决这一问题,后续将探讨如何借助语言模型进行改进,以实现更精准的语义搜索。
本文介绍了关键词搜索的基本概念、实现方法和局限性,并通过Cohere的API调用示例展示了如何搜索维基百科数据库。
关键词搜索是搜索引擎中的核心功能,通过不断优化算法,可以提高搜索效率和准确性。
Easysearch:语义搜索、知识图和向量数据库概述
什么是语义搜索?语义搜索是一种运用自然语言处理算法,理解单词和短语的含义以及上下文,以提供更精确搜索结果的搜索技术。
其目的是更深入地理解用户的意图和查询内容,不仅基于关键词匹配,还通过分析查询的语义和上下文,提供更精确和相关的搜索结果。
与传统的关键词搜索相比,语义搜索的优点在于它能更好地满足用户的意图,尤其是对于复杂的查询和问题。
它能够理解查询的上下文,处理模糊或不完整的查询,并提供更相关和有用的搜索结果。
例如,当用户搜索最近的餐厅时,语义搜索可以根据用户的位置信息和上下文,提供附近的餐厅列表,而不仅仅是简单地匹配关键词最近和餐厅。
语义搜索的历史语义搜索的概念可以追溯到计算机科学的早期,在20世纪50年代和60年代就有人尝试开发自然语言处理系统。
然而,直到20世纪90年代和21世纪初,语义搜索领域才取得了重大进展,这得益于机器学习和人工智能的进步。
语义搜索最早的例子之一是Douglas Lenat在1984年创建的Cyc项目。
该项目旨在建立一个全面的常识知识本体或知识库,用于理解自然语言查询。
尽管Cyc项目面临诸多挑战,最终没有实现其目标,但它为未来语义搜索的研究奠定了基础。
20世纪90年代末,Ask Jeeves(现称为)等搜索引擎开始尝试自然语言查询和语义搜索技术。
这些早期的努力受到当时技术的限制,但它们展示了更复杂的搜索算法的潜力。
21世纪初,Web本体语言(OWL)的发展提供了一种以机器可读格式表示知识和关系的标准化方法,使得开发语义搜索算法变得更加容易。
2008年被微软收购的Powerset和2007年推出的Hakia等公司开始使用语义搜索技术来提供更相关的搜索结果。
如今,许多搜索引擎和公司正在使用语义搜索来提高搜索结果的准确性和相关性。
其中包括于2012年推出知识图谱的谷歌,以及使用语义搜索为其Alexa虚拟助手提供支持的亚马逊。
随着人工智能领域的不断发展,语义搜索可能会变得更加复杂且适用于广泛的应用。
语义搜索和知识图谱有什么关系?语义搜索和知识图密切相关,因为两者都涉及使用语义技术来改进搜索结果。
知识图是一种用于组织和表示知识的图形结构,通过节点和边的连接展示实体和关系之间的语义关联性。
例如,知识图可能包含有关特定公司的信息,包括其位置、产品和员工以及这些实体之间的关系。
另一方面,语义搜索是一种使用自然语言处理和机器学习来更好地理解搜索查询中单词和短语的含义的搜索技术。
语义搜索算法使用知识图和其他语义技术来分析实体和概念之间的关系,并基于此分析提供更相关的搜索结果。
换句话说,知识图谱为语义搜索提供了丰富的知识背景,帮助理解查询意图和提供准确的搜索结果。
同时,语义搜索可以帮助构建和扩展知识图谱,提高搜索的准确性和语义理解能力。
例如,谷歌的知识图使用庞大的结构化数据数据库来支持其搜索结果,并提供有关搜索结果中出现的实体(例如人物、地点和事物)的附加信息。
这使得用户更容易找到他们正在寻找的信息并探索相关的概念和实体。
向量数据库、知识图谱和语义搜索向量数据库是另一种可以与语义搜索和知识图相结合使用以改进搜索结果的技术。
它主要用于处理和分析具有向量特征的数据,如图像、音频、文本、时间序列等。
传统的关系型数据库主要用于存储结构化的数据,而向量数据库则专注于存储和处理高维向量。
它的设计目标是能够高效地进行向量相似性搜索和聚类等操作,以支持复杂的数据分析和机器学习任务。
向量数据库使用机器学习算法将数据表示为向量,向量是数据的数学表示,可用于各种计算任务,例如,向量可用于表示人、地点和事物等实体以及它们之间的关系。
通过比较这些向量,搜索算法可以识别数据本身可能无法立即显现的关系和模式。
在语义搜索和知识图的背景下,向量数据库可以通过更好地理解实体和概念之间的关系来提高搜索结果的准确性。
例如,当用户搜索“London”时,语义搜索算法可以使用知识图和向量数据库来了解用户可能指的是英国伦敦市,而不是其他同名实体。
通过使用向量数据库来表示和比较实体和概念,搜索算法可以提供更相关和更准确的搜索结果。
总体而言,向量数据库、语义搜索和知识图谱都是共同提高搜索算法的准确性和效率的技术。
通过利用这些技术,搜索引擎和其他应用程序可以更好地理解实体和概念之间的关系,从而更轻松地找到用户正在寻找的信息。
关于EasysearchINFINI Easysearch是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的Apache Lucene。
Easysearch的目标是提供一个轻量级的Elasticsearch可替代版本,并继续完善和支持更多的企业级功能。
与Elasticsearch相比,Easysearch更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。
官网文档/docs/lat...下载/download
谷歌搜索算法识别语义
谷歌以其鼓励创新的精神而闻名,每年都会通过“疯狂搜索创意”活动来激发那些富有潜力但奇特的想法。
然而,改进搜索算法的过程充满了挑战,像2001年辛格发现“audrey fino”搜索失败的案例就是如此。
辛格意识到,谷歌在处理姓名搜索时存在问题,因为系统无法正确识别“fino”在印度语中的正面含义,而误将它与奥黛丽·赫本相关联。
这一问题促使辛格花了多年时间研究,他引入了“bi-gram拆分”技术,将多词组合拆分为独立单元,以区分“new york”和“new york times”等不同含义。
以“Mike Siwek”搜索为例,谷歌通过bi-gram分析理解到“lawyer”是同义词,“siwek”不是中间名,而是地名。
辛格解释说,谷歌的算法通过词义分析,而不是简单的词语匹配,来理解用户的真实意图。
例如,即使用户输入“rokc”,谷歌也能识别出其想要找的是“rock”,但如果前面加上“little”,它会识别出这是地名“Arkansas”的缩写,而非“诺亚方舟”。
尽管取得了进步,谷歌并未停止改进。
最近,莫琳·海曼斯注意到“Cindy Louise Greenslade”的搜索问题,系统误将搜索视为寻找名为Cindy Louise的心理学家,而非特定姓名。
海曼斯发现,问题在于姓名缩写,她引入新的信号来识别中间名的缩写,现在正确的结果已提升至搜索结果的第五位。
谷歌的持续优化旨在更好地理解用户意图,提升搜索的准确性和智能性。
谷歌算法始于PageRank,这是1997年拉里·佩奇(Larry Page)在斯坦福大学读研究生时开发的。
佩奇的创新性想法是:基于入链接的数量和重要性对网页进行评级,也就是通过网络的集体智慧确定哪些网站最有用。
随着谷歌迅速成为互联网上最成功的搜索引擎,佩奇和谷歌的另一名创始人塞吉·布林(Sergey Brin)将PageRank这一简单概念看做谷歌的最根本创新。
文章评论