Pyserini

在这里插入图片描述

文章目录

    • 关于 Pyserini
    • 安装🎬
    • 如何搜索?🙋
    • 如何给我的语料集建立索引


关于 Pyserini

  • github : https://github.com/castorini/pyserini
  • Pyserini: An Easy-to-Use Python Toolkit to Support Replicable IR Research with Sparse and Dense Representations
    https://arxiv.org/abs/2102.10073

Pyserini 是一个 Python 工具包,用于具有稀疏和密集表示 的可重复信息检索研究。通过与我们小组基于 Lucene 构建的Anserini IR 工具包集成,可以使用稀疏表示进行检索。通过与 Facebook 的Faiss库集成,提供使用密集表示的检索。

Pyserini 的主要设计目的是在多阶段 ranking 架构中提供有效、可重复且易于使用的第一阶段检索。

我们的工具包是独立的标准 Python 包,并附带针对许多常用 IR 测试集合的查询、相关性判断、预构建索引和评估脚本。使用 Pyserini,可以轻松地在许多标准 IR 测试集合上重现运行!

有关更多详细信息,我们在 SIGIR 2021 中的论文提供了很好的概述。

❗ Anserini 在提交时(2024/04/03)从 JDK 11 升级到 JDK 21 272565,对应 v0.35.0 版本。相应地,Pyserini 在提交时b2f677(2024/04/04)升级到了 JDK 21 。

安装🎬

通过 PyPI 安装(需要 Python 3.10+):

pip install pyserini
  • 稀疏检索依赖于Anserini,它本身是基于 Lucene 构建的(用 Java 编写),因此需要 JDK 21。
  • 密集检索依赖于神经网络,并且需要一组更复杂的依赖关系。安装pip时会自动拉入🤗 Transformers 库来满足包要求。
  • Pyserini 还依赖于PyTorch和Faiss,但由于这些包可能需要特定于平台的自定义配置,因此它们没有在包要求中明确列出。我们将这些软件包的安装留给您。

软件生态系统正在快速发展,潜在的挫败感是不同版本的底层依赖项之间的不兼容。我们在此处提供了其他详细的安装说明。

如果您打算只使用Pyserini,那么pip上面的说明就可以了。
但是,如果您计划为代码库做出贡献或想要使用最新的尚未发布的功能,则需要进行开发安装。此处提供了说明。


如何搜索?🙋

Pyserini 支持以下类别的检索模型:

  • Traditional lexical models (e.g., BM25) using LuceneSearcher.
  • Learned sparse retrieval models (e.g., uniCOIL, SPLADE, etc.) using LuceneImpactSearcher.
  • Learned dense retrieval models (e.g., DPR, Contriever, etc.) using FaissSearcher.
  • Hybrid retrieval models (e.g., dense-sparse fusion) using HybridSearcher.

请参阅本指南(与上面的链接相同),详细了解如何使用我们已经为您构建的索引来搜索 IR 和 NLP 研究中的常见语料库(例如 MS MARCO、NaturalQuestions、BEIR 等)。

一旦获得前k 个结果,您实际上会想要获取文档文本…请参阅本指南了解如何操作。


如何给我的语料集建立索引

这依据于 你要使用哪种检索模型来搜索

  • Building a BM25 Index (Direct Java Implementation)
  • Building a BM25 Index (Embeddable Python Implementation)
  • Building a Sparse Vector Index
  • Building a Dense Vector Index

不同的模型,有不同的步骤,详情可参考教程:https://github.com/castorini/pyserini/blob/master/docs/usage-index.md


2024-05-02(四)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/670032.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

热敏电阻符号与常见术语详细解析

热敏电阻是一种电阻器,其特点是电阻值随温度的变化而显著变化,这使得它们成为非常有用的温度传感器。它们可以由单晶、多晶或玻璃、塑料等半导体材料制成,并分为两大类:正温度系数热敏电阻(#PTC热敏电阻#)和…

OpenHarmony实战开发-请求动画绘制帧率

在应用开发中,属性动画和显式动画能够使用可选参数ExpectedFrameRateRange,为不同的动画配置不同的期望绘制帧率。 请求属性动画的绘制帧率 定义文本组件的属性动画,请求绘制帧率为60,范例如下: Text().animation({d…

Hass哈斯数控数据采集网络IP配置设置

机床数据采集(MDC)允许你使用Q和E命令通过网络接口或选项无线网络从控制系统提取数据。设置143支持该功能,并且指定控制器使用这个数据端口。MDC是一个需要一台附加计算机发送请求,解释说明和存储机床数据的软件功能。这个远程计算…

SparkStructuredStreaming状态编程

spark官网关于spark有状态编程介绍比较少,本文是一篇个人理解关于spark状态编程。 官网关于状态编程代码例子: spark/examples/src/main/scala/org/apache/spark/examples/sql/streaming/StructuredComplexSessionization.scala at v3.5.0 apache/spark (github…

武王伐纣时杀死一位商朝大将,八百年后其子孙复仇推翻周朝

大约在公元前1046年,周武王率领大军征讨商朝,并在牧野之战中击溃商军,纣王兵败后自焚而死,至此商朝灭亡,史称“武王伐纣”。周武王进入朝歌城后,对商朝的旧臣进行了相关处理,有人“升职”了&…

88、动态规划-乘积最大子数组

思路: 首先使用递归来解,从0开始到N,每次都从index开始到N的求出最大值。然后再次递归index1到N的最大值,再求max。代码如下: // 方法一:使用递归方式找出最大乘积public static int maxProduct(int[] num…

申请Sectigo证书流程详解

Sectigo(前身为Comodo CA),是目前主流SSL证书的一种,目前全球范围内应用度也非常广泛,是目前众多品牌中市场份额最大的一个品牌了,在全球证书市场份额占比约为40%。 其超高的市场份额占比主要还是基于其超…

vue cli 自定义项目架子,vue自定义项目架子,超详细

脚手架Vue CLI基本介绍: Vue CLI 是Vue官方提供的一个全局命令工具 可以帮助我们快速创建一个开发Vue项目的标准化基础架子【集成了webpack配置】 脚手架优点: 开箱即用,零配置内置babel等工具标准化的webpack配置 脚手架 VueCLI相关命令…

Autodesk AutoCAD 2025 for Mac:强大的二维三维绘图工具

Autodesk AutoCAD 2025 for Mac是一款专为Mac用户打造的计算机辅助设计软件,它在继承了AutoCAD系列软件的优秀传统的基础上,针对Mac系统进行了全面优化,为用户提供了更出色的绘图和设计体验。 这款软件不仅支持用户创建和编辑复杂的二维几何图…

独家原创 | BiTCN-BiGRU-CrossAttention融合时空特征的高创新预测模型

往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 风速预测(一)数据集介绍和预处理-CSDN博客 风速预测(二)基于Pytorch的EMD-LSTM模型-CSDN博客 风速预测&#xff…

【设计模式】创建者模式之 工厂方法 抽象工厂

工厂方法模式(Factory Method) 一个特定功能,往往有多种实现方式,但是很难有某一个实现可以适用于所有情况,因此往往需要根据特定的场景选择不同的实现。试想:把选择具体实现的代码放在业务中会发生什么?每当我们需要…

09 华三 SSH

03 华三SSH 远程登录 1 AI解说官网 Kimi.ai - 帮你看更大的世界 (moonshot.cn) 华三交换机的SSH配置主要目的是通过SSH协议实现安全的远程登录和管理,以确保数据传输的安全性。以下是配置SSH的一般步骤和思路: 生成密钥对:首先需要在交换…