经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
Python使用?TCP协议实现智能聊天机器人功能
来源:jb51  时间:2022/5/9 14:22:32  对本文有异议

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

  1. 源代码:
  2. 服务端 Sever.py:
  3. from os.path import commonprefix
  4. from posixpath import split
  5. import socket
  6. #建立聊天回复字典
  7. words={'how are you?':'Fine,thank you.',
  8. 'how old are you?':'18',
  9. 'what is your name?':'xiaoming',
  10. 'which subject do you like?':'computer science',
  11. 'bye':'Bye'}
  12. s =socket.socket()
  13. s.bind(('127.0.0.1',8000))
  14. s.listen(1)
  15. clientsocket,clientaddress= s.accept()
  16. print('Connection from',clientaddress)
  17. #开始聊天
  18. while True:
  19. data=clientsocket.recv(1024).decode()
  20. if not data:
  21. break
  22. print('Received:',data)
  23. i=0
  24. key=''
  25. for k in words.keys():
  26. data=' '.join(data.split())
  27. if len(commonprefix([k,data]))>len(k)*0.75:
  28. key=k
  29. break
  30. length=len(set(data.split())&set(k.split()))
  31. if length>i:
  32. i=length
  33. key=k
  34. clientsocket.sendall(words.get(key,'Sorry,can\'t find the question').encode())
  35. clientsocket.close()
  36. 客户端 Client.py:
  37. import socket
  38. import sys
  39. s =socket.socket()
  40. try:
  41. s.connect(('127.0.0.1',8000))
  42. except Exception as e:
  43. print('Can\'t find the Sever please try again')
  44. sys.exit()
  45. while True:
  46. c=input('Input the content you want to send:')
  47. s.sendall(c.encode())
  48. data=s.recv(1024)
  49. data=data.decode()
  50. print('Received:',data)
  51. if c.lower()=='bye':
  52. break
  53. s.close()
  54. 测试用例:
  55. how are you
  56. how old are you
  57. what's your name
  58. bye

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号