首先,我想说我对这个话题完全不熟悉。我试图用Rasa构建一个Chatbot。在关注YouTube上的教程时:https://www.youtube.com/watch?v=xu6D_vLP5vY&t=514s我遇到了nlu_model.py文件的问题。
因为教程是在不久前制作的,所以进行了一些更改。我尝试了旧版本和新版本,两者都不适用于我。
from rasa_nlu.training_data import load_data
from rasa_nlu import config
from rasa_nlu.model import Trainer
def train_nlu(data, config, 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')
if __name__ == '__main__':
train_nlu('./data/data.json', 'config_spacy.json', './models/nlu')
这是我的nlu_model.py文件
C:\Users\Yannic\Documents\Waetherbot>python nlu_model.py
Traceback (most recent call last):
File "nlu_model.py", line 12, in <module>
train_nlu('./data/data.json', 'config_spacy.json', './models/nlu')
File "nlu_model.py", line 7, in train_nlu
trainer = Trainer(config.load(configs))
AttributeError: 'str' object has no attribute 'load'
这是我的Shell输出。我真的希望能得到一些帮助。
config
是从rasa_nlu
导入的模块,但是你在函数中使用参数config
来遮蔽它。我想你的意思是命名你的函数参数configs
。
固定代码:
from rasa_nlu.training_data import load_data
from rasa_nlu import config
from rasa_nlu.model import Trainer
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')
if __name__ == '__main__':
train_nlu('./data/data.json', 'config_spacy.json', './models/nlu')