Python使用 TCP协议实现智能聊天机器人功能

Madeleine ·
更新时间:2024-09-20
· 1867 次阅读

编写聊天程序的服务端代码和客户端代码。完成后,先启动服务端代码,然 后启动客户端程序输人问题,服务端可以返回相应的答案。要求服务端代码具 有一定的智能,能够根据不完整的问题识别客户端真正要问的问题。 程序运行后界面如下图所示。

源代码: 服务端 Sever.py: from os.path import commonprefix from posixpath import split import socket #建立聊天回复字典 words={'how are you?':'Fine,thank you.', 'how old are you?':'18', 'what is your name?':'xiaoming', 'which subject do you like?':'computer science', 'bye':'Bye'} s =socket.socket() s.bind(('127.0.0.1',8000)) s.listen(1) clientsocket,clientaddress= s.accept() print('Connection from',clientaddress) #开始聊天 while True: data=clientsocket.recv(1024).decode() if not data: break print('Received:',data) i=0 key='' for k in words.keys(): data=' '.join(data.split()) if len(commonprefix([k,data]))>len(k)*0.75: key=k break length=len(set(data.split())&set(k.split())) if length>i: i=length key=k clientsocket.sendall(words.get(key,'Sorry,can\'t find the question').encode()) clientsocket.close() 客户端 Client.py: import socket import sys s =socket.socket() try: s.connect(('127.0.0.1',8000)) except Exception as e: print('Can\'t find the Sever please try again') sys.exit() while True: c=input('Input the content you want to send:') s.sendall(c.encode()) data=s.recv(1024) data=data.decode() print('Received:',data) if c.lower()=='bye': break s.close() 测试用例: how are you how old are you what's your name bye

到此这篇关于Python 使用 TCP 实现智能聊天机器人的文章就介绍到这了,更多相关Python智能聊天机器人内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!



tcp 聊天机器人 机器人 tcp协议 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号