有反馈的Chatterbot

时间:2018-11-03 20:31:43

标签: sqlite chatterbot

我是ChatterBot的初学者,其功能给我留下了深刻的印象!

但是,如果该漫游器无法使用更好的解决方案进行回答,我会对用户的反馈意见感兴趣。

例如:如果我问“你好吗?”并且它的数据库只有答案“我很好”,而我希望答案是“我不太好”,我将需要使用新答案来更新数据库。

在我的代码中,我实现了在列表“ ans”中插入两个新闻句子的过程。但是,提出新问题后,该机器人无法实现我的愿望。

GitHub“ learning feedback”和“ default response”上的示例似乎运行得不太好(至少在我的计算机中如此)。

有人可以帮助我强加给机器人以我的反馈意见来选择更好的答案吗? 我想使用反馈直接更新数据库文件(db.sqlite3),删除数据库的旧语句,为此,在新的询问中,机器人用新条目回答了我。我不知道如何删除数据库语句。

在许多尝试中,尽管列表已更新,但答案并没有改变...

谢谢。

PS:这个问题也称为issue in GitHub

PS2:如何删除response of the databaseImage of Statement-response relationship

from chatterbot.trainers import ListTrainer
from chatterbot import ChatBot

question,answer,y,n="","","",""

bot = ChatBot('Answ Bot')

ans= ['How are you?', 'I'm fine','And you?','I'm fine too, thanks']

bot.set_trainer(ListTrainer)
bot.train(ans)

while True:
    question= input("User: ")
    answer= bot.get_response(question)
    if float(question.confidence) > 0.5:
        print('Answ Bot: ', answer)
        print('Answ Bot: was my response good? [y/n]')
        r1=input()
        if r1=='y':
            print('Answ Bot: thank you for feedback')
        else:
            print('Answ Bot: may you teach me a better answer?')
            r2=ans.index(answer)
            ans2=ans.copy()
            del ans2[r2]            
            answer2 = input("User: ")
            ans2.insert(r2,answer2)            
            bot.train(ans2)            
            print(ans2)
    else:
         print('I don't know the answer.')

0 个答案:

没有答案