1 pyrough 介绍
pyrouge 是一个评估文本匹配程度的工具,可以计算两个文本的 ROUGE 得分。
官网地址:pyrouge官方网站,或者github地址
不过安装过成就太麻烦了,下面具体介绍安装过程。
2 安装过程
本文参考 stack overflow 的一个回答:How to install the Python package pyrouge on Microsoft Windows?
经过尝试,实现在 ubuntu16.04 上的安装配置,步骤如下:
(1)pip 安装 pyrouge。
sudo pip install pyrouge
(2)下载 github 上的这个工程,解压在任意路径,比如路径为 /pack/pyrouge-master。
(3)执行如下命令:
pyrouge_set_rouge_path /pack/pyrouge-master/tools/ROUGE-1.5.5/
(4)进入文件夹 ROUGE-1.5.5 的 data 中
cd /pack/pyrouge-master/tools/ROUGE-1.5.5/data/
删除 WordNet-2.0.exc.db:
rm WordNet-2.0.exc.db
再执行下面命令:
perl WordNet-2.0-Exceptions/buildExeptionDB.pl ./WordNet-2.0-Exceptions ./smart_common_words.txt ./WordNet-2.0.exc.db
(5)进行如下测试(不要尝试 python -m pyrouge 这个会报错的)
创建测试文件夹 test,在 test 目录下创建程序 rouge.py,再创建两个文件夹,分别是 model_summaries 和 system_summaries, 并在 model_summaries 中创建文件 text.A.001.txt,在 system_summaries 中创建 text.001.txt
test:
│ rouge.py
│
├───model_summaries
│ text.A.001.txt
│
└───system_summaries
text.001.txt
在 rouge.py 中写入如下程序:
from pyrouge import Rouge155
r = Rouge155()
r.system_dir = 'system_summaries'
r.model_dir = 'model_summaries'
r.system_filename_pattern = 'text.(\d+).txt'
r.model_filename_pattern = 'text.[A-Z].#ID#.txt'
output = r.convert_and_evaluate()
print(output)
output_dict = r.output_to_dict(output)
在文件 text.A.001.txt 中写入如下内容:
preprocess my summaries, then run ROUGE
在文件 text.001.txt 中写入如下内容:
I only want to preprocess my summaries and then run ROUGE on my own
然后运行 rouge.py
python rouge.py
如果运行正确,将得到如下结果:
3 其他问题
在我的笔记本上按照上述的方法配置成功,但是在谷歌的 Colab 中配置失败,需要增加一步,需要安装 Perl 解释器的XML::DOM模块,可以在第四步之后执行下面的命令:
sudo cpan install XML::DOM
我在安装过程未遇到什么错误,所以若遇到什么错误我目前也不知道如何解决,请自行谷歌。