как загрузить модель rasa и выполнить вывод поверх нее - PullRequest
0 голосов
/ 09 июля 2019

Я обучил свою модель Rasa 100 записям, которые правильно помечены, и пример кода выглядит следующим образом.

from rasa_nlu.training_data  import load_data
from rasa_nlu.config import RasaNLUModelConfig
from rasa_nlu.model import Trainer
from rasa_nlu import config
from rasa_nlu.model import Metadata, Interpreter

train_data = load_data('rasa_dataset.json')
trainer = Trainer(config.load("config_spacy.yaml"))

trainer.train(train_data)
model_directory = trainer.persist('projects/')
interpreter = Interpreter.load(model_directory)
print(interpreter.parse(u"ji bilkul han ji bilkul isliye payment nahi kara tha humne kitne mein likha aapko this rupay discount de dia to phir aap jama kar dena"))

когда я выполняю это, я получаю что-то вроде этого

{'intent': None, 'entities': [{'start': 93, 'end': 108, 'value': 'discount de dia', 'entity': 'Waiver else Wont Pay', 'confidence': 0.4628098345881119, 'extractor': 'CRFEntityExtractor'}], 'intent_ranking': [], 'text': 'ji bilkul han ji bilkul isliye payment nahi kara tha humne kitne mein likha aapko this rupay discount de dia to phir aap jama kar dena'}

но когда я запускаю просто вывод модели как-in, когда я выполняю следующий код.

$ cat inference_rasa.py
from rasa_nlu.training_data  import load_data
from rasa_nlu.config import RasaNLUModelConfig
from rasa_nlu.model import Trainer
from rasa_nlu import config
from rasa_nlu.model import Metadata, Interpreter

trainer = Trainer(config.load("config_spacy.yaml"))
model_directory = trainer.persist('/home/vz/goutham_Openseq/ner/rasa/projects/default/model_20190706-004103/')
interpreter = Interpreter.load(model_directory)
print(interpreter.parse(u"ji bilkul han ji bilkul isliye payment nahi kara tha humne kitne mein likha aapko this rupay discount de dia to phir aap jama kar dena"))

Я получаю вывод следующим образом.

(gp) vz@andromeda:~/goutham_Openseq/ner/rasa$ python inference_rasa.py
{'intent': None, 'entities': [], 'intent_ranking': [], 'text': 'ji bilkul han ji bilkul isliye payment nahi kara tha humne kitne mein likha aapko this rupay discount de dia to phir aap jama kar dena'}

Это тот же пример, который я пытаюсь вывести в приведенном выше коде и в приведенном ниже коде, но я смог получить уверенность в приведенном выше коде, т. Е. Перед тренировкой, а не тогда, когда просто запустил логический вывод для сохраненной модели.

Может ли кто-нибудь помочь мне в ошибке, которую я делаю, и помочь мне в этом отношении.

Заранее спасибо.

1 Ответ

0 голосов
/ 11 июля 2019

Во втором фрагменте вы должны загрузить интерпретатор из model_directory, созданного в первом фрагменте, но вы переопределите model_directory неподготовленной моделью, сохранив там неподготовленного Trainer. Поэтому вы должны удалить трейнер из второго фрагмента и загрузить интерпретатор прямо с пути

...