我正在尝试构建自己的自学聊天机器人(不导入任何内容(,我面临的问题是:
如果用户提出了聊天机器人无法回答的问题,它会根据用户提出的问题更新词典。聊天机器人会向用户自己询问该问题的答案(以学习(,并存储答案。。
我用了这个方法-
dict_name[question]=answer
我发现了一个问题。在停止程序之前,如果我再次问这个问题,它会给我它学到的答案。
然而,如果我停止程序并重新运行它,然后问同样的问题,它仍然会问我答案(我在上一次运行中教的所有东西都会被遗忘(。
有什么方法可以让我的机器人记住我在上次运行中教给它的东西吗???
我建议您将字典保存在如下的pickle文件中:
dictionary_data = {"a": 1, "b": 2}
a_file = open("data.pkl", "wb")
pickle.dump(dictionary_data, a_file)
a_file.close()
a_file = open("data.pkl", "rb")
output = pickle.load(a_file)
print(output)
现在,您可以每次从文件加载字典,然后在关闭之前进行更新。
尽管您需要import pickle
另一种选择是在json中转储。这几乎是相同的方式,但在这种情况下,您也需要import json
重新运行相同的程序不会使我们进入相同的执行上下文。在退出之前,您应该已经将地图存储到文件或数据库中,并在每次启动时使用存储信息初始化地图。如果你正在考虑采用文件方法。。你可以在这里找到样品