pyrouge: __init __ () получил неожиданный аргумент ключевого слова 'n_words' - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь установить 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:\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

Ответы [ 3 ]

0 голосов
/ 14 сентября 2018

Перейдите в свой репозиторий (ваша папка, в которую вы клонировали это из).Теперь перейдите к pyrouge/base.py и убедитесь, что переменная ROUGE_EVAL_HOME указывает на tools/ROUGE-1.5.5. Попробуйте вручную ввести все назначение, скопировав путь к файлу, а затем, если он работает, попробуйте использовать модуль os, чтобы сделать его более динамичным.Вы должны указать свой код, чтобы он указывал на пакет ROUGE, который находится в вашем хранилище, а не на тот, который вы получаете от pip install pyrouge

0 голосов
/ 06 января 2019

Следующие инструкции были протестированы на Windows 10 и Python 3.7x32.

Загружайте свой проект pyrouge в хранилище Андерса Йоханнсена .Не требуется установка для pip install pyrouge.

Чтобы решить эту проблему, мне пришлось внести небольшую модификацию в тот момент, когда командная строка построена и будет работать ROUGE-1.5.5.pl.В Windows, кроме того, вам нужно добавить PERL.exe в переменные окружения, но вам также потребуется изменить class Rouge155() в коде файла \pyrouge\rouge.py.

  1. Открыть код файла \pyrouge\rouge.py goк функции def _run_rouge(self) (она находится в строке 96 на момент написания этого ответа).
  2. Перейти к строке 122, прокомментировать эту строку return check_output([self._rouge_bin] + options)
  3. Добавить этот код на месте:command = [self._rouge_bin] + optionscommand.insert(0, 'perl ')return check_output(command)

Франк Дернонкур в вашем ответе на вопрос Как установить Pyrou пакет Python в Microsoft Windows? решил проблему в шаге 7 , но этот шаг работает только в pyrouge, установленном через pip install rouge, в реализации репозитория другого автора, Benjamin Heinzerling .

А вы пытаетесь использовать доступную версию репозитория автора Андерс Йоханнсен .Его реализация имеет класс с аргументами, которые вы прокомментировали n_words=100, но только в его версии класса Rouge155(), а ее нет в Python Package Index (PyPI).

PS: Извините за любыеошибка, мой английский средний.

0 голосов
/ 14 сентября 2018

Вам необходимо экспортировать переменную среды: ROUGE_EVAL_HOME

Из документов :

Предполагается, что работает ROUGE-1.5.5.установка, сообщите pyrouge путь ROUGE с помощью этой команды:

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

...