首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用chatterbot时出错

使用chatterbot时出错
EN

Stack Overflow用户
提问于 2018-01-19 09:39:04
回答 1查看 1.3K关注 0票数 2

我正在尝试用Python chatterbot做一个简单的QnA程序。

代码语言:javascript
复制
# -*- coding: utf-8 -*-
from chatterbot import ChatBot

bot = ChatBot(
    "SQLMemoryTerminal",
    storage_adapter='chatterbot.storage.SQLStorageAdapter',
    logic_adapters=[
        {
            "import_path": "chatterbot.logic.BestMatch",
            "statement_comparison_function": 
"chatterbot.comparisons.levenshtein_distance"
        },
        {
            'import_path' : 'chatterbot.logic.LowConfidenceAdapter',
            'threshold' : 0.3,
            'default_response' : "Sorry. I can not find the exact answer."
        },
        'chatterbot.logic.multi_adapter.MultiLogicAdapter',
    ],
    input_adapter="chatterbot.input.TerminalAdapter",
    output_adapter="chatterbot.output.TerminalAdapter",
    read_only= True
)

print("input question")

while True:
    try:
        print("Q : ",end="")
        bot_input = bot.get_response(None)

    except (KeyboardInterrupt, EOFError, SystemExit):
        break

但是,当我尝试使用chatterbot中内置的多适配器功能时,我得到了一个错误。

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:/Users/KPvoice/PycharmProjects/Contact/ChatterbotTest.py", line 
30, in <module>
    bot_input = bot.get_response(None)
  File "C:\Python36\lib\site-packages\chatterbot\chatterbot.py", line 113, 
in get_response
    statement, response = self.generate_response(input_statement, 
conversation_id)
  File "C:\Python36\lib\site-packages\chatterbot\chatterbot.py", line 132, 
in generate_response
    response = self.logic.process(input_statement)
  File "C:\Python36\lib\site-packages\chatterbot\logic\multi_adapter.py", 
line 52, in process
    output = adapter.process(statement)
  File "C:\Python36\lib\site-packages\chatterbot\logic\multi_adapter.py", 
line  89, in process
    result.confidence = max_confidence
AttributeError: 'NoneType' object has no attribute 'confidence'

我不知道如何解决这个问题。

工作环境为Windows 10、Python 3.7

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-20 12:11:07

MultiLogicAdapter通常不会以这种方式直接使用。

您添加到logic_adapters=[]的每个逻辑适配器都将由MultiLogicAdapter在内部由ChatterBot处理,不需要显式指定它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48332932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档