AIML全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由RichardS. Wallace 博士和Alicebot开源软件组织于1995-2000年间发明创造的。AIML是一种为了匹配模式和确定响应而进行规则定义的 XML 格式。
AIML的设计目标如下:
关于AIML详细的初级读物,可翻阅Alice Bot's AIML Primer。你同样可以在AIML Wikipedia page了解更多 AIML 的内容以及它能够做什么。借助 Python 的 AIML 包,我们很容易实现人工智能聊天机器人。
1、安装Python aiml库
pip install aiml
2、获取alice资源
Python aiml安装完成后在Python安装目录下的 Lib/site-packages/aiml下会有alice子目录,这个是系统自带的一个简单的语料库。
3、Python下加载alice
取得alice资源之后就可以直接利用Python aiml库加载alice brain了。
# -*- coding: utf-8 -*-import aimlimport sysimport os def get_module_dir(name): path = getattr(sys.modules[name], '__file__', None) 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') + '/alice'#切换到语料库所在工作目录os.chdir(alice_path) alice = aiml.Kernel()alice.learn("startup.xml")alice.respond('LOAD ALICE') while True:print alice.respond(raw_input("Enter your message >> "))
上述流程非常的简单,接下来我们要自己从0开始创建自己的机器人。
创建标准启动文件
标准的做法是,创建一个名为std-startup.xml的启动文件,作为加载AIML文件的主入口点。在这个例子中,我们将创建一个基础的文件,它匹配一个模式,并且返回一个相应。我们想要匹配模式load aiml b,然后让它加载我们的aiml大脑作为响应。我们将在一步内创建basic_chat.aiml文件。
<aiml version="1.0.1" encoding="UTF-8"> <!-- std-startup.xml --> <!-- Category是一个自动的AIML单元 --> <category> <!-- Pattern用来匹配用户输入 --> <!-- 如果用户输入 "LOAD AIML B" --> <pattern>LOAD AIML B</pattern> <!-- Template是模式的响应 --> <!-- 这里学习一个aiml文件 --> <template> <learn>basic_chat.aiml</learn> <!-- 你可以在这里添加更多的aiml文件 --> <!--<learn>more_aiml.aiml</learn>--> </template> </category> </aiml>
新闻热点
疑难解答