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

作者:Yvonnae 时间:2022-08-19 03:49:48 

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

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

源代码:
服务端 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协议实现智能聊天机器人功能

来源:https://blog.csdn.net/m0_53354306/article/details/124651191

标签:Python,TCP,智能聊天,机器人
0
投稿

猜你喜欢

  • vue-cli与webpack处理静态资源的方法及webpack打包的坑

    2024-05-09 09:39:07
  • JavaScript程序执行顺序问题总结

    2010-01-29 13:06:00
  • pycharm 实现光标快速移动到括号外或行尾的操作

    2023-07-17 19:52:31
  • Pytorch中的广播机制详解(Broadcast)

    2022-11-17 05:22:51
  • OpenCV特征提取与检测之Harris角点检测

    2021-06-05 10:45:51
  • Clion ROS开发环境设置技巧

    2023-11-01 02:36:32
  • 用 ASP 创建 GUID

    2009-04-19 18:43:00
  • CSS实现HTML元素透明的那些事

    2010-02-01 12:34:00
  • oracle数据库冷备份的方法

    2023-07-19 09:51:19
  • 机器学习的框架偏向于Python的13个原因

    2023-09-28 06:24:42
  • PHP字符串中提取文件名的实例方法

    2023-06-12 18:57:32
  • python四则运算表达式求值示例详解

    2023-01-31 06:03:04
  • ASP教程:0177:800401f3错误解决

    2008-08-02 12:41:00
  • django基础学习之send_mail功能

    2023-04-01 00:16:53
  • React TypeScript 应用中便捷使用Redux Toolkit方法详解

    2023-08-11 09:48:21
  • div水平垂直居中方法(淘宝招聘css题目)

    2007-10-25 12:48:00
  • 网页设计五原则

    2007-11-03 13:50:00
  • 使用cookie和application实现在线人数统计

    2007-09-18 13:01:00
  • 网马解密大讲堂——网马解密中级篇(Freshow工具使用方法)

    2009-09-16 15:09:00
  • Django配置MySQL数据库的完整步骤

    2023-07-19 14:43:47
  • asp之家 网络编程 m.aspxhome.com