2

我使用 chatterbot 库和 python 制作了一个简单的聊天机器人。我训练它的方式是,我让它读取一些包含聊天示例的文本文件,并根据这些训练示例学习如何回复消息。我面临的问题是 - 即使我删除了训练文本文件的内容并运行应用程序,聊天机器人的行为仍然与以前相同,即它的内存不会被刷新。我尝试启动一个新文件并复制粘贴相同的代码并更改程序的名称,但它仍然没有帮助。我该如何解决这个问题?这是供参考的代码:

from chatterbot.trainers import ListTrainer
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer

import os

bot = ChatBot('trialBot')

bot.set_trainer(ListTrainer)

#directory containing training text files
mainDir = 'C:\\Users\\xyz\\Desktop\\trainfiles\\'

for _file in os .listdir(mainDir):
    chats = open(mainDir + _file, 'r').readlines()
    bot.train(chats)


while True:
    request = raw_input('You: ')
    response = bot.get_response(request)

    print('Bot: ' + str(response))
4

1 回答 1

2

听起来您可能想要使用内存数据库,以便内容仅在聊天机器人运行时才会持久保存。

bot = ChatBot(
    'trialBot',
    database_uri=None
)

设置database_uriNone将导致聊天机器人使用存储在内存中的 Sqlite 数据库,以便存储它所训练的知识。因此,每次运行程序时都会有一个新的数据库可供使用。

于 2019-02-01T01:00:50.623 回答