ROUGE是由微软亚洲研究院知识挖掘组Chin-Yew Lin 研发的,用于摘要的自动评价,通过比较机器自动生成的摘要与人工生成的摘要中重叠单元的数量,来评价机器自动生成的摘要。该方法中考虑的重叠单元有n-gram, word sequences, word-pairs等,并提出了四个测量标准ROUGE-N, ROUGE-L, ROUGE-W, ROUGE-S。
该包用Perl语言编写,目前版本为ROUGE-1.5.5。

pyrouge是用于ROUGE摘要评估包的Python包装器,要安装pyrouge首先需要安装ROUGE。

一、ROUGE安装

1、安装包下载

安装ROUGE所需包我已经整理上传,可以点击下载。

2、具体安装

Step1:检查perl

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

Step2:Pip安装部分包

sudo apt-get update
sudo apt-get install libwww-perl
sudo apt-get install libxml-perl

Step3:安装XML-Parser

1)解压文件

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

2)进入解压的文件夹进行安装

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

Step4:安装XML-RegExp

参考Step3方法安装

Step5:安装XML-DOM

参考Step3方法安装,如果在make test的时候报错如下:

Test Summary Report
-------------------
t/build_dom.t       (Wstat: 512 Tests: 1 Failed: 1)Failed test:  1Non-zero exit status: 2Parse errors: Bad plan.  You planned 2 tests but ran 1.
Files=21, Tests=128,  2 wallclock secs ( 0.07 usr  0.01 sys +  1.56 cusr  0.10 csys =  1.74 CPU)
Result: FAIL
Failed 1/21 test programs. 1/128 subtests failed.
Makefile:968: recipe for target 'test_dynamic' failed
make: *** [test_dynamic] Error 255

输入下面命令修复即可:

sudo apt-get install -f
sudo apt-get update --fix-missing

Step6:安装DB_File

参考Step3方法安装,在make的时候如果出错如下:

version.c:30:16: fatal error: db.h: 没有那个文件或目录
compilation terminated.
Makefile:360: recipe for target 'version.o' failed
make: *** [version.o] Error 1

说明未安装Berkeley DB library,或安装不正确。解决方法如下:

sudo apt-get install libdb-dev

如果还没有用,可能是没有安装对应的版本,先使用:

sudo apt-cache search libdb

查看当前Berkeley DB library 的版本,然后再安装对应的版本

sudo apt-get install libdb5.3-dev

Step7:设置ROUGE环境变量

设置环境变量ROUGE_EVAL_HOME,假设你解压的ROUGE-1.5.5在/usr/local/RELEASE-1.5.5,则:

sudo vim /etc/profile

在文件末尾加上:

export ROUGE_EVAL_HOME="$ROUGE_EVAL_HOME:/usr/local/RELEASE-1.5.5/data"

Step8: 测试安装是否成功

以上步骤都进行完毕后,可以进ROUGE文件所在路径(即RELEASE-1.5.5),然后运行一下runROUGE-test.pl文件。

perl runROUGE-test.pl

如果有以下输出,且sample-output路径下各个文件都有内容的话,基本是安装成功了。

../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-a.out
../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a -m ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-a-m.out
../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a -m -s ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-a-m-s.out
^C../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -l 10 -a ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-l10-a.out
../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -l 10 -a -m ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-l10-a-m.out
../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -l 10 -a -m -s ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-l10-a-m-s.out
../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -b 75 -a ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-b75-a.out
../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -b 75 -a -m ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-b75-a-m.out
../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -b 75 -a -m -s ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-b75-a-m-s.out
../ROUGE-1.5.5.pl -e ../data -3 HM -z SIMPLE DUC2002-BE-F.in.26.lst 26 > ../sample-output/DUC2002-BE-F.in.26.lst.out
../ROUGE-1.5.5.pl -e ../data -3 HM DUC2002-BE-F.in.26.simple.xml 26 > ../sample-output/DUC2002-BE-F.in.26.simple.out
../ROUGE-1.5.5.pl -e ../data -3 HM -z SIMPLE DUC2002-BE-L.in.26.lst 26 > ../sample-output/DUC2002-BE-L.in.26.lst.out
../ROUGE-1.5.5.pl -e ../data -3 HM DUC2002-BE-L.in.26.simple.xml 26 > ../sample-output/DUC2002-BE-L.in.26.simple.out
../ROUGE-1.5.5.pl -e ../data -n 4 -z SPL DUC2002-ROUGE.in.26.spl.lst 26 > ../sample-output/DUC2002-ROUGE.in.26.spl.lst.out
../ROUGE-1.5.5.pl -e ../data -n 4 DUC2002-ROUGE.in.26.spl.xml 26 > ../sample-output/DUC2002-ROUGE.in.26.spl.out

二、pyrouge安装

下面是最可靠的安装方法,采用其他方法可能会遇到各种难以解决的BUG。

git clone https://github.com/bheinzerling/pyrouge
cd pyrouge
python setup.py install

安装完成后可以运行下面命令,看到OK即安装成功

python -m pyrouge.test

参考

  • 在Ubuntu下配置pyrouge
  • Install Rouge and Pyrouge for python 2.7 (conda virtual env) on Linux 64
  • AssertionError when installing pyrouge - Github
  • AssertionError when installing pyrouge - Stackoverflow

ROUGE和pyrouge的安装相关推荐

  1. Install Rouge and Pyrouge for python 2.7 (conda virtual env) on Linux 64

    Who to complain to about this terrible package???? Its official website was down, its bugs and excep ...

  2. 安装rouge和pyrouge

    先rouge https://blog.csdn.net/Hay54/article/details/78744912 再pyrouge https://blog.csdn.net/MerryCao/ ...

  3. python中rouge是什么程序_rouge与pyrouge使用事项

    1.rouge介绍 ROUGE评价方法与pyramid,BLUE方法一起作为评价自动摘要质量的内部评价方法的三大中流砥柱. ROUGE:recall-oriented understand for g ...

  4. pyrouge和rouge在Linux上的安装方法以及结果比较

    诸神缄默不语-个人CSDN博文目录 这里的pyrouge安装的是这个:pyrouge · PyPI,也就是这个项目:bheinzerling/pyrouge: A Python wrapper for ...

  5. 【NLP】文本自动摘要任务的心得总结

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送 作者:邱震宇(华泰证券股份有限公司 算法工程师) 知乎专栏:我的ai之路 原文链接,点击 ...

  6. 文本自动摘要任务的初步总结

    由于最近需要进行组内的知识分享,因而借此机会将文本摘要的一些基本知识以及本人的一些实践经验做成文稿,一方面用来组内分享,一方面也是总结一下过去在该领域的一些心得体会.因个人的能力所限,本文实质上是对文 ...

  7. ROUGE 简易安装教程

    ROUGE 简介 ROUGE 是一个系列的文本摘要评测指标,可用于评估机器摘要和人工摘要之间的相似度,主要包括以下具体指标: ROUGE-N:表示 N 元模型 (N-gram) 的匹配程度 ROUGE ...

  8. Rouge的安装与使用

    这个坑实在太深了,总结几位大佬博客,汇总了可能出现的问题.愿为后人照福吧. 步骤 1. 需要安装perl解释器(ubuntu 系统已自带, 通过perl -v可查看当前版本): 2. 需要额外安装pe ...

  9. 常用的ROUGE得分计算Python库(pyrouge,files2rouge,rouge,py-rouge)

    前言 ROUGE得分是文本摘要任务中最常用的自动评测指标,关于rouge得分的计算,可以查看原始论文 https://www.aclweb.org/anthology/W04-1013.pdf 要注意 ...

最新文章

  1. 一步步写一个符合Promise/A+规范的库 1
  2. 3月31日华为鸿蒙,华为鸿蒙OS Beta 3将从3月31日起推送
  3. LNMP下提示File not found问题的解决方法
  4. 模板引擎——Thymeleaf
  5. Docker Review - dockerfile 实战_使用dockerfile制作tomcat镜像
  6. Gson转换导致int转换成double的问题解决
  7. python 重载的实现(single-dispatch generic function)
  8. kudu建表:Not enough live tablet servers to create a table with the requested replication factor 3. 2
  9. 如何看待0.5元可买到身份匹配的人脸数据?
  10. java字符串遮蔽处理_java 字符串处理
  11. 永磁同步电机转子磁链_采用冻结磁导率的瞬态场永磁同步电机交直轴电感计算...
  12. MATLAB 创建不定长数组
  13. bzoj 1036: [ZJOI2008]树的统计Count(树链剖分 点权)
  14. 如何方便手机在线抖音去水印更有热门技巧
  15. linux网络音频播放,通过 PulseAudio 实现局域网音乐播放
  16. Java实现比较APP版本号大小
  17. 一篇文章通俗易懂的让你彻底理解 Java 注解
  18. 3.4.1 在物理层扩展以太网
  19. android 学习笔记③
  20. 04 关于OSPF的环回口

热门文章

  1. 通俗理解torch.distributed.barrier()工作原理
  2. macbook黑屏_MacBook维修 苹果笔记本电脑进水不开机
  3. ffmpeg音视频处理
  4. 位图与普通图片的区别
  5. Linux 基本使用和 web 程序部署
  6. 「表白神器」Python超火隐藏表白图 你能看出来吗?「附源码」
  7. Andrew Ng机器学习课程笔记--week9(下)(推荐系统协同过滤)
  8. 删除了大文件,但是磁盘并没有释放
  9. pyqt win32发送QQ消息
  10. 商米机V2和V1内置打印机说明