1. 程式人生 > >案例:python實現聊天機器人

案例:python實現聊天機器人

python

import pickle data = {"你有女朋友嗎":"沒有","我們可以交往嗎":"可以","今晚約不約":"約","去哪家餐廳":"麥當勞"} with open("db.pkl",‘wb‘) as f: f.write(pickle.dumps(data)) with open("db.pkl","rb") as f: data = pickle.loads(f.read()) class RobotUI: def __init__(self,name,admin): self.name = name self.admin = admin def talk(self): worlds = input(‘你說:‘) if worlds == ‘end‘: return worlds else: reply = backrobot.answer(worlds) print(f‘{self.name}回答:{reply}‘) if reply == ‘none‘: ch = input(‘是否需要增加數據 Y/N:‘) print(ch) if ch == ‘Y‘: updata = input(‘請輸入 示例(吃飯了嗎:吃了):‘) new = updata.split(‘:‘) RobotAdmin.write_data({new[0]:new[1]}) class RobotAdmin: def __init__(self): self.data = self.load_data() def load_data(self): with open(‘db.pkl‘,‘rb‘) as f: data = pickle.loads(f.read()) # print(data) return data def answer(self,worlds): if worlds in self.data: return self.data[worlds] else: return ‘none‘ @staticmethod def write_data(dic): data.update(dic) print(data) with open("db.pkl",‘wb‘) as f: f.write(pickle.dumps(data)) # robot.talk() while True: backrobot = RobotAdmin() robot = RobotUI(‘robot‘,‘back‘) if robot.talk() == ‘end‘: print(‘結束‘) break robot.talk()
你說:你有女朋友嗎
robot回答:沒有
你說:我們可以交往嗎
robot回答:可以
你說:今晚約不約
robot回答:約
你說:去哪家餐廳
robot回答:麥當勞
你說:今晚去K歌嗎
robot回答:none
是否需要增加數據 Y/N:Y
Y
請輸入 示例(吃飯了嗎:吃了):今晚去K歌嗎:去
{‘你有女朋友嗎‘: ‘沒有‘, ‘我們可以交往嗎‘: ‘可以‘, ‘今晚約不約‘: ‘約‘, ‘去哪家餐廳‘: ‘麥當勞‘, ‘今晚去K歌嗎‘: ‘去‘}
你說:end
你說:end
結束

案例:python實現聊天機器人