案例:python實現聊天機器人
阿新 • • 發佈:2018-06-07
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實現聊天機器人