您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python实战整活之聊天机器人

51自学网 2021-10-30 22:43:33
  python
这篇教程Python实战整活之聊天机器人写得很实用,希望能帮到您。

一、前言

刚刚学了一些python文件读写的内容,先跑过来整活了。顺便复习一下之前学的东西。

import timedoc_local='D:/learning_folder/interaction.txt'def iRead():    fr = open(doc_local, 'r')    message=fr.read()    return messagedef iWrite(message):    fw = open(doc_local, 'w')    fw.write(message)    fw.close()def dTime(num):    a=time.time()    b=time.time()    while (b-a)<num:        b=time.time()    return Noneanswer={'i am temmie':'you are temmie? who am i?','temmie':'temmie!!!','wang!':'wangwangwang!!!'}iWrite('test begin')message0 = iRead()print(message0)while True:    dTime(1.0000000)    mes = iRead()    if mes!=message0:        v=answer.get(mes)        if v==None:            if mes=='q' :                print('退出运行')                break            else:                print('message:', mes, end='/t')                a_out=('temmie say again:{0}'.format(mes))                message0 = a_out                iWrite(a_out)                print(a_out)        else:            print('message:', mes, end='/t')            b_out=('{0}'.format(answer.get(mes)))            message0 =b_out            iWrite(b_out)            print('answer:',b_out)

效果呢,就是你在这个位置的记事本里写东西然后保存,它会回复你消息,如果你说的话在规定的字典中,它就会回你预设好的话。如果没有预设,就会重复你的话(复读机)。

我把每次输入与返回都进行了输出

二、效果演示

在这里插入图片描述

你甚至可以跟它接crepper,如果你足够闲,也可以整个成语接龙。

在这里插入图片描述

三、完整代码

三个函数分别定义读取内容、写入内容、与定时

def iRead():    fr = open(doc_local, 'r')    message=fr.read()    return messagedef iWrite(message):    fw = open(doc_local, 'w')    fw.write(message)    fw.close()def dTime(num):    a=time.time()    b=time.time()    while (b-a)<num:        b=time.time()    return None

answer是预设回答的字典。

先写入内容,清空之前的文字,提示程序开始。读取文件内容,就是'test begin'

iWrite('test begin')message0 = iRead()

然后是一个死循环,直到你输入了q,才会退出。

每隔1秒读取一次文件中的内容,如果文件内容没变视为没输入,文件内容变化则对字典进行检索,返回None证明无对应答案,则复读。如果返回了值则输出该值。

while True:    dTime(1.0000000)    mes = iRead()    if mes!=message0:        v=answer.get(mes)        if v==None:            if mes=='q' :                print('退出运行')                break            else:                print('message:', mes, end='/t')                a_out=('temmie say again:{0}'.format(mes))                message0 = a_out                iWrite(a_out)                print(a_out)        else:            print('message:', mes, end='/t')            b_out=('{0}'.format(answer.get(mes)))            message0 =b_out            iWrite(b_out)            print('answer:',b_out)

到此这篇关于Python实战整活之聊天机器人的文章就介绍到这了,更多相关python聊天机器人内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


python数据分析之员工个人信息可视化
Python聊天室带界面实现的示例代码(tkinter,Mysql,Treading,socket)
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。