Я проводил эксперимент по обобщению текста.После получения декодированных предложений и ссылочных предложений я использовал pyrouge для получения оценки ROUGE, код Python выглядит следующим образом:
from pyrouge import Rouge155
r=Rouge155()
r.model_filename_pattern = '#ID#——reference.txt'
r.system_filename_pattern = '(\d+)_decoded.txt'
r.model_dir = '/home/test/reference'
r.system_dir = '/home/test/decoded'
rouge_results = r.convert_and_evaluate()
print rouge_results
output_dict = r.output_to_dict(output)
, но, похоже, это не сработало, он сообщил о subprocess.CalledProcessError
и
Illegal division by zero at /.../.../ROUGE/RELEASE-1.5.5/ROUGE-1.5.5.pl
Вот конкретная информация об ошибке:
Traceback (most recent call last):
File "rouge.py", line 28, in <module>
rouge_results = r.convert_and_evaluate()
File "/home/username/env/local/lib/python2.7/site-packages/pyrouge-0.1.3.py2.7.egg/pyrouge/Rouge155.py", line 364, in convert_and_evaluate
rouge_output = self.evaluate(system_id, rouge_args)
File "/home/username/env/local/lib/python2.7/site-packages/pyrouge-0.1.3.py2.7.egg/pyrouge/Rouge155.py", line 339, in evaluate
rouge_output = check_output(command).decode("UTF-8")
File "/usr/lib/python2.7/subprocess.py", line 574, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '[u'/home/username/env/ROUGE/RELEASE-1.5.5/ROUGE-1.5.5.pl', '-e', '/home/username/env/ROUGE/RELEASE-1.5.5/data', '-c', '95','-2', '-1', '-U', '-r', '1000', '-n','4','-w','1.2','-a',u'-m', u' /tmp/tmpG9VKo9/rouge_conf.xml']' returned non-zero exit status 255
Кто-нибудь сталкивался с такой проблемой?Ценю любое предложение!Большое спасибо!