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智能聊天机器人内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python基于TCP实现会聊天的小机器人功能示例

    本文实例讲述了Python基于TCP实现会聊天的小机器人功能.分享给大家供大家参考,具体如下: 一 代码 1.服务端程序 import socket words ={'how are you?':'Fine,thank you.', 'how old are you?':'38', 'what is your name?':'Dong FuGuo', "what's your name?":'Dong FuGuo', 'where do you work?':'SDIBT', 'bye

  • 16行Python代码实现微信聊天机器人并自动智能回复功能

    目录 一.效果 二.项目思路 三.代码分析 1.安装和导入模块 2.申请图灵机器人 3.实现机器人功能 4.实现微信功能 5.弹出二维码及循环程序 在我们的生活和工作当中,很多时候我们并不能及时地回复消息,尤其是业务比较多的人,客户给我们发消息我们不回又不好,但又没有那么多精力时时回复,这个时候智能机器人就能帮助我们解决很多问题. 像电商类的客服,像大的QQ群/微信群管理员,以及我们打游戏的时候,挂着脚本就行,机器人自动帮你回消息,一时半会儿不会得罪女朋友,哈哈哈! 今天就来教大家一招,16行P

  • 不到20行代码用Python做一个智能聊天机器人

    伴随着自然语言技术和机器学习技术的发展,越来越多的有意思的自然语言小项目呈现在大家的眼前,聊天机器人就是其中最典型的应用,今天小编就带领大家用不到20行代码,运用两种方式搭建属于自己的聊天机器人. 1.神器wxpy库 首先,小编先向大家介绍一下本次运用到的python库,本次项目主要运用到的库有wxpy和chatterbot. wxpy是在 itchat库 的基础上,通过大量接口优化,让模块变得简单易用,并进行了功能上的扩展.什么是接口优化呢,简单来说就是用户直接调用函数,并输入几个参数,就可以

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

    编写聊天程序的服务端代码和客户端代码.完成后,先启动服务端代码,然 后启动客户端程序输人问题,服务端可以返回相应的答案.要求服务端代码具 有一定的智能,能够根据不完整的问题识别客户端真正要问的问题. 程序运行后界面如下图所示. 源代码: 服务端 Sever.py: from os.path import commonprefix from posixpath import split import socket #建立聊天回复字典 words={'how are you?':'Fine,than

  • Python实现TCP协议下的端口映射功能的脚本程序示例

    1 端口映射 举个例子来说明一下端口映射的作用. 有A.B.C三台计算机,A.B互通,B.C互通,但是A.C不通,这个时候在C上开了一个Web服务,如何让A访问C的Web服务? 最简单有效的办法就是在B上开一个端口映射服务,然后让A访问B的某个端口,B将这个端口上的所有流量全部转发到C的Web服务端口上,同时将C上Web服务返回的流量也全部转发给A.这样对A来说,以B为跳板,实现了间接访问C上Web服务的目的. 2 实现流程 端口映射的原理并不复杂,本文以TCP为例介绍一下实现过程,简单画了个时

  • Python 实现简单智能聊天机器人

    简要说明: 最近两天需要做一个python的小程序, 就是实现人与智能机器人(智能对话接口)的对话功能,目前刚刚测试了一下可以实现, 就是能够实现个人与机器的智能对话(语音交流). 总体的思路: 大家可以设想一下, 如果要实现人与机器的智能对话, 肯定要有以下几个步骤: 计算机接收用户的语音输入 将用户输入的语音输入转化为文本信息 调用智能对话接口, 发送请求文本信息, 获取接口返回的智能回答文本信息 将回答文本信息转化为语音格式输出 这里可以安装很多现成的库函数, 辅助我们系统的实现. 需要准

  • 基于python的itchat库实现微信聊天机器人(推荐)

    一.开始之前必须安装itchat库 pip install itchat(使用pip必须在电脑的环境变量中添加Python的路径) 或 conda install request 二.开始编程前,我们需要在图灵机器人官网注册自己的图灵机器人,来实现我们程序的智能聊天功能 1.图灵机器人官网(http://www.turingapi.com/) 2.注册登录后点击创建机器人 3.创建成功后,可以获得机器人提供的API接口(apikey) 三.代码实现 import itchat import re

  • Java编程实现基于TCP协议的Socket聊天室示例

    本文实例讲述了Java编程实现基于TCP协议的Socket聊天室.分享给大家供大家参考,具体如下: 这里使用Socket套接字进行编程,完成的是基于TCP可靠服务实现服务器与客户端的双通信. Server服务器端: package com.han; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.Win

  • 详解python中TCP协议中的粘包问题

    TCP协议中的粘包问题 1.粘包现象 基于TCP实现一个简易远程cmd功能 #服务端 import socket import subprocess sever = socket.socket() sever.bind(('127.0.0.1', 33521)) sever.listen() while True: client, address = sever.accept() while True: try: cmd = client.recv(1024).decode('utf-8') p

  • Python基于Google Bard实现交互式聊天机器人

    目录 用Python基于Google Bard做一个交互式的聊天机器人 获取Session ID Python代码 运行与尝试 代码 用Python基于Google Bard做一个交互式的聊天机器人 之前已经通过浏览器试过了 Google Bard ,更多细节请看: Try out Google Bard, Will Google Bard beat the ChatGPT?. 现在我们想实现自动化,所以我用Python做一个交互式的聊天机器人. 获取Session ID 通过浏览器先拿到Ses

  • nodejs实现聊天机器人功能

    技术栈 服务端: koa.koa-route.koa-websocket.request. 客户端: html.css.js.websocket. 远程聊天API: http://api.qingyunke.com/api.php?key=free&appid=0&msg=msg. 客户端展示 开发步骤 1.在桌面创建bbs文件夹,然后在文件夹内打开cmd,输入: $ npm init 初始化箱项目,生成package.json包管理文件 2.cmd输入: $ npm install ko

  • Python网络编程之Python编写TCP协议程序的步骤

    目录 TCP客户端程序开发 1. 开发 TCP 客户端程序开发步骤回顾 2. socket 类的介绍 3. TCP 客户端程序开发示例代码 执行结果: TCP服务端程序开发 1. 开发 TCP 服务端程序开发步骤回顾 2. socket 类的介绍 3. TCP 服务端程序开发示例代码 网络调试助手充当客户端程序: TCP网络应用程序的注意点 案例:多任务版TCP服务端程序开发 1. 需求 2. 具体实现步骤 3. 多任务版TCP服务端程序的示例代码: socket的send和recv原理剖析 1

随机推荐