今天午休的时候,无意之中看了一篇博客,名字叫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) html" target="_blank">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)
效果图如下:
可能由于机器人智能太低了,有点答非所问。
更多精彩可以去图灵机器人官网了解:http://www.tuling123.com
编程的世界是有趣的,你去探索,你会发现很多有意思的事情。
以上就是Python如何实现机器人聊天的详细内容,更多关于python 实现机器人聊天的资料请关注小牛知识库其它相关文章!
本文向大家介绍python 实现语音聊天机器人的示例代码,包括了python 实现语音聊天机器人的示例代码的使用技巧和注意事项,需要的朋友参考一下 前言 在不远的将来,实现一定程度上的语音支持将成为日常科技的基本要求,整合了语音识别的python程序提供了其他技术无法比拟的交互性和可访问性。最重要的是,在python程序中实现语音识别非常简单。整个代码实现下来还不到150行。 原理简介 许多现代语
本文向大家介绍Python QQBot库的QQ聊天机器人,包括了Python QQBot库的QQ聊天机器人的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Python QQBot库的QQ聊天机器人的具体代码,供大家参考,具体内容如下 项目地址:https://github.com/pandolia/qqbot 1.安装 2.主动发出消息 3.根据事件回复消息 首先我们需要在命令行启动
译者:毛毛虫 作者: Matthew Inkawhich 在本教程中,我们探索了一个好玩和有趣的循环序列到序列的模型用例。我们将用 Cornell Movie-Dialogs Corpus处的电影剧本来训练一个简单的聊天机器人。 在人工智能研究领域中对话模型模型是一个非常热门的话题。聊天机器人可以在各种设置中找到,包括客户服务应用和在线帮助。这些机器人通常由基于检索的模型提供支持,这些输出是某些形
我正在用电传制作电报机器人。 群聊消息以/开头时使用处理程序。 有没有办法获取所有群聊消息?
本文向大家介绍python实现简单多人聊天室,包括了python实现简单多人聊天室的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python实现多人聊天室的具体代码,供大家参考,具体内容如下 刚开始学习python,写了一个聊天室练练手。 Server.py client.py 运行时先启动服务端。进入聊天室先起一个昵称。服务端会向客户端发送当前聊天室内聊天人的列表。一个客户端发出
群主/管理员在企业群中,点击机器人图标打开机器人面板,进入添加机器人列表。1个群最多只能添加10个机器人。 详细请参阅:在客户端使用机器人 机器人添加入口: