не могу получить оценку ROUGE с pyrouge - PullRequest
0 голосов
/ 17 мая 2018

Я проводил эксперимент по обобщению текста.После получения декодированных предложений и ссылочных предложений я использовал 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

Кто-нибудь сталкивался с такой проблемой?Ценю любое предложение!Большое спасибо!

1 Ответ

0 голосов
/ 21 мая 2018

Я обнаружил, что эта проблема была вызвана <s> и </s> в ссылочных предложениях.Я удалил эти символы и в итоге получил оценку ROUGE.

...