AIML 介绍
1、概述
AIML全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种基于规则匹配的自然语言代理XML语言。AIML通过XML标签的形式,为有“一定形式”的问题定义好相应的“回答”,当匹配到相应规则的问题时,则给出预先定义的回答,从而能使得机器人能够进行简单的问答。这种“一问一答”的形式,使得AIML在闭领域的应用场景下(特别是客服机器人),有着很不错的表现。由于规则的定义是以XML标签的形式定义,这使得其扩展性大大提高,我们甚至可以通过修改解析规则,增加我们自己的匹配规则。
当然,由于我们不可能为每一种应用场景提供完整无遗漏的规则匹配,AIML的“智能”是很有限的。虽然AIML也提供了相应的“学习”机制,由交谈者来“教”机器人更多的规则匹配,但这项功能当应用于闭领域的应用场景下,是不可开放的,因此作用也十分有限。
不过,AIML的强大依旧是毋庸置疑的,下面先看看其运行起来的效果
2、项目运行测试
测试代码如下
# -*- coding: utf-8 -*-
import aiml
import os
alice_path = './aiml/alice/'
# 切换到语料库所在目录
os.chdir(alice_path)
alice = aiml.Kernel()
alice.learn("startup.xml")
alice.respond('LOAD ALICE')
while True:
print alice.respond(raw_input(">> "))
测试结果

直接由pip默认安装的aiml是只支持英文聊天,从上面的聊天中可以看到,聊天在一定程度上还是比较流畅。当然,AIML应用在聊天上,由于聊天是相对开放的领域,涉及的内容五花八门,这对我们机器人的匹配规则是相当大的挑战。后面,我们会尝试为当前版本的AIML添加中文支持。