我正在尝试在Python chatterbot中组合多个逻辑适配器。我似乎无法做对。我试过这个:
english_bot = ChatBot("English Bot",
storage_adapter="chatterbot.storage.SQLStorageAdapter",
multi_logic_adapter = [
"chatterbot.logic.MathematicalEvaluation",
"chatterbot.logic.TimeLogicAdapter",
"chatterbot.logic.BestMatch"]
)
只有BestMatch似乎有效 我试过这个:
english_bot = ChatBot("English Bot",
storage_adapter="chatterbot.storage.SQLStorageAdapter",
logic_adapter = [
"chatterbot.logic.multi_adapter.MultiLogicAdapter",
"chatterbot.logic.MathematicalEvaluation",
"chatterbot.logic.TimeLogicAdapter",
"chatterbot.logic.BestMatch"]
)
但是我得到了这个错误:AttributeError:'NoneType'对象没有属性'confidence',并且没有一个logic_adapters似乎是活动的。
谢谢, 草本植物
答案 0 :(得分:0)
BestMatch
适配器是chatterbot的默认适配器,您无需明确指定。更多信息http://chatterbot.readthedocs.io/en/stable/logic/index.html#best-match-adapter
你的代码应该是这样的
# -*- coding: utf-8 -*-
from chatterbot import ChatBot
bot = ChatBot(
"English Bot",
logic_adapters=[
"chatterbot.logic.MathematicalEvaluation",
"chatterbot.logic.TimeLogicAdapter"
]
)
# Print an example of getting one math based response
response = bot.get_response("What is 4 + 9?")
print(response)
# Print an example of getting one time based response
response = bot.get_response("What time is it?")
print(response)
答案 1 :(得分:0)
MultiLogicAdapter正在自动处理logic_adapters=[]
中的每个逻辑适配器。您可能需要调整置信度。
有关MultiLogicAdapter的更多信息,请访问: http://chatterbot.readthedocs.io/en/stable/logic/multi-logic-adapter.html
答案 2 :(得分:0)
Multi Logic适配器是一个内置类,未在代码中明确定义。您可以在引言部分看到此语句:“ ChatterBot 内部使用特殊的逻辑适配器,允许它选择由任何数量的其他逻辑适配器生成的最佳响应”。这是链接-http://chatterbot.readthedocs.io/en/stable/logic/multi-logic-adapter.html
此外,类似的查询在stackover流上已经可用。也请参考此。 Error while using chatterbot
答案 3 :(得分:0)
MultiLogicAdapter
通常不会以这种方式直接使用。
ChatterBot将在内部logic_adapters=[]
处理添加到MultiLogicAdapter
的每个逻辑适配器,而无需显式指定它。