欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用?TCP協(xié)議實現(xiàn)智能聊天機器人功能

 更新時間:2022年05月09日 11:50:33   作者:Yvonnae  
TCP協(xié)議適用于對效率要求相對較低而準確性要求很高的場合,下面通過本文給大家介紹基于Python?使用?TCP?實現(xiàn)智能聊天機器人,需要的朋友可以參考下

編寫聊天程序的服務(wù)端代碼和客戶端代碼。完成后,先啟動服務(wù)端代碼,然 后啟動客戶端程序輸人問題,服務(wù)端可以返回相應(yīng)的答案。要求服務(wù)端代碼具 有一定的智能,能夠根據(jù)不完整的問題識別客戶端真正要問的問題。 程序運行后界面如下圖所示。

源代碼:
服務(wù)端 Sever.py:
from os.path import commonprefix
from posixpath import split
import socket
#建立聊天回復(fù)字典
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

到此這篇關(guān)于Python 使用 TCP 實現(xiàn)智能聊天機器人的文章就介紹到這了,更多相關(guān)Python智能聊天機器人內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 正則表達式 re.match/re.search/re.sub的使用解析

    Python 正則表達式 re.match/re.search/re.sub的使用解析

    今天小編就為大家分享一篇Python 正則表達式 re.match/re.search/re.sub的使用解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 關(guān)于Python 實現(xiàn)tuple和list的轉(zhuǎn)換問題

    關(guān)于Python 實現(xiàn)tuple和list的轉(zhuǎn)換問題

    這篇文章主要介紹了Python 實現(xiàn)tuple和list的轉(zhuǎn)換,文中介紹了list(列表)和tuple(元組)共同點和區(qū)別,結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • 五個方便好用的Python自動化辦公腳本的實現(xiàn)

    五個方便好用的Python自動化辦公腳本的實現(xiàn)

    在沒有人工干預(yù)的情況下,機器可以自己完成各項任務(wù),這大大提升了工作效率。Python因為語法簡潔易懂,而且有豐富的第三方工具庫,所以非常適合編寫自動化腳本,本文就為大家?guī)砹宋鍌€這樣的腳本,需要的可以參考一下
    2022-01-01
  • Python SQLAlchemy簡介及基本用法

    Python SQLAlchemy簡介及基本用法

    SQLAlchemy是一個基于Python實現(xiàn)的ORM對象關(guān)系映射框架,該框架建立在DB API之上,使用關(guān)系對象映射進行數(shù)據(jù)庫操作,這篇文章主要介紹了SQLAlchemy簡介以及基本使用,需要的朋友可以參考下
    2023-08-08
  • Pytorch實現(xiàn)網(wǎng)絡(luò)部分層的固定不進行回傳更新問題及思路詳解

    Pytorch實現(xiàn)網(wǎng)絡(luò)部分層的固定不進行回傳更新問題及思路詳解

    這篇文章主要介紹了Pytorch實現(xiàn)網(wǎng)絡(luò)部分層的固定不進行回傳更新,實現(xiàn)思路就是利用tensor的requires_grad,每一個tensor都有自己的requires_grad成員,值只能為True和False,具體內(nèi)容詳情跟隨小編一起看看吧
    2021-08-08
  • python多進程實現(xiàn)進程間通信實例

    python多進程實現(xiàn)進程間通信實例

    這篇文章主要介紹了python多進程實現(xiàn)進程間通信實例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • pycharm不以pytest方式運行,想要切換回普通模式運行的操作

    pycharm不以pytest方式運行,想要切換回普通模式運行的操作

    這篇文章主要介紹了pycharm不以pytest方式運行,想要切換回普通模式運行的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • matplotlib繪制甘特圖的萬能模板案例

    matplotlib繪制甘特圖的萬能模板案例

    matplotlib是常見的繪圖庫,本文主要介紹了matplotlib繪制甘特圖的萬能模板案例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • Python實現(xiàn)二叉樹前序、中序、后序及層次遍歷示例代碼

    Python實現(xiàn)二叉樹前序、中序、后序及層次遍歷示例代碼

    這篇文章主要給大家介紹了關(guān)于Python實現(xiàn)二叉樹前序、中序、后序及層次遍歷的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • python在回調(diào)函數(shù)中獲取返回值的方法

    python在回調(diào)函數(shù)中獲取返回值的方法

    今天小編就為大家分享一篇python在回調(diào)函數(shù)中獲取返回值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02

最新評論