раса нлу несколько моделей Python - PullRequest
0 голосов
/ 08 июня 2018
def train_nlu(data, configs, model_dir):
    training_data = load_data(data)
    trainer = Trainer(config.load(configs))
    trainer.train(training_data)
    model_directory = trainer.persist(model_dir, fixed_model_name='weathernlu')
    return model_directory


def run_nlu(model_dir):
    interpreter = Interpreter.load(model_dir)
    print(interpreter.parse("hello"))

Я хочу загрузить несколько моделей для запуска.Как я могу использовать Interpreter для загрузки нескольких моделей в моей программе Python?

Ответы [ 2 ]

0 голосов
/ 16 июня 2018

Если вы используете Rasa NLU 0.12.3, вы можете использовать метод merge класса TrainingData.Например

from rasa_nlu.training_data import TrainingData, load_data
from rasa_nlu.model import Trainer
from rasa_nlu import config

training_data = TrainingData()
nlu_trainings = ["data/examples/domain1.md", "data/examples/domain2.md"]
for nlu_training in nlu_trainings:
  training_data = training_data.merge(load_data(nlu_training)))

trainer = Trainer(config.load("sample_configs/config_spacy.yaml"))
trainer.train(training_data)
trainer.persist("./projects/default/")
0 голосов
/ 10 июня 2018

Можно просто сохранить разные модели в разных каталогах, а затем загрузить две разные модели из соответствующих каталогов.

def run_nlu(model_dir):
    interpreter1 = Interpreter.load(model1_dir)
    print(interpreter.parse("hello"))
    interpreter2 = Interpreter.load(model2_dir)
    print(interpreter.parse("hello"))
...