python - 如何使用默认消息让我的 Chatterbot 回复?
问题描述
我希望我的 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))
解决方案
您正在使用chatterbot.logic.BestMatch
两次。
只留下 { } 之间的内容,如下所示:
logic_adapters=[
{
'import_path': 'chatterbot.logic.BestMatch',
'default_response': 'I am sorry. I am still learning!',
'maximum_similarity_threshold': 0.80
}
],
推荐阅读
- excel - 计算最近的较小值
- java - 将 JAR 游戏嵌入 Wordpress 网站
- c - 我在 Visual Studio Code 中不断收到“解析错误”和“找不到”错误
- ios - 如何在 UITextView 中垂直对齐文本
- javascript - 循环多个 iframe 不允许访问 html 元素
- excel - 带有行标签的多维查找(2 行和 1 列)
- windows-server-2012-r2 - 在 Windows Server 2012 r2 上连接到 Oracle 18c XE 时出现问题
- javascript - 检查对象中是否存在键**在任何级别**
- reactjs - 如何防止 npm run build 删除构建中的目录
- javascript - 尝试使用引导程序和 js 对列表进行排序