ROUGE 简易安装教程
ROUGE 简介
ROUGE 是一个系列的文本摘要评测指标,可用于评估机器摘要和人工摘要之间的相似度,主要包括以下具体指标:
- ROUGE-N:表示 N 元模型 (N-gram) 的匹配程度
- ROUGE-L:表示最长公共子序列 (LCS) 的匹配程度
- ROUGE-W:表示带权最长公共子序列 LCS (W-LCS) 的匹配程度,连续子串越长则权重越大
- ROUGE-S:表示跳字模型 (skip-gram) 的匹配程度
- ROUGE-SU:表示跳字模型 (skip-gram) 以及 1 元模型 (unigram) 的匹配程度
每个具体指标都包括 Precision, Recall, F-Score 三项子指标,指标的具体定义详见这篇论文 ROUGE: A Package for Automatic Evaluation of Summaries。
ROUGE 一键安装
官方的 ROUGE 评测工具 ROUGE-1.5.5.pl 是用 Perl 脚本写的,每次评测都需要写 xml 配置文件,使用起来比较麻烦。
这里推荐一个 Python 包 rouge-metric,安装和配置十分方便,同时提供了 Perl 评测脚本的封装和一套 Python 版本的评测 API。
我们可以直接通过 pip 安装。
pip install rouge-metric
对于 Linux 和 macOS 用户,无需任何配置就能使用;对于 Windows 用户,需要手动安装 Strawberry Perl,并将其二进制目录添加到环境变量 PATH 中,确保命令行执行 perl --version
无报错。
rouge-metric 的使用
使用命令行
我们先将源仓库克隆下来,里面有测试用例。
git clone https://github.com/li-plus/rouge-metric.git
cd rouge-metric
首先测试一下命令行工具,在终端中输入,
rouge-metric sample/hypotheses sample/references -n 2
如果出现了下面的输出,表明安装成功。
---------------------------------------------
A ROUGE-1 Average_R: 0.51822 (95%-conf.int. 0.42105 - 0.61538)
A ROUGE-1 Average_P: 0.55556 (95%-conf.int. 0.44444 - 0.66667)
A ROUGE-1 Average_F: 0.53622 (95%-conf.int. 0.43243 - 0.64000)
---------------------------------------------
A ROUGE-2 Average_R: 0.19519 (95%-conf.int. 0.11765 - 0.27273)
A ROUGE-2 Average_P: 0.21250 (95%-conf.int. 0.12500 - 0.30000)
A ROUGE-2 Average_F: 0.20346 (95%-conf.int. 0.12121 - 0.28572)
---------------------------------------------
A ROUGE-L Average_R: 0.51822 (95%-conf.int. 0.42105 - 0.61538)
A ROUGE-L Average_P: 0.55556 (95%-conf.int. 0.44444 - 0.66667)
A ROUGE-L Average_F: 0.53622 (95%-conf.int. 0.43243 - 0.64000)
命令行工具的选项跟 ROUGE-1.5.5.pl 脚本基本一致,具体使用方法可以参考帮助信息 rouge-metric --help
,以下是一些常用选项:
- -n: 指定整数 N,计算 ROUGE-1 到 ROUGE-N
- -x: 不计算 ROUGE-L(默认是计算 ROUGE-L 的)
- -w: 指定 ROUGE-W 的权重,并计算 ROUGE-W
- -2: 指定 ROUGE-S 的最大跳字距离,并计算 ROUGE-S
- -U: 计算 ROUGE-S 的同时计算 ROUGE-SU,此时必须指定 -2 选项
例如命令 rouge-metric sample/hypotheses sample/references -n 2 -w 1.2 -2 4 -U
将计算 ROUGE-1, ROUGE-2, ROUGE-L, ROUGE-W-1.2, ROUGE-S4, ROUGE-SU4 这些指标。
ROUGE-1.5.5.pl API
在 Python 程序里面同样可以调用官方的 ROUGE-1.5.5.pl 评测脚本,代码如下,
from rouge_metric import PerlRougerouge = PerlRouge(rouge_n_max=3, rouge_l=True, rouge_w=True,rouge_w_weight=1.2, rouge_s=True, rouge_su=True, skip_gap=4)# Load summary results and evaluate
hypotheses = ['how are you\ni am fine', # document 1: hypothesis'it is fine today\nwe won the football game', # document 2: hypothesis
]
references = [['how do you do\nfine thanks', # document 1: reference 1'how old are you\ni am three', # document 1: reference 2
], ['it is sunny today\nlet us go for a walk', # document 2: reference 1'it is a terrible day\nwe lost the game', # document 2: reference 2
]]scores = rouge.evaluate(hypotheses, references)
print(scores)
输出大致如下,不一一列出。
{'rouge-1': {'r': 0.51822, 'r_conf_int': (0.42105, 0.61538),'p': 0.55556, 'p_conf_int': (0.44444, 0.66667),'f': 0.53622, 'f_conf_int': (0.43243, 0.64)},'rouge-2': {...}, 'rouge-3': {...}, 'rouge-l': {...},'rouge-w-1.2': {...}, 'rouge-s4': {...}, 'rouge-su4': {...}
}
Python API
调用 ROUGE-1.5.5.pl 的方法效率较低,而且只能评测英文摘要,对于中文摘要需要构建词表,将文字映射到数字。
rouge-metric 还提供了 ROUGE 指标的一个 Python 实现:PyRouge
,使用方法与 PerlRouge
类似,默认按换行符 \n
分句,按空格分词,可以支持多种语言的摘要评测。
from rouge_metric import PyRouge# Load summary results
hypotheses = ['how are you\ni am fine', # document 1: hypothesis'it is fine today\nwe won the football game', # document 2: hypothesis
]
references = [['how do you do\nfine thanks', # document 1: reference 1'how old are you\ni am three', # document 1: reference 2
], ['it is sunny today\nlet us go for a walk', # document 2: reference 1'it is a terrible day\nwe lost the game', # document 2: reference 2
]]# Evaluate document-wise ROUGE scores
rouge = PyRouge(rouge_n=(1, 2, 4), rouge_l=True, rouge_w=True,rouge_w_weight=1.2, rouge_s=True, rouge_su=True, skip_gap=4)
scores = rouge.evaluate(hypotheses, references)
print(scores)
输出大致如下,
{'rouge-1': {'r': 0.5182186234817814,'p': 0.5555555555555556,'f': 0.5362379555927943},'rouge-2': {...}, 'rouge-4': {...}, 'rouge-l': {...},'rouge-w-1.2': {...}, 'rouge-s4': {...}, 'rouge-su4': {...}
}
分句和分词还可以进一步定制化,具体可以参考 rouge.evaluate_tokenized
方法。
参考资料
[1]: ROUGE: A Package for Automatic Evaluation of Summaries, https://www.aclweb.org/anthology/W04-1013/
[2]: rouge-metric, https://github.com/li-plus/rouge-metric
ROUGE 简易安装教程相关推荐
- OpenStack简易安装教程--Havana版本
本文根据OpenStack官方安装教程<openstack-install-guide-apt-havana>,翻译并重新整理成简易版的安装教程,安装了keystone.glance.no ...
- npm,vue简易安装教程
npm,vue安装教程 1.下载node.js 直接去官网下载就好:Node.js 官网 点进去有两个选项,一个是LTS版本,一个是Current版本,下载LTS版本就好. LTS是长期支持(Long ...
- Ubuntu16.04环境下PyTorch简易安装教程
安装NVIDIA GPU显卡驱动 如果需要安装cuda版本的PyTorch,电脑也有独立显卡的时候,一般需要更新一下Ubuntu独立显卡驱动.否则即使安装了cuda版本的PyTorch也没办法使用GP ...
- mysql5.7安装教程centos_MySQL5.7版CentOS系统简易安装教程
这一篇教程,我们一起来完成MySQL在CentOS系统中的安装. 1.下载MySQL(Community版)RPM安装源. 如果没有安装wget,需要先执行命令安装. 执行命令: yum -y ins ...
- Kubuntu简易安装教程(压缩磁盘版)
所有文件都在这个链接的文件夹里面 所需文件 - 123云盘https://www.123pan.com/s/DLbDVv-y7DfA 1.下载系统和Refus 点进去下载这两个 2.制作U盘启动盘 假 ...
- php最简易安装教程
今天来讲讲如何搭建php的安装环境吧,顺便解决一下,php效果查看步骤繁琐的问题. 其实安装php网上都把他给复杂化了,我来讲一个最简易的方法. 一,xampp php运行需要Apache+MySQL ...
- CUDA简易安装教程
我的当前配置是Win10+GTX1060,大部分的笔记本电脑其实都是独立显卡,不需要太多的检查吧,如果电脑比较特殊就检查一下自己的硬件设备是否完全支持,CUDA版本应该都差不多,我就选择11.0来安装 ...
- openfiler php,Openfiler - 开源存储管理平台 (CN) | Openfiler 简易安装教程
1.开始安装 将Openfiler的安装光盘放入光驱,启动计算机,出现如下画面. Openfiler安装模式有图形界面安装模式和文本界面安装模式,按回车进入图形界面安装模式. 按回车键后,出现光驱测试 ...
- phoenix简易安装教程
Phoenix的团队用了一句话概括Phoenix:"We put the SQL back in NoSQL" 意思是:我们把SQL又放回NoSQL去了!这边说的NoSQL专指HB ...
最新文章
- 用Leangoo敏捷开发工具如何管理用户故事?
- C语言 输入中文语句并按倒叙将它输出
- SqlParameter参数化查询
- 记一次项目中由id类型引起的bug
- jhsdb:JDK 9的新工具
- 在Java8中包装设计模式
- Apache 查看连接数
- vim YouCompleteMe
- HTML sublime :Please wait a bit while PyV8 binary is being downloaded 及代码和注释颜色 ,大小调节
- oracle DBTIMEZONE时区调整
- 本人亲测,实用安装Oracle VM VirtualBox教程
- 推荐一个图片在线生成链接的网站
- 服务器信号标识是什么意思,手机信号栏的这些“符号”是什么意思,你知道吗?...
- SRT编码器之Rendezvous模式详解
- python正版软件多少钱_正版数据库软件需要多少钱
- Arduino实时时钟设计(TM1637数码管显示)
- 使用了 23 的 Java 真的收费了吗?
- 微信小程序之自定义组件(微信小程序完结)
- 技术博客|第4期:个性化视频搜索引擎简介
- 微信识别二维码下载不了app