今天午休的时候,无意之中看了一篇博客,名字叫Python实现机器人,感觉挺有的意思的。

于是用其写了一个简单的Python聊天,源码如下所示:

# -*- coding: utf-8 -*-

import aiml

import sys

import os

def get_module_dir(name):

print("module", sys.modules[name])

path = getattr(sys.modules[name], '__file__', None)

print(path)

if not path:

raise AttributeError('module %s has not attribute __file__' % name)

return os.path.dirname(os.path.abspath(path))

alice_path = get_module_dir('aiml') + '\\botdata\\alice'

os.chdir(alice_path) # 切换到语料库所在工作目录

alice = aiml.Kernel() # 创建机器人alice对象

alice.learn("startup.xml") # 加载...\\botdata\\alice\\startup.xml

alice.respond('LOAD ALICE') # 加载...\\botdata\\alice目录下的语料库

while True:

message = input("Enter your message >> ")

if("exit" == message):

exit()

response = alice.respond(message) # 机器人应答

print(response)

注意:如果出现某某模块找不到的时候,记得使用pip安装对应的模块。

效果图如下所示:

唯一美中不足的是英文,不过没关系,国内有图灵机器人。

代码如下所示:

from urllib.request import urlopen,Request

from urllib.error import URLError

from urllib.parse import urlencode

import json

class TuringChatMode(object):

"""this mode base on turing robot"""

def __init__(self):

# API接口地址

self.turing_url = 'http://www.tuling123.com/openapi/api?'

def get_turing_text(self,text):

''' 请求方式: HTTP POST

请求参数: 参数 是否必须 长度 说明

key 必须 32 APIkey

info 必须 1-32 请求内容,编码方式为"utf-8"

userid 必须 32 MAC地址或ID

'''

turing_url_data = dict(

key = 'fcbf9efe277e493993e889eabca5b331',

info = text,

userid = '60-14-B3-BA-E1-4D',

)

# print("The things to Request is:",self.turing_url + urlencode(turing_url_data))

self.request = Request(self.turing_url + urlencode(turing_url_data))

# print("The result of Request is:",self.request)

try:

w_data = urlopen(self.request)

# print("Type of the data from urlopen:",type(w_data))

# print("The data from urlopen is:",w_data)

except URLError:

raise IndexError("No internet connection available to transfer txt data")

# 如果发生网络错误,断言提示没有可用的网络连接来传输文本信息

except:

raise KeyError("Server wouldn't respond (invalid key or quota has been maxed out)")

# 其他情况断言提示服务相应次数已经达到上限

response_text = w_data.read().decode('utf-8')

# print("Type of the response_text :",type(response_text))

# print("response_text :",response_text)

json_result = json.loads(response_text)

# print("Type of the json_result :",type(json_result))

return json_result['text']

if __name__ == '__main__':

print("Now u can type in something & input q to quit")

turing = TuringChatMode()

while True:

msg = input("\nMaster:")

if msg == 'q':

exit("u r quit the chat !") # 设定输入q,退出聊天。

else:

turing_data = turing.get_turing_text(msg)

print("Robot:",turing_data)

效果图如下:

可能由于机器人智能太低了,有点答非所问。

编程的世界是有趣的,你去探索,你会发现很多有意思的事情。

以上就是Python如何实现机器人聊天的详细内容,更多关于python 实现机器人聊天的资料请关注自学编程网其它相关文章!

python可以帮机器人编程吗_Python如何实现机器人聊天相关推荐

  1. ROS机器人编程学习(一)——机器人软件平台

    前言: 今天是2020年9月1日,Slender博客正式启用!从新的学年开始从头记录每一阶段的学习进程,有时间的话也会把以往的学习内容整理放上来. 今天开始从头学习<ROS机器人编程>(哦 ...

  2. 机器人编程需要c语言吗,机器人编程和计算机编程有什么不一样

    原标题:机器人编程和计算机编程有什么不一样 格物斯坦小坦克就大家关心的机器人编程教育和计算机编程教育做一个对比,这样帮助大家更好地了解二者的共同性和区别. 机器人编程的目的是让学生学会组装.搭建和编写 ...

  3. 波士顿动力机器人编程_波士顿动力现场机器人终于向公众发售

    波士顿动力机器人编程 Anyone that keeps up with the robot world can instantly recognize Boston Dynamics' one of ...

  4. otc焊接机器人编程模拟软件_otc焊接机器人编程

    5分 22 2.2MB 2013-09-05 OTC焊接机器人基本操作培训第1章 基础知识 第1节 示教说明 所谓示教机器人,首先将所以作业流程提前设定进去,即输入机器人本体运行所需的资料,然后再将所 ...

  5. otc焊接机器人编程模拟软件_OTC焊接机器人精密焊接的编程技巧

    OTC焊接机器人*终加工对象就是工件与焊嘴之间的坐标的设定及使用. 1.焊接机器人的坐标系.机器人使用若干坐标系,每一坐标系都适用于特定类型的微动控制或编程. 1)基坐标系位于机器人基座.它是*便于机 ...

  6. 恩施机器人编程_恩施州自动化焊接机器人专业厂家

    恩施州自动化焊接机器人专业厂家 走马塘岛跨海线路又长又陡.可实现一个变位机机器人焊接.因此大家就见到数十台乃至几百台焊接机器人另外工作中在同一生产流水线的壮阔场景.具行业更是进一步推动了国外喷涂机器人 ...

  7. 达奇机器人编程学院_达奇机器人,Fancy机器人课程介绍!

    原标题:达奇机器人,Fancy机器人课程介绍! 奇幻机器人课程介绍! 奇幻工房是什么? 英文名字叫 Wonder Workshop 2012 年成立于美 国硅谷,一年后推出儿童编程机器人达奇& ...

  8. 灵宝机器人编程学校_南宁学机器人编程的学校

    南宁学机器人编程的学校|可来南宁童程童美青少儿编程培训学校,童程童美在南宁青秀区.西乡塘区等开设校区,线下可学编程,线上也可学习,线上线下同步教学,方便家长选择.南宁童程童美设有试听课,欢迎广大家长预 ...

  9. python用户登录系统编程思路_python编程思路

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. python北京周末培训班 https://github.com/pythonpeixun ...

最新文章

  1. Python入门100题 | 第053题
  2. 分布式全文检索引擎之ElasticSearch
  3. 慕课php进阶篇,PHP进阶篇-函数
  4. jquery验证框架validate的使用
  5. PyTorch 1.5 发布,与 AWS 合作 TorchServe!
  6. #地形剖面图_备战中考 地理图表判读——地形剖面图
  7. 03. Django基础:URL和视图函数
  8. 【项目】STC15W408AS--烧写、数码管、按键、串口通信、ADC
  9. 5G接入网与基站演进
  10. 解决Windows桌面部分快捷方式图标变为空白的问题
  11. linux rstudio 卸载,R与Rstudio的安装与卸载
  12. 示波器学习(一):示波器的作用、类型和基本结构
  13. 生存分析绘图——Kaplan-Meier生存曲线
  14. 推荐6款高效率PDF编辑工具
  15. 仿微信表情输入键盘(支持 Gif 表情图文混排 )
  16. 怎么在alert里加图片_鹅蛋怎么挑选?教你2招,一看一摇听声音
  17. 2018年最后一个工作日
  18. 错题集(求助中):爬虫碰到cookies检查还是script啊甚至连被什么拦住的都不知道···
  19. CString怎么转成LPVOID的问题 vc/mfc
  20. 以数据赋能业务,qlik为企业搭建透明绩效管理平台

热门文章

  1. Linux系统下与终端相关的命令
  2. Java对象内存图三
  3. Windows 命令终端(CMD)程序员常用的命令
  4. python爬虫数据_python爬取数据分析
  5. python二分法查找时间点_python有序查找算法:二分法
  6. 【UDP协议头解析】
  7. 土木计算机2级,请教各位,我是学土木的,考计算机二级的哪个比较好?
  8. python随机抽取人名_python实现艾宾浩斯背单词功能,实现自动提取单词、邮件发送,再也不用担心背单词啦...
  9. java隐藏与覆盖_java中方法的隐藏和覆盖问题?
  10. pat 乙级 1010 一元多项式求导(C++)