前言
这次做自然语言处理的作业,是关于多文档摘要生成的,其中对于生成的摘要进行效果测评需要用到ROUGE(不是那个文本高亮的插件!)。没想到安装这个软件这么麻烦,于是写个文章造福后人了。
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等,并提出了四个测量标准ROUNG-N, ROUNG-L, ROUNG-W, ROUNG-S。
该包用Perl语言编写,目前版本为ROUGE-1.5.5。
ROUGE安装教程
说实话ROUGE真心是难装,按理说在Ubuntu下几行命令就应该要安装成功一个程序,可是ROUGE完全没有体现这一点。
安装要求
1.需要安装perl解释器(ubuntu 系统已自带, 通过perl -v可查看当前版本);
2.需要额外安装perl解释器的XML::DOM模块以及DB_File模块,而XML::DOM的安装又需要XML::RegExp、XML::Parser、LWP::UserAgent和XML::Parser::PerlSAX模块(对,就是这么恶心);
3.设置系统环境变量ROUGE_EVAL_HOME,需要设置为ROUGE安装目录下词库data所在路径
获取方法
现在不知道官网是哪个了,不过可以从github(https://github.com/summanlp/evaluation/tree/master/ROUGE-RELEASE-1.5.5)上获取,也可以从我的百度网盘(https://pan.baidu.com/s/1qXQpBp6#list/path=/)(1.5.5版本)获取,另外其他依赖的模块包我也放进这个网盘链接里了,可以一起下载省去寻找的麻烦。
安装过程
step1: 检查perl版本
因为DOM要求perl版本要在5.6.0以上,所以先在终端用perl -v查看一下当前版本,版本较低的话先升级一下perl。
step2: 安装XML::Parser
假设使用我百度网盘里的文件,将XML-Parser-2.44.tar解压到当前文件夹或指定路径。
tar -zxvf ROUGE-1.5.5.tar.gz
进入解压得到的文件夹并开始安装。
cd XML-Parser-2.44
perl Makefile.PL
make
make test # if %%%Result看到PASS为成功就继续,否则仔细看哪个case报错了
sudo make install # if %%%必须要sudo,否则可能没有读写文件的权限
step3: 安装XML::RegExp
参考step2安装
step4: 安装LWP::UserAgent
LWP::UserAgent是libwww-perl中的一部分,直接用apt-get安装就好啦。
sudo apt-get update
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的安装包路径,用perl安装即可。如果在make test的时候还报错如下:
Test Summary Report
-------------------
t/build_dom.t (Wstat: 512 Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 2
Parse 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
step7: 安装DB_File
先获得DB_File的安装包,可以用如下命令,也可以从我给的网盘链接里直接下载。
sudo wget http://www.cpan.org/authors/id/P/PM/PMQS/DB_File-1.835.tar.gz
接下来如同step2,进入文件夹后使用perl命令安装。
cd DB_File-1.835
perl Makefile.PL
make
make test # if %%%看到PASS为成功
sudo make install
在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
step8: 设置ROUGE环境变量
设置环境变量ROUGE_EVAL_HOME,假设你解压的ROUGE-1.5.5在/usr/local/RELEASE-1.5.5,则:
sudo gedit etc/profile %%%这样对所有用户都有效,若希望仅对当前用户有效则输入sudo gedit ~/.profile
在跳出来的文本编辑器末尾添加:
export ROUGE_EVAL_HOME="$ROUGE_EVAL_HOME:/usr/local/ROUGE-1.5.5/data"
至此就全部大功告成啦!