脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python使用 TCP协议实现智能聊天机器人功能

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

2022-12-24 14:01Yvonnae Python

TCP协议适用于对效率要求相对较低而准确性要求很高的场合,下面通过本文给大家介绍基于Python 使用 TCP 实现智能聊天机器人,需要的朋友可以参考下

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

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协议实现智能聊天机器人功能

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

原文链接:https://blog.csdn.net/m0_53354306/article/details/124651191

延伸 · 阅读

精彩推荐
  • Pythonpython+opencv实现视频抽帧示例代码

    python+opencv实现视频抽帧示例代码

    下面是采用以帧数为间隔的方法进行视频抽帧,为了避免不符合项目要求的数据增强,博主要求技术人员在录制视频时最大程度地让摄像头进行移动、旋转...

    BlackBack_6232021-11-30
  • Pythonpython之django母板页面的使用

    python之django母板页面的使用

    这篇文章主要介绍了python之django母板页面的使用,母版页用于处理html页面相同部分内容,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟...

    枫若雪7702021-03-12
  • Pythonpython中remove函数的踩坑记录

    python中remove函数的踩坑记录

    这篇文章主要给大家介绍了关于python中remove函数的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    JonnyJiang-zh4782021-08-21
  • PythonPython 函数式编程的三大法宝map+filter+reduce分享

    Python 函数式编程的三大法宝map+filter+reduce分享

    这篇文章主要介绍了Python 函数式编程的三大法宝map,filter,reduce的分享,python利用 map 在一个可迭代对象的各项上调用函数的工具;利用 filter 来过滤项;利用 r...

    宇宙之一粟6212022-11-11
  • Pythonpython 发送邮件的示例代码(Python2/3都可以直接使用)

    python 发送邮件的示例代码(Python2/3都可以直接使用)

    这篇文章主要介绍了python 发送邮件的示例代码,并且Python2/3都可以直接使用,感兴趣的朋友可以参考下...

    柯广10872021-08-08
  • PythonTensorflow使用Anaconda、pycharm安装记录

    Tensorflow使用Anaconda、pycharm安装记录

    这篇文章主要介绍了Tensorflow使用Anaconda、pycharm安装记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    a_lovely_girl4672020-07-29
  • Pythonpython爬取梨视频生活板块最热视频

    python爬取梨视频生活板块最热视频

    这篇文章主要介绍了python爬取梨视频生活板块最热视频,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...

    General_zy7152021-09-23
  • PythonDjango零基础入门之路由path和re_path详解

    Django零基础入门之路由path和re_path详解

    这篇文章主要介绍了Django零基础入门之路由path和re_path,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考...

    孤寒者9712021-12-29