pyrouge:__init__() 有一个意想不到的关键字参数'n_words'



我正在尝试安装 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()

  1. 打开文件代码pyrougerouge.py转到函数def _run_rouge(self)(在我写这个答案时,它位于第 96 行(。
  2. 转到第 122 行,return check_output([self._rouge_bin] + options)注释此行
  3. 就地添加此代码:
    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:对不起,任何错误,我的英语是中等的。

相关内容

  • 没有找到相关文章

最新更新