在chatterbot中使用multilogicadapter的任何例子?

时间:2017-09-07 21:46:11

标签: python-3.x chatterbot

我正在尝试在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似乎是活动的。

谢谢, 草本植物

4 个答案:

答案 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的每个逻辑适配器,而无需显式指定它。