AIML,全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由Richard Wallace和世界各地的自由软件社区在1995年至2002年发明的。它的雏形是一个名为“A.L.I.C.E.”(“Artificial Linguistic Internet Computer Entity”)的高度扩展的Eliza机器人。由于A.L.I.C.E.的AIML设置是在GNU GPL协议下发布的,所以已经有许多基于该程序和AIML库的“克隆ALICE”出现。目前AIML已经有了Java,Ruby,Python,C,C#,Pascal等语言的版本,本文选用的是Python3.7环境。
普通高中信息技术教材——必修二《信息系统与社会》(第二章信息系统的支撑技术,第六节网络应用软件开发)中,以AIML聊天机器人为例,重点介绍了编写网络应用程序的过程,但是并未对聊天机器人的原理进行分析与介绍,学生很难理解与把握,本文正基于此,对AIML聊天机器人进行详细的剖析。
一、AIML聊天机器人的基本组成
AIML聊天机器人主要包括三个文件:一个运行文件,一个启动文件和一个语料库文件,如:运行文件(aiml_main.py)、启动文件(std-startup.xml)、语料库文件(basic_chat.aiml)。
二、AIML聊天机器人的剖析与创建
1、安装aiml库
pip3 install aiml
2、用Python IDLE创建并编写aiml_main.py运行文件
import aiml #导入aiml模块
k=aiml.Kernel() #创建aiml聊天机器人
k.learn("std-startup.xml") #加载启动文件std-startup.xml
k.respond("LOAD AIML B") #设置语言回应方式,与std-startup.xml文件中对应
while True: #调用respond接口进行聊天
print(k.respond(input("input>>")))
3、用记事本创建并编写std-startup.xml启动文件
说明:在中,也可以使用多个语料库文件进行匹配,如:
4、用记事本创建并编写basic_chat.aiml语料库文件
你好~欢迎关注公众号【宁波爬山虎部落:pashanhu-nb】
不客气,嘻嘻~ #应答内容
不客气,哈哈~
说明:每一对
5、运行aiml_main.py文件
运行效果如图:
三、创建随机问答的机器人
要创建随机问答的聊天机器人,我们只要修改basic_chat.aiml语料库文件,在
运行效果如图:
四、创建基于Flask的web服务器聊天机器人
1、用Python IDLE创建并编写aiml_main.py运行文件
from flask import Flask, render_template, request
import aiml
k = aiml.Kernel()
k.learn("std-startup.xml")
k.respond("LOAD AIML B")
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == "GET":
return render_template('index.html', robot_msg="请开始交谈。。。")
elif request.method == "POST":
msg = request.form["msg"]
if msg == '':
return render_template('index.html', robot_msg="请不要保持沉默。。。")
else:
return render_template('index.html', robot_msg=k.respond(msg))
if __name__ == '__main__':
app.run(host="0.0.0.0", port=80) #也可以使用host=”127.0.0.1”
说明:在Python中需要提前安装Flask库、render_template库、 request库。Flask的用法教材有比较详细的篇幅介绍,这里不再作具体说明。
2、用记事本在templates文件夹下创建index.html网页文件
:{{robot_msg}}说明:整个项目的文件夹结构如下:
2、运行聊天机器人即aiml_main.py文件
运行效果如图:
运行时系统会自动获取到本地电脑的IP地址即聊天机器人服务器地址,如10.30.3.34。在浏览器中访问http://10.30.3.34:80或者http://127.0.0.1:80即可进入聊天界面,如图:
总之,AIML聊天机器人是基于常见问题集的问答系统,通常在已有的问题-答案对的集合中找到与用户提问相匹配的问题,然后将答案返回给用户,具体的内容构成可以用下图表示:
| 留言与评论(共有 0 条评论) “” |