1

我正在尝试安装 pyrouge,并且我运行了这段代码(在这个repo之后)

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:\Users\cerdas\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
    execfile(filename, namespace)

  File "C:\Users\cerdas\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.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
4

3 回答 3

0

转到您的存储库(您从中克隆的文件夹)。现在进入pyrouge/base.py并确保变量ROUGE_EVAL_HOME指向 .tools/ROUGE-1.5.5尝试通过复制文件路径手动输入整个目标,然后如果它有效,请尝试使用os模块使其更具动态性。您需要告诉您的代码指向存储库中的 ROUGE 包,而不是您从中获得的包pip install pyrouge

于 2018-09-14T07:18:22.750 回答
0

以下说明在 Windows 10 和 python 3.7x32 上进行了测试

请在Anders Johannsen的存储库中下载您的项目 pyrouge 。没有安装的想法pip install pyrouge

为了解决这个问题,我必须在命令行构建并运行时进行一些小修改ROUGE-1.5.5.pl。在 windows 中,除了需要将 PERL.exe 添加到环境变量之外,还需要更改class Rouge155()文件中的代码\pyrouge\rouge.py

  1. 打开文件代码\pyrouge\rouge.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 步中的问题,但此步骤仅适用于pyrouge安装通过pip install rouge,在其他作者Benjamin Heinzerling的存储库的实现中。

您正在尝试使用作者Anders Johannsen的存储库中可用的版本。他的实现具有带有您评论过的参数的类n_words=100,但仅在他的类版本中 Rouge155(),而她不在 Python 包索引 (PyPI) 中。

PS:抱歉有任何错误,我的英语中等。

于 2019-01-05T22:27:28.610 回答
0

您需要导出环境变量:ROUGE_EVAL_HOME

文档

假设工作的 ROUGE-1.5.5。安装时,使用以下命令告诉 pyrouge ROUGE 路径:

pyrouge_set_rouge_path /absolute/path/to/ROUGE-1.5.5/directory

于 2018-09-14T06:55:12.143 回答