我正在尝试安装 pyrouge,我运行了这段代码(遵循此存储库(
from pyrouge import Rouge155
from pprint import pprint
ref_texts = {'A': "Poor nations pressurise developed countries into granting trade subsidies.",
'B': "Developed countries should be pressurized. Business exemptions to poor nations.",
'C': "World's poor decide to urge developed nations for business concessions."}
summary_text = "Poor nations demand trade subsidies from developed nations."
rouge = Rouge155(n_words=100)
score = rouge.score_summary(summary_text, ref_texts)
pprint(score)
但是我得到了一些错误,回溯显示如下:
Traceback (most recent call last):
File "<ipython-input-116-94aea372ee05>", line 1, in <module>
runfile('C:/Users/cerdas/Documents/Bil/Lat/rouge.py', wdir='C:/Users/cerdas/Documents/Bil/Lat')
File "C:UserscerdasAnaconda3libsite-packagesspyderutilssitesitecustomize.py", line 705, in runfile
execfile(filename, namespace)
File "C:UserscerdasAnaconda3libsite-packagesspyderutilssitesitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/cerdas/Documents/Bil/Lat/rouge.py", line 10, in <module>
rouge = Rouge155(n_words=100)
TypeError: __init__() got an unexpected keyword argument 'n_words'
这里是__init__.py
代码
from pyrouge.base import Doc, Sent
from pyrouge.rouge import Rouge155
和调用的函数Rouge155
class Rouge155(object):
def __init__(self, rouge_home=ROUGE_EVAL_HOME, n_words=None, stem=False, keep_files=False):
self._stem = stem
self._n_words = n_words
self._discover_rouge(rouge_home)
self._keep_files = keep_files
您需要导出环境变量:ROUGE_EVAL_HOME
从文档中:
假设 ROUGE-1.5.5. 安装工作正常,请使用以下命令告诉 pyrouge ROUGE 路径:
pyrouge_set_rouge_path /absolute/path/to/ROUGE-1.5.5/directory
转到您的存储库(您从中克隆此存储库的文件夹(。现在进入pyrouge/base.py
并确保变量ROUGE_EVAL_HOME
指向tools/ROUGE-1.5.5
。尝试通过复制文件路径手动输入整个目标,然后如果它有效,请尝试使用os
模块使其更加动态。您需要告诉您的代码指向存储库中的 ROUGE 包,而不是您从pip install pyrouge
获得的包
以下说明已在Windows 10和python 3.7x32上进行了测试
请在存储库中下载您的项目 pyrouge 安德斯·约翰森。没有安装的想法pip install pyrouge
.
为了解决,我必须在构建命令行的那一刻进行一个小的修改,并将ROUGE-1.5.5.pl
运行。在窗口中,除了您需要将 PERL.exe 添加到环境变量中,但您还需要更改文件代码pyrougerouge.py
中的class Rouge155()
。
- 打开文件代码
pyrougerouge.py
转到函数def _run_rouge(self)
(在我写这个答案时,它位于第 96 行(。 - 转到第 122 行,
return check_output([self._rouge_bin] + options)
注释此行 - 就地添加此代码:
command = [self._rouge_bin] + options
command.insert(0, 'perl ')
return check_output(command)
Franck Dernoncourt在你回答的问题如何在Microsoft Windows上安装Python包pyrouge?在步骤7中解决了问题,但此步骤仅适用于通过pip install rouge
安装pyrouge
,在另一位作者Benjamin Heinzerling的存储库的实现中。
并且您正在尝试使用作者安德斯·约翰森存储库中可用的版本。他的实现具有您n_words=100
注释的参数的类,但仅在他的类Rouge155()
版本中,而不是在Python包索引(PyPI(中。
PS:对不起,任何错误,我的英语是中等的。