首页 > 编程 > Python > 正文

使用Python AIML搭建聊天机器人的方法示例

2020-02-15 22:15:23
字体:
来源:转载
供稿:网友

AIML全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由RichardS. Wallace 博士和Alicebot开源软件组织于1995-2000年间发明创造的。AIML是一种为了匹配模式和确定响应而进行规则定义的 XML 格式。

AIML的设计目标如下:

    AIML应当为大众所易学易会。 AIML应当使最小的概念得以编码使之基于L.I.C.E支持一种刺激-响应学科系统组件。 AIML应当兼容XML。 书写AIML可处理程序文件应当简单便捷。 AIML对象应当对人而言具有良好的可读性和清晰度。 AIML的设计应当正式而简洁。 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>            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表