AIML聊天机器人的剖析与应用

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启动文件

LOAD AIML B #与aiml_main.py文件中对应

说明:在中,也可以使用多个语料库文件进行匹配,如:

LOAD AIML B

4、用记事本创建并编写basic_chat.aiml语料库文件

你好

*谢谢* #问题内容匹配

#应答内容

谢谢*

说明:每一对就是一个问答匹配,代表人问的问题,可以用*或?作为通配符,代表机器人的回答。如果在basic_chat.aiml语料库文件中无法搜索到匹配的问题,机器人就无法回答。

5、运行aiml_main.py文件

运行效果如图:

三、创建随机问答的机器人

要创建随机问答的聊天机器人,我们只要修改basic_chat.aiml语料库文件,在中添加多个

  • 答案即可,如下所示:

    ONE TIME I *

    运行效果如图:

    四、创建基于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 条评论) “”
       
    验证码:

    相关文章

    推荐文章