pyrouge(ROUGE-1.5.5)的安装步骤和使用说明(适用于Linux 系统)


摘要:本文讲解了如何配置和使用文本摘要的评价指标ROUGE(linux 系统)。


✅ NLP 研 1 选手的学习笔记

简介:小王,NPU,2023级,计算机技术
研究方向:摘要生成、大语言模型生成


文章目录

  • 一、为啥要写这篇博客?
  • 二、安装过程:
    • step1:检查 `perl` 版本
    • step2:安装 `XML::Parser`
    • step3: 安装 `XML::RegExp`
    • step4: 安装 `LWP::UserAgent`
    • step5: 安装 `XML::Parser::PerlSAX`
    • step6: 安装 `XML::DOM`
    • step7: 安装 `DB_File`
    • step8: 安装并测试 `ROUGE-1.5.5`
  • 三、所有完整安装命令
  • 四、参考文献
  • 五、补充说明


一、为啥要写这篇博客?

调侃:这个xxx玩意,我真的,安装了好久好久,关键很多投稿文摘任务的作者还就喜欢有这一版本的ROUGE…我不用还不行…

ROUGE 是由微软亚洲研究院知识挖掘组(The Knowledge Mining group at Microsoft Research Asia)调研经理(research manager) Chin-Yew Lin 研发的,用于摘要的自动评价,通过比较机器自动生成的摘要(called system_summary)与人工生成的摘要(called model_summary, 认为它是理想的)中重叠单元的数量,来评价机器自动生成的摘要。该方法中考虑的重叠单元有n-gram、word sequences、word-pairs等,并提出了四个测量标准 ROUGE-NROUGE-LROUGE-WROUGE-S。该包用 Perl 语言编写,目前版本为 ROUGE-1.5.5

● 首先安装 Perl 的一系列文件。直接用我的百度网盘:百度网盘链接,提取码:8fy5 里面的吧。当然如果你想去 github 下载也是可以的:https://github.com/summanlp/evaluation/tree/master/ROUGE-RELEASE-1.5.5。

● 如果你直接用的网盘里的几个压缩包,可以先将它们放到同一个文件夹里,如下图所示:

在这里插入图片描述

二、安装过程:

step1:检查 perl 版本

● 因为 DOM 要求 perl 版本要在 5.6.0 以上,所以先在终端用 perl -v 查看一下当前版本,版本较低的话先升级一下 perl

在这里插入图片描述
● 升级 perl 的 Linux 命令:

sudo apt upgrade perl


step2:安装 XML::Parser

● 假设使用的是百度网盘里的文件,那我们先将 XML-Parser-2.44.tar.gz 解压到当前文件夹(默认)或指定路径:

tar -zxvf XML-Parser-2.44.tar.gz

● 然后进入解压好的该文件,并进行编译和安装:

cd XML-Parser-2.44
perl Makefile.PL 
make 
make test # if %%%Result看到PASS为成功就继续,否则仔细看哪个case报错了 
sudo make install # if %%%必须要sudo,否则可能没有读写文件的权限

● 前两个语句(cd XML-Parser-2.44perl Makefile.PL)应该大家都没问题:

在这里插入图片描述
● 但输入 make 后就会出现 Bug…OK,这一步我就卡了很久…

在这里插入图片描述
● 找了很久的资料,反正 ChatGPT 之类的也问了,最后找到个能解决问题的偏方,输入下面的命令:

Debian/Ubuntu系统用这个(我用的这个)sudo apt-get install libexpat1-dev
CentOS/RHEL系统用这个:
sudo yum install expat-devel

● 结果,libexpat1-dev 安装不上????然后我又陷入了沉思…并开始借助互联网的力量!

在这里插入图片描述
● 终于,我知道怎么回事了,输入下面的命令,更新一下软件包列表:

sudo apt-get update

● 然后再次输入 sudo apt-get install libexpat1-dev,终于安装好这玩意儿了:

在这里插入图片描述
● 好的,现在我可以 make 了吧?OK,终于解决了,搁这儿套娃了,一个 Bug 套另一 Bug…

在这里插入图片描述
● 咱们再接着 make 后面的语句一条条地执行,后面两条语句应该都没事了。

cd XML-Parser-2.44
perl Makefile.PL 
make 
make test # if %%%Result看到PASS为成功就继续,否则仔细看哪个case报错了 
sudo make install # if %%%必须要sudo,否则可能没有读写文件的权限

● 进行 make test 之后的输出结果:

在这里插入图片描述
● 进行 sudo make install 之后的输出结果:

在这里插入图片描述



step3: 安装 XML::RegExp

● 过程和 step2 一样,我们先将 XML-RegExp-0.04.tar.gz 解压到当前文件夹(默认)或指定路径:

tar -zxvf XML-RegExp-0.04.tar.gz

● 需注意的是,别在刚刚的文件夹下解压,的回到上一层才行:
在这里插入图片描述

● 然后进入解压好的该文件,并进行编译和安装:

cd XML-RegExp-0.04
perl Makefile.PL 
make 
make test # if %%%Result看到PASS为成功就继续,否则仔细看哪个case报错了 
sudo make install # if %%%必须要sudo,否则可能没有读写文件的权限

● OK,这个包应该全程安装 so easy~!直接来到第三个包!



step4: 安装 LWP::UserAgent

LWP::UserAgentlibwww-perl 中的一部分,直接用 apt-get 安装就可以:

sudo apt-get install libwww-perl


step5: 安装 XML::Parser::PerlSAX

● 这个模块是 libxml-perl 中的一部分,也可以直接用 apt-get 安装

sudo apt-get install libxml-perl


step6: 安装 XML::DOM

● 继续参考 step2 的方法,进入 XML::DOM 的安装包路径,解压到当前文件夹(默认)或指定路径:

tar -zxvf XML-DOM-1.46.tar.gz

● 然后进入解压好的该文件,并进行编译和安装:

cd XML-DOM-1.46
perl Makefile.PL 
make 
make test # if %%%Result看到PASS为成功就继续,否则仔细看哪个case报错了 
sudo make install # if %%%必须要sudo,否则可能没有读写文件的权限

● 这个包应该也是全程安装 so easy~!直接来到倒数第二个包包!



step7: 安装 DB_File

● 继续参考 step2 的方法,进入 DB_File 的安装包路径,解压到当前文件夹(默认)或指定路径:

tar -zxvf DB_File-1.835.tar.gz

● 然后进入解压好的该文件,并进行编译和安装:

cd DB_File-1.835
perl Makefile.PL 
make 
make test # if %%%Result看到PASS为成功就继续,否则仔细看哪个case报错了 
sudo make install # if %%%必须要sudo,否则可能没有读写文件的权限

● 问题又来了,这个问题是我花了 long long long long long time 才解决的…呜呜呜呜呜呜

在这里插入图片描述
● 反正,安装了下面这个依赖才可以:

sudo apt-get install libdb5.3-dev

● 安装 libdb5.3-dev 后再 make 的结果如下:

在这里插入图片描述
● 然后当我们执行 make test 时,竟然!Fail!!啊啊啊…真的要崩溃了…

在这里插入图片描述

● 鬼知道我咋想的,我原先的 DB_File-1.835 文件夹改名为 oldDB_File-1.835,还有原先的压缩包 DB_File-1.835.tar.gz 改名为 oldDB_File-1.835.tar.gz。然后,从网上新下载一个 DB_File,并重新执行一遍 step7:

sudo wget http://www.cpan.org/authors/id/P/PM/PMQS/DB_File-1.835.tar.gz
tar -zxvf DB_File-1.835.tar.gz
cd DB_File-1.835
perl Makefile.PL 
make 
make test # if %%%Result看到PASS为成功就继续,否则仔细看哪个case报错了 
sudo make install # if %%%必须要sudo,否则可能没有读写文件的权限

在这里插入图片描述
● 当再一次执行到 make test 时,噢~天呐!终于 PASS 了呜呜呜呜…

在这里插入图片描述
● 最后的 sudo make install 也应该没问题,终于可以到最后一步了…



step8: 安装并测试 ROUGE-1.5.5

● 首先解压 ROUGE-1.5.5.tar 到当前文件夹(默认)或指定路径,然后进入该目录:

tar -zxvf ROUGE-1.5.5.tgz
cd RELEASE-1.5.5

● 解压后的文件夹内容如下:
在这里插入图片描述
● 最后执行一下该文件夹里面的一个测试文件 runROUGE-test.pl

perl runROUGE-test.pl

● 当出现下面的画面时,那超级恭喜你!!!!成功啦!!!👏👏👏[此处附加哗啦啦的掌声!!!]👏👏👏

在这里插入图片描述



三、所有完整安装命令

● 一条一条执行即可。

sudo apt upgrade perl
sudo apt-get update
sudo apt-get install libexpat1-dev

tar -zxvf XML-Parser-2.44.tar.gz
cd XML-Parser-2.44
perl Makefile.PL
make 
make test # if %%%Result看到PASS为成功就继续,否则仔细看哪个case报错了 
sudo make install # if %%%必须要sudo,否则可能没有读写文件的权限
cd ..

tar -zxvf XML-RegExp-0.04.tar.gz
cd XML-RegExp-0.04
perl Makefile.PL 
make 
make test # if %%%Result看到PASS为成功就继续,否则仔细看哪个case报错了 
sudo make install # if %%%必须要sudo,否则可能没有读写文件的权限
cd ..

sudo apt-get install libwww-perl

sudo apt-get install libxml-perl

tar -zxvf XML-DOM-1.46.tar.gz
cd XML-DOM-1.46
perl Makefile.PL 
make 
make test # if %%%Result看到PASS为成功就继续,否则仔细看哪个case报错了 
sudo make install # if %%%必须要sudo,否则可能没有读写文件的权限
cd ..

sudo wget http://www.cpan.org/authors/id/P/PM/PMQS/DB_File-1.835.tar.gz
sudo apt-get install libdb5.3-dev
tar -zxvf DB_File-1.835.tar.gz
cd DB_File-1.835
perl Makefile.PL 
make 
make test # if %%%Result看到PASS为成功就继续,否则仔细看哪个case报错了 
sudo make install # if %%%必须要sudo,否则可能没有读写文件的权限
cd ..

tar -zxvf ROUGE-1.5.5.tgz
cd RELEASE-1.5.5
perl runROUGE-test.pl


四、参考文献

1.《NLP-文本摘要:Rouge评测方法【Rouge-1、Rouge-2、Rouge-L、Rouge-W、Rouge-S】》

2.《Ubuntu安装ROUGE教程》

3.《github pyrouge》

4.《github evaluation/ROUGE-RELEASE-1.5.5》

5.《rouge 及 pyrouge 安装、配置和使用》

五、补充说明

● 若有写得 不对/不妥 的地方,或有疑问,欢迎评论交流。


后记:这篇博客写于 2023-09-15 15:03:49,但是一直没有发出来…
现在 2024-06-10 15:20,端午节,想想哈,时过境迁好久啦,已经好长一段时间没有好好写博客了,得拾起来了…

⭐️ ⭐️ ⭐️

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp 开发版小程序之间跳转

uni.navigateToMiniProgram({appId: urL,path: patH,envVersion: release,//我使用develop会给我返回:开发版小程序已过期,请在开发者工具重新扫码确定success(res) {console.log(res);// 打开成功uni.showToast({title: 跳转成功})},fail(err) {console…

【CS.AL】算法核心之贪心算法:从入门到进阶

文章目录 1. 概述2. 适用场景3. 设计步骤4. 优缺点5. 典型应用6. 题目和代码示例6.1 简单题目:找零问题6.2 中等题目:区间调度问题6.3 困难题目:分数背包问题 7. 题目和思路表格8. 总结References 1000.1.CS.AL.1.4-核心-GreedyAlgorithm-Cre…

Linux Source命令及脚本的执行方式解析

Linux Source命令及脚本的执行方式解析 当修改了/etc/profile文件,想让它立刻生效,而不用重新登录,这时就想到用source命令,如:source /etc/profile source命令: 也称为“点命令”,也就是一个点符号&…

显著提高iOS应用中Web页面的加载速度 - 提前下载页面的关键资源(如JavaScript、CSS和图像)

手动下载并缓存资源是一种有效的方式,可以确保在需要时资源已经在本地存储,这样可以显著提高加载速度。 缓存整个 web 页面的所有资源文件 具体实现步骤 下载和缓存资源:包括 HTML 文件、CSS、JavaScript 和图像。在应用启动时预加载资源。…

鸿蒙 游戏来了 鸿蒙版 五子棋来了 我不允许你不会

团队介绍 作者:徐庆 团队:坚果派 公众号:“大前端之旅” 润开鸿生态技术专家,华为HDE,CSDN博客专家,CSDN超级个体,CSDN特邀嘉宾,InfoQ签约作者,OpenHarmony布道师,电子发烧友专家博客,51CTO博客专家,擅长HarmonyOS/OpenHarmony应用开发、熟悉服务卡片开发。欢迎合…

【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】梯度的反向传播算法

矩阵微积分(Matrix Calculus) 在开始之前,需要先了解矩阵微积分的一些计算规则。 首先,对于矩阵微积分的表示,通常由两种符号约定: 分母布局 标量关于向量的导数为列向量 向量关于标量的导数为行向量 N维…

如何应对pcdn的流量攻击?

面对PCDN的流量攻击,可以采取以下措施来应对: 一.配置防火墙: 1.禁止未授权的PCDN域名访问:根据网络需求,配置防火墙规则,只允许特定的PCDN域名进行访问,从而防止未经授权的PCDN节…

shell编程基础(第16篇:命令是什么?有哪些注意事项)

前言 前面我们已经使用过各种各样的命令,那么命令到底是什么呢?我们又该怎么理解该术语? 什么是命令? 命令是command的中文翻译,能在命令行中执行的是命令。因为早期的计算机只有文字界面,命令是程序&#…

【Kafka】Kafka生产者-04

【Kafka】Kafka生产者-04 1. 生产者发送消息流程1.1 发送原理 2. 相关文档 1. 生产者发送消息流程 1.1 发送原理 在消息发送的过程中,涉及到了两个线程——main 线程和 Sender 线程。 在 main 线程中创建了一个双端队列 RecordAccumulator。 main 线程将消息发送给…

CSS实现经典打字小游戏《生死时速》

🌻 前言 CSS 中有这样一个模块:Motion Path 运动模块,它可以使元素按照自定义的路径进行移动。本文将为你讲解这个模块属性的使用,并且利用它实现我小时候电脑课经常玩的一个打字游戏:金山打字的《生死时速》。 &…

【免费Web系列】大家好 ,今天是Web课程的第二一天点赞收藏关注,持续更新作品 !

这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547r 员工管理 1. 条件分页查询 1.1 概述 在页面原型中,我们可以看到在查询员工信息列表时,既需要根据条件动态查询,还需要对查询的结果进行分页处理。 那要完成这个页面…

计算机组成原理历年考研真题对应知识点(计算机系统层次结构)

目录 1.2计算机系统层次结构 1.2.2计算机硬件 【命题追踪——冯诺依曼计算机的特点(2019)】 【命题追踪——MAR 和 MDR 位数的概念和计算(2010、2011)】 1.2.3计算机软件 【命题追踪——三种机器语言的特点(2015)】 【命题追踪——各种翻译程序的概念(2016)】 1.2.5计算…

四十五、openlayers官网示例Icon modification解析——在地图上添加标记图形并随意移动它的位置

官网demo地址: Icon modification 这篇讲了如何随意移动地图上的矢量点。 先在地图上添加一个矢量点,其中anchorXUnits 和 anchorYUnits: 指定锚点的单位。fraction 表示相对于图标的宽度(0到1之间),pixels 表示以像素…

关于Unity四种合批技术详解

文章目录 一.静态合批(StaticBatching)1.启用静态合批2.举例说明3.静态合批的限制4.静态合批的优点缺点5.动态指定物品合批 二.动态合批(Dynamic Batching)1.启用动态合批2.合批规则3.举例说明4.使用限制 三.GPU Instancing1.启用GPU Instancing2.启用限制3.举例说明 四.SRP Ba…

【面试干货】ArrayList、Vector、LinkedList的存储性能和特性比较

【面试干货】ArrayList、Vector、LinkedList的存储性能和特性比较 1、ArrayList1.1 存储性能1.2 特性1.3 示例用法 2、Vector2.1 存储性能2.2 特性2.3 示例用法 3、LinkedList3.1 存储性能3.2 特性3.3 示例用法 4、ArrayList、Vector、LinkedList用法总结 💖The Beg…

Java数据库编程

引言 在现代应用开发中,与数据库交互是不可或缺的一部分。Java提供了JDBC(Java Database Connectivity) API,允许开发者方便地连接到数据库并执行SQL操作。本文将详细介绍Java数据库编程的基础知识,包括JDBC的基本概念…

AI金融投资:批量下载深交所公募REITs公开说明书

打开深交所公募REITs公开说明书页面,F12查看网络,找到真实地址:https://reits.szse.cn/api/disc/announcement/annList?random0.3555675437003616 { "announceCount": 39, "data": [ { "id": "80bc9…

循环订单激励:打造企业增长新引擎

循环订单激励:打造企业增长新引擎 在当今竞争激烈的商业环境中,许多企业都在寻求独特而高效的营销策略以吸引并留住客户。今天,我要为您介绍的是一种名为“循环订单激励”的新颖模式,它不仅能提升客户参与度,还能为企…

《站在2024年的十字路口:计算机专业是否仍是高考生的明智之选?》

文章目录 每日一句正能量前言行业竞争现状行业饱和度和竞争激烈程度[^3^]新兴技术的影响[^3^]人才需求的变化[^3^]行业创新动态如何保持竞争力 专业与个人的匹配度判断专业所需的技术能力专业核心课程对学生的要求个人兴趣和性格特点专业对口的职业发展要求实践和经验个人价值观…