在文本摘要领域,经常使用的评测标准即为 pyrouge ,几经尝试,终于安装成功,走了不少弯路,在此总结一下。
首先一定要耐心,根据步骤一步一步来,胜利就在前方!
一般 Mac 和 Linux 都有自带的 perl,使用 perl -v
检查其版本, 若版本较低可先升级 perl。
使用 cpanm 安装 perl 模块,没有的话先 brew install cpanm / apt install cpanm
。
接下来就容易多了:
1)sudo cpan XML::DOM
, 注意使用 sudo 安装。
2)sudo cpan XML::Parser
3)sudo cpan XML::RegExp
4)sudo cpan XML::Parser::PerlSAX
1)下载:git clone https://github.com/summanlp/evaluation
2)配置:export ROUGE_EVAL_HOME="yourPath/evaluation/ROUGE-RELEASE-1.5.5/data/"
,注意路径填写你 clone 下来的文件位置,直至 data 目录。
3)到文件夹下:
cd ROUGE-RELEASE-1.5.5
vim ROUGE-1.5.5.pl
,查看第一行 perl 路径是否正确。
默认为#!/usr/bin/perl -w
,使用which perl
检查结果是否一致,不一致则修改。
4)执行测试文件:perl runROUGE-test.pl
,不报错则安装成功!
rouge 安装成功后,就很简单了:
pip install pyrouge
pyrouge_set_rouge_path yourPath/evaluation/ROUGE-RELEASE-1.5.5
python -m pyrouge.test
,程序有问题,会报错,可以自己写程序测试一下。
创建一个测试文件夹 test ,test 下面包含 rouge.py、candidate/ 001_candidate.txt 、reference/001_reference.txt。注意后面两个文件的文件名中的数字部分需要一致。
from pyrouge import Rouge155
r = Rouge155()
r.system_dir = './candidate/'
r.model_dir = './reference/'
r.system_filename_pattern = '(\d+)_candidate.txt'
r.model_filename_pattern = '#ID#_reference.txt'
output = r.convert_and_evaluate()
print(output)
output_dict = r.output_to_dict(output)
在两个测试文件下各输入一行英文句子即可。处理中文会报错 ~~~
若实在安装不成功,可以先使用这个 python 实现的 Rouge 代替,使用很简单,可以直接看 git 上的教程:https://github.com/pltrdy/rouge