pyserini安装使用

news2024/10/22 6:37:23

目录

代码

安装

使用

msmarco-passage bm25


代码

git clone https://github.com/castorini/pyserini.git --recurse-submodules 
pyserini/tools为submodules,地址:anserini-tools

安装

https://github.com/castorini/pyserini/blob/master/docs/installation.md 
pyserini依赖java环境,可用conda直接安装。安装后,java版本查看命令 "java --version"
如果只是利用开源索引做测试,使用 PyPI Installation即可。
如果自行开发,需要Development Installation。最后一步将fatjar包copy到pyserini/resources/jars/中,fatjar包有两种获取方式,

  1. 在 anserini 项目中编译“mvn clean package”,保存路径为 anserini/target/anserini-X.Y.Z-SNAPSHOT-fatjar.jar。https://github.com/castorini/anserini?tab=readme-ov-file#-installation
  2. 直接下载 https://repo1.maven.org/maven2/io/anserini/anserini/0.38.0/anserini-0.38.0-fatjar.jar。 https://github.com/castorini/anserini/blob/master/docs/fatjar-regressions/fatjar-regressions-v0.38.0.md 

使用

默认下载保存路径  ~/.cache/pyserini/
指定下载保存路径 export PYSERINI_CACHE=/path/to/cache

msmarco-passage bm25

https://github.com/castorini/pyserini/blob/master/docs/experiments-msmarco-passage.md 

下载数据集

mkdir collections/msmarco-passage

wget https://msmarco.z22.web.core.windows.net/msmarcoranking/collectionandqueries.tar.gz -P collections/msmarco-passage

# Alternative mirror:
# wget https://www.dropbox.com/s/9f54jg2f71ray3b/collectionandqueries.tar.gz -P collections/msmarco-passage

tar xvfz collections/msmarco-passage/collectionandqueries.tar.gz -C collections/msmarco-passage

格式转为jsonl

python tools/scripts/msmarco/convert_collection_to_jsonl.py \
 --collection-path collections/msmarco-passage/collection.tsv \
 --output-folder collections/msmarco-passage/collection_jsonl

建立索引

python -m pyserini.index.lucene \
  --collection JsonCollection \
  --input collections/msmarco-passage/collection_jsonl \
  --index indexes/lucene-index-msmarco-passage \
  --generator DefaultLuceneDocumentGenerator \
  --threads 9 \
  --storePositions --storeDocvectors --storeRaw
# index 为索引保存路径

检索

python -m pyserini.search.lucene \
  --index indexes/lucene-index-msmarco-passage \
  --topics msmarco-passage-dev-subset \
  --output runs/run.msmarco-passage.bm25tuned.txt \
  --output-format msmarco \
  --hits 1000 \
  --bm25 --k1 0.82 --b 0.68 \
  --threads 4 --batch-size 16

计算指标

python -m pyserini.eval.msmarco_passage_eval \
   tools/topics-and-qrels/qrels.msmarco-passage.dev-subset.txt \
   runs/run.msmarco-passage.bm25tuned.txt

#####################
MRR @10: 0.18741227770955546
QueriesRanked: 6980
#####################

其他指标计算,需要建立trec格式索引,qrels转为trec格式

https://github.com/castorini/pyserini/blob/master/docs/experiments-msmarco-passage.md#evaluation

自定义数据集

pyserini/docs/usage-index.md at master · castorini/pyserini · GitHub

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

牛客编程初学者入门训练——BC53 判断是元音还是辅音

BC53 判断是元音还是辅音 描述 KiKi开始学习英文字母,BoBo老师告诉他,有五个字母A(a), E(e), I(i), O(o),U(u)称为元音,其他所有字母称为辅音,请帮他编写程序判断输入的字母是元音(Vowel)还是辅音&#x…

【JAVA毕业设计】基于Vue和SpringBoot的历史学习网站

本文项目编号 T 004 ,文末自助获取源码 \color{red}{T004,文末自助获取源码} T004,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

图示详解OpenEuler下Samba多用户身份验证配置、测试

前言 前文《图例详解OpenEuler下Samba安装、配置和测试》已对Samba服务的工作原理、安装、配置和测试,做了系统的介绍,并对匿名用户的访问samba服务器做了配置,相必读者已对samba服务的流程有了初步、系统的了解,本文在以上基础上…

如何在ActivityCommunication中整合多个Activity(实操)

下面举例添加一个WebViewIntentDemoActivity 第一步:先将java文件导入集合项目中 第二步:创建新的main界面,导入需要增加的Activity界面(记得与前面的命名区分开) 第三步:在集合Activity界面中添加一个新按…

docker删除容器要怎么操作?如何保障容器安全!

对于新手来说很多用户不清楚docker删除容器要怎么操作?在执行删除操作前,请确保不需要保留容器的任何数据或状态信息,或者已经备份了重要数据。要删除Docker容器和镜像,可以使用以下命令。今天就跟着小编一起来了解下docker删除容…

Python3 接口自动化测试,HTTPS下载文件(GET方法和POST方法)

Python3 接口自动化测试,HTTPS下载文件(GET方法和POST方法) requests-pkcs12 PyPI python中如何使用requests模块下载文件并获取进度提示 1、GET方法 1.1、调用 # 下载客户端(GET)def download_client_get(self, header_all):try:url = self.host + "/xxx/v1/xxx-mod…

基于SpringBoot+Vue的扶贫助农有机农产品商城【源码+安装+讲解+售后+开题+答辩PPT】

【1】系统介绍 ① 背景 在快速发展的中国,农村经济虽受益于国家整体繁荣,但仍面临基础设施落后、信息闭塞及销售渠道狭窄等挑战,阻碍了优质农产品的市场拓展,影响农民收入。互联网与电商的兴起,为解决这一难题提供了…

SpringBoot项目如何导入外部jar包:详细指南

在开发SpringBoot项目时,我们经常需要引入一些外部的jar包来增强项目的功能。这些jar包可能不是Maven中央仓库中的,或者我们想要使用特定版本的jar包。本文将详细介绍如何在SpringBoot项目中导入外部jar包,并确保项目能够正确地打包和运行。 …

基于SpringBoot的高校竞赛管理系统:设计与实现

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理高校学科竞赛平台的相关信息成为必然。开发…

【Linux】命令行下的“复制”操作||复制文件和路径

拷贝(cp,copy) cp命令来自于英文单词"copy"(复制)的缩写,用于将一个或多个文件或目录复制到指定位置。 cp [参数] 源文件 目标文件 参数: 致谢:Linux常用命令大全(手册) – 真正好用的Linux命令在线查询…

算法系列之十二:多边形区域填充算法--扫描线填充算法(有序边表法)

二、扫描线算法(Scan-Line Filling) 扫描线算法适合对矢量图形进行区域填充,只需要直到多边形区域的几何位置,不需要指定种子点,适合计算机自动进行图形处理的场合使用,比如电脑游戏和三维CAD软件的渲染等等…

【洛谷】- P1923 【深基9.例4】求第 k 小的数

文章目录 一、 P1923 【深基9.例4】求第 k 小的数二、思想方法2、代码3、细节 一、 P1923 【深基9.例4】求第 k 小的数 题目: 二、思想方法 首先我们来看核心代码,也就是通过快排,将K的位置找出 void my_sort(int arr[],int left,int right,…

170页满分PPT | 某大型集团信息安全管理体系优化咨询项目

某大型集团信息安全管理体系优化咨询项目是一项全面的规划报告,旨在根据ISO 27001:2013信息安全管理国际标准,对甲方集团的信息安全现状进行调研分析,并提出优化建议。该报告共170页可编辑PPT格式,详细列出了信息安全建设的各个阶…

css的思考

CSS思考[vue react tailwindcss] 传统css 全局作用域: 一旦生效,应用于全局,造成各种各样的冲突,为了避免冲突,会写复杂的id选择器和类选择器依赖问题:引入多个css样式文件,引入的css文件会对后面的css文…

企业数字化转型:打造数字资产开启创新与可持续发展之路

在当今数字经济时代,企业面临激烈竞争与变化的客户需求。传统信息化已不足以支撑发展,需将其提升到数字化高度,以打造数字资产为目标进行转型。 信息化主要是对业务流程进行优化和管理,关注数据采集、存储与处理及业务流程自动化。…

源之东方受邀出席第三届通证经济发展论坛暨绿色消费生态高质量发展大会

2024 年 9 月 27 日,在美丽的博鳌,由中国国际经济技术合作促进会主办,中国国际经济技术合作促进会通证经济工作委员会承办的 2024(第三届)通证经济发展论坛暨绿色消费生态高质量发展大会隆重召开。本次大会主题是“聚焦…

一键脚本部署单机redis

这里写目录标题 背景步骤总结 背景 现在有要求,将所有安装步骤可复用化 。sh脚本即可完成如上要求,减少人安装带来的不确定性因素。 需要安装包的可以加我微信。 步骤 在/root 目录下创建一个文件我们给他命名为 autoRedis.sh vi autoRedis.sh然后…

ruoyi若依平台——部门管理部分源码分析

来都来了给我点个赞和收藏关注一下在走呗~~~~🌹🌹🌹 目录 数据库结构: 一、部门查询 二、部门新增 三、后端 Controller——SysDeptController部门CRUD: 1.获取部门列表信息: 2.排除特定节点的部门列…

C++ 算法学习——1.8 单调栈算法

单调栈(Monotonic Stack)是一种在解决一些数组或者链表相关问题时非常有用的数据结构和算法。在C中,单调栈通常用于解决一些需要快速找到元素左右第一个比当前元素大或小的问题。 定义: 单调栈实际上是一个栈,但是与普…

《大规模语言模型从理论到实践》第一轮学习--强化学习(RLHF、PPO)

个人学习笔记,如有错误欢迎指出。 一、强化学习的意义 RLHF(Reinforcement Learning from Human Feedback):强化学习(Reinforcement Learning)结合人类反馈(Human Feedback)来微调大语言模型。 大语言模型的训练步骤包括:预训练、指令微调(SFT)、对齐。 对齐(a…