Nlp 如何加载rasa模型并在其上运行推理

Nlp 如何加载rasa模型并在其上运行推理,nlp,rasa-nlu,rasa-core,Nlp,Rasa Nlu,Rasa Core,我已经用100条记录训练了我的rasa模型,这些记录都被正确地标记了,示例代码如下所示 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

我已经用100条记录训练了我的rasa模型,这些记录都被正确地标记了,示例代码如下所示

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"))
(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'}
当我执行这个命令时,我得到一个类似这样的输出

{'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'}
但是当我执行下面的代码时,在模型上运行推理

$ 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"))
我得到如下输出

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"))
(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'}
这是我在上面的代码和下面的代码中试图推断的同一个示例,但我可以在上面的代码中获得信心,即在培训之前,而不是在对保存的模型运行推断时

有谁能帮我解决我所犯的错误,并在这方面帮助我


提前感谢。

在第二个代码段中,您应该从第一个代码段中创建的model_目录加载解释器,但是您可以通过将未经培训的Trainer持久保存在那里,用未经培训的model_目录覆盖model_目录。因此,您应该将trainer从第二个代码段中删除,并直接从路径中加载解释器

Thank@Vova Vv,它的工作非常有魅力。我真傻。