猫史档案馆


【python教程】如何不用api做一个人工智能对话机器人(不是用if判断)

用户:TobylaiTobylai查看:9 回复:4 评论:9 创建时间:2020-03-11T16:33:43


准备:

安装aiml库

pip install aiml -i http://pypi.douban.com/simple

 

然后找到它库的文件夹里面一个叫alice的子文件夹,复制走center_image

然后建一个项目文件夹,把东西粘贴进去

把粘贴的文件夹名改成data

 

开始编程

emotion_星能猫_ye

用以下代码

# -*- coding: utf-8 -*-
from urllib import request, parse
import json
import sys
import time
import datetime,os,aiml
#由于默认是英文所以我们要调用翻译器
def translate(word,from_lang='AUTO',to_lang='AUTO'):
	req_url = 'http://fanyi.youdao.com/translate'  # 创建连接接口
	# 创建要提交的数据
	tss1=str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
	timeArray = time.strptime(tss1, "%Y-%m-%d %H:%M:%S")
	timeStamp = str(time.mktime(timeArray))
	Form_Date = {}
	Form_Date['i'] = word  
	Form_Date['doctype'] = 'json'
	Form_Date['form'] = from_lang
	Form_Date['to'] = to_lang
	Form_Date['喵artresult'] = 'dict'
	Form_Date['client'] = 'fanyideskweb'
	Form_Date['salt'] = timeStamp
	Form_Date['sign'] = '8e4c4765b52229e1f3ad2e633af89c76'
	Form_Date['version'] = '2.1'
	Form_Date['keyform'] = 'fanyi.web'
	Form_Date['action'] = 'FY_BY_REALTIME'
	Form_Date['typoResult'] = 'false'

	data = parse.urlencode(Form_Date).encode('utf-8') #数据转换
	response = request.urlopen(req_url, data) #提交数据并解析
	html = response.read().decode('utf-8')  #服务器返回结果读取
	# 可以看出html是一个json格式
	translate_results = json.loads(html)  #以json格式载入
	translate_results = translate_results['translateResult'][0][0]['tgt']
	return translate_results
  
  
  # 切换到语料库所在工作目录
os.chdir('data')
alice = aiml.Kernel()  
alice.learn("startup.xml") 
alice.respond('LOAD ALICE') 
os.chdir('..')
  
def talk(msg:str):
	message = translate(msg,to_lang='en')
	response = alice.respond(message)
	if response=='':
		response='...' # 机器人应答 ,下面的AI是机器人名字

	return translate(response).replace('无名的','AI').replace('无名','AI')
#然后就可以用了
a=input('你要说啥?')
print(talk(a))

 

emotion_编程猫_加油

学会了吗?

有疑问在评论区留言吧~

 


回复

上一页1 页 / 共 1下一页
TobylaiTobylai

这个机器人...是和siri杠吗?

我输入:siri是神马?

他回答:我的主要竞争对手

 

啊啊啊啊啊啊啊啊

这叫机器人之间的竞争吗???

点赞0


评论


TobylaiTobylai

还有,运行时会有一堆信息,不用慌,他是在加载

信息可能长这样:

Loading startup.xml...done (0.01 seconds)
Loading ai.aiml...done (0.01 seconds)
Loading alice.aiml...done (0.01 seconds)
Loading astrology.aiml...done (0.01 seconds)
Loading atomic.aiml...done (0.09 seconds)
Loading biography.aiml...done (0.02 seconds)
Loading bot.aiml...done (0.11 seconds)
Loading bot_profile.aiml...done (0.01 seconds)
Loading client.aiml...done (0.04 seconds)
Loading client_profile.aiml...done (0.01 seconds)
Loading computers.aiml...done (0.00 seconds)
Loading continuation.aiml...done (0.01 seconds)
Loading date.aiml...done (0.01 seconds)

·············此处省略数行····································

点赞0


评论


一个STUB用户_6923702一个STUB用户_6923702

……我还以为要搭建模型了……

点赞0


评论


ZH-Y-QZH-Y-Q

兹磁

点赞0


评论