我正在尝试安装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
答案 0 :(得分:0)
您需要导出环境变量:ROUGE_EVAL_HOME
来自docs:
假设ROUGE-1.5.5正常工作。安装,使用以下命令告诉pyrouge ROUGE路径:
pyrouge_set_rouge_path /absolute/path/to/ROUGE-1.5.5/directory
答案 1 :(得分:0)
以下说明已在Windows 10和python 3.7x32上进行了测试
请勿将项目pyrouge下载到
Anders Johannsen。没有pip install pyrouge
的安装想法。
要解决这个问题,我必须在构建命令行并运行ROUGE-1.5.5.pl
的那一刻做一下小修改。在Windows中,除了需要将PERL.exe添加到环境变量外,还需要更改文件代码class Rouge155()
中的\pyrouge\rouge.py
。
\pyrouge\rouge.py
转到函数def _run_rouge(self)
(在我编写此答案时位于第96行)。return check_output([self._rouge_bin] + options)
进行注释command = [self._rouge_bin] + options
command.insert(0, 'perl ')
return check_output(command)
Franck Dernoncourt在问题 How to install the Python package pyrouge on Microsoft Windows? 的答案中在第7步中解决了问题,但是此步骤仅在{{1 }}在其他作者Benjamin Heinzerling的存储库的实现中安装了pyrouge
。
您正在尝试使用作者Anders Johannsen的存储库中可用的版本。他的实现具有带有您注释过的参数pip install rouge
的类,但是仅在他的类n_words=100
的版本中,而她不在Python Package Index(PyPI)中。
P.S:抱歉,我的英语中等。