当前位置: 首页 > news >正文

百度网站解封扬州市城市建设投资公司网站

百度网站解封,扬州市城市建设投资公司网站,搜索引擎优化的内容有哪些,网站服务器选购展示如何使用 LangChain 的 EnsembleRetriever 组合 BM25 和 FAISS 两种检索方法,从而在检索过程中结合关键词匹配和语义相似性搜索的优势。通过这种组合,我们能够在查询时获得更全面的结果。 1. 导入必要的库和模块 首先,我们需要导入所需…

展示如何使用 LangChain 的 EnsembleRetriever 组合 BM25 和 FAISS 两种检索方法,从而在检索过程中结合关键词匹配和语义相似性搜索的优势。通过这种组合,我们能够在查询时获得更全面的结果。

1. 导入必要的库和模块

首先,我们需要导入所需的库和模块。本文使用的工具包括 LangChain 提供的 EnsembleRetrieverBM25RetrieverFAISS、以及 HuggingFace 的嵌入模型。

from langchain.retrievers import EnsembleRetriever
from langchain_community.retrievers import BM25Retriever
from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import HuggingFaceEmbeddings
from config import paraphrase_multilingual_MiniLM_L12_v2
2. 准备文档数据

准备了两组文档数据,这些文档分别用于 BM25 和 FAISS 检索器。在实际使用中,这些文档可以是任何你想要检索的文本数据。

# 定义第一组文档,这些文档将用于 BM25 检索器
doc_list_1 = ["这是一个测试句子","温格高赢得了2023环法冠军","波士顿马拉松是历史悠久的一项比赛","何杰即将出战巴黎奥运会的马拉松项目","珍宝将不再赞助温格高所在的车队",
]# 定义第二组文档,这些文档将用于 FAISS 检索器
doc_list_2 = ["波加查擅长陡坡进攻,而温格高则更擅长长坡","温格高的最大摄氧量居然有97!","北京奥运会在2008年8月8日开幕","基普乔格是东京马拉松的金牌得主",
]
3. 初始化 BM25 检索器

BM25 是一种基于词频和逆文档频率(TF-IDF)的传统检索算法,非常适合关键词匹配。我们使用 BM25Retriever.from_texts 方法来创建 BM25 检索器,并为其设置元数据(source: 1),以便区分文档来源。我们还设置了返回的文档数量 k 为 2。

bm25_retriever = BM25Retriever.from_texts(doc_list_1, metadatas=[{"source": 1}] * len(doc_list_1)
)
bm25_retriever.k = 2  # 设置 BM25 检索器返回的文档数量
4. 初始化 FAISS 检索器

FAISS 是一种用于高效向量相似性搜索的工具。我们使用 HuggingFace 的 paraphrase_multilingual_MiniLM_L12_v2 嵌入模型将文档转化为向量,然后将这些向量存储在 FAISS 中。随后,我们使用 FAISS.from_texts 方法创建 FAISS 检索器,并设置返回的文档数量 k 为 2。

embeddings = HuggingFaceEmbeddings(model_name=paraphrase_multilingual_MiniLM_L12_v2)
faiss_vectorstore = FAISS.from_texts(doc_list_2, embeddings, metadatas=[{"source": 2}] * len(doc_list_2)
)
faiss_retriever = faiss_vectorstore.as_retriever(search_kwargs={"k": 2})
5. 创建组合检索器

为了结合 BM25 和 FAISS 的优势,我们使用 EnsembleRetriever 将这两种检索器组合在一起,并为它们设置相等的权重(0.5 和 0.5)。这种组合策略可以在关键词匹配和语义相似性之间取得平衡。

ensemble_retriever = EnsembleRetriever(retrievers=[bm25_retriever, faiss_retriever], weights=[0.5, 0.5]
)
6. 执行查询并输出结果

我们使用组合检索器来查询关键词“温格高”,并输出检索结果。EnsembleRetriever 会结合 BM25 和 FAISS 的结果,返回与查询最相关的文档。随后,我们提取并打印每个文档的 page_content

docs = ensemble_retriever.invoke("温格高")
print(docs)page_contents = [doc.page_content for doc in docs]
print(page_contents)
7. 检索结果分析

运行上述代码后,我们得到了如下结果:

[Document(page_content='珍宝将不再赞助温格高所在的车队', metadata={'source': 1}),Document(page_content='温格高的最大摄氧量居然有97!', metadata={'source': 2}),Document(page_content='温格高赢得了2023环法冠军', metadata={'source': 1}),Document(page_content='波加查擅长陡坡进攻,而温格高则更擅长长坡', metadata={'source': 2})]['珍宝将不再赞助温格高所在的车队', '温格高的最大摄氧量居然有97!', '温格高赢得了2023环法冠军', '波加查擅长陡坡进攻,而温格高则更擅长长坡']

这些结果显示,组合检索器从两个检索器中分别返回了两个文档,并将它们合并。最终结果中既包含了 BM25 检索器基于词频的匹配结果,也包含了 FAISS 检索器基于语义相似性的结果。例如,“珍宝将不再赞助温格高所在的车队”和“温格高的最大摄氧量居然有97!”这两条结果分别来自 BM25 和 FAISS,它们都与查询词“温格高”高度相关。

http://www.15wanjia.com/news/156933.html

相关文章:

  • 北京室内设计利于优化的网站模板
  • 东莞网站建设 烤活鱼定制网站制作费用
  • 正规的营销型网站建设公司广东网络文明大会开幕
  • 易语言可以做网站了吗网站做联盟收入
  • 泰安市建设局网站做招聘求职网站
  • 长沙麓谷网站建设小程序咋做
  • 做关于车的网站暖色调网页设计网站
  • 做网站 做手机app要学什么软件深圳建网站哪个好
  • 江西电信网站备案wordpress lights
  • 网站对公司的意义凡科怎么建设网站
  • 免费行情网站app斗印网站title的写法
  • 摄影网站 蜂鸟大学网站建设包括哪些课程
  • 自己建一个网站需要多少钱?福田网站建设多少钱
  • 如何用python做网站wordpress 旧文章 最新
  • seo整站优化外包公司佛山市官网网站建设哪家好
  • 商务网站的主要存在形式wordpress评论主题
  • 建立自己网站紫色网站
  • 做网批的网站广州网站开发小程序
  • 门户网站开发招标wordpress 制作404
  • 571免费建网站网站系统维护一般要多久
  • 网站网站是怎么做的初中生代表性设计制作作品图片
  • 苏州浒关做网站建设外贸网站报价
  • 网站渗透入侵全部教程网络设计开发网站
  • 义乌网站建设推广七牛云 wordpress
  • 做网站用哪个软件最好php亚洲足球最新排名
  • 招聘网站策划书创业大赛网站建设
  • 做网站时管理员权限的页面哪些网站做的比较好看
  • 满城网站建设专业做房地产网站建设
  • 网站建设费用计算依据网站建设本科毕业设计论文
  • 网站建设调研表怎么制作网页视频