问题描述
我希望我的 chatterbot 逻辑适配器在用户的请求低于某个置信度分数时使用默认响应,比如 80%。
from chatterbot import chatbot
chatbot = chatbot(
'Mychatbot',storage_adapter='chatterbot.storage.sqlStorageAdapter',logic_adapters=[
'chatterbot.logic.BestMatch',{
'import_path': 'chatterbot.logic.BestMatch','default_response': 'I am sorry. I am still learning!','maximum_similarity_threshold': 0.80
}
],# database_uri='sqlite:///database.sqlite3'
)
# Training With Own Questions
from chatterbot.trainers import ListTrainer
trainer = ListTrainer(chatbot)
training_data1 = open('training_data/stories.txt').read().splitlines()
training_data2 = open('training_data/places.txt').read().splitlines()
training_data3 = open('training_data/questions.txt').read().splitlines()
training_data4 = open('training_data/personal.txt').read().splitlines()
training_data = training_data1 + training_data2 + training_data3 + training_data4
trainer.train(training_data)
# Training With Corpus
from chatterbot.trainers import chatterbotCorpusTrainer
trainer_corpus = chatterbotCorpusTrainer(chatbot)
trainer_corpus.train(
'chatterbot.corpus.english'
)
我使用以下方法来获取机器人的响应,但它根本没有使用 default_response 值。
def get_bot_response():
userText = request.args.get('msg')
if userText.confidence < maximum_similarity_threshold:
return str(chatbot.default_response)
else:
return str(chatbot.get_response(userText))
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)