今天午休的时候,无意之中看了一篇博客,名字叫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"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)
效果图如下:
可能由于机器人智能太低了,有点答非所问。
更多精彩可以去图灵机器人官网了解:http://www.tuling123.com
编程的世界是有趣的,你去探索,你会发现很多有意思的事情。
以上就是Python如何实现机器人聊天的详细内容,更多关于python 实现机器人聊天的资料请关注其它相关文章!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 群星《前途海量 电影原声专辑》[FLAC/分轨][227.78MB]
- 张信哲.1992-知道新曲与精丫巨石】【WAV+CUE】
- 王翠玲.1995-ANGEL【新艺宝】【WAV+CUE】
- 景冈山.1996-我的眼里只有你【大地唱片】【WAV+CUE】
- 群星《八戒 电影原声带》[320K/MP3][188.97MB]
- 群星《我的阿勒泰 影视原声带》[320K/MP3][139.47MB]
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[320K/MP3][148.91MB]
- 刘雅丽.2001-丽花皇后·EMI精选王【EMI百代】【FLAC分轨】
- 齐秦.1994-黄金十年1981-1990CHINA.TOUR.LIVE精丫上华】【WAV+CUE】
- 群星.2008-本色·百代音乐人创作专辑【EMI百代】【WAV+CUE】
- 群星.2001-同步过冬AVCD【环球】【WAV+CUE】
- 群星.2020-同步过冬2020冀待晴空【环球】【WAV+CUE】
- 沈雁.1986-四季(2012梦田复刻版)【白云唱片】【WAV+CUE】
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[FLAC/分轨][257.88MB]
- 《国语老歌 怀旧篇 3CD》[WAV/分轨][1.6GB]