1.简介
AIML的全称是 Artificial Intelligence Modelling Language,是基于xml格式标签,用于开发的人工智能应用程序。
它的特点就是基于对话模板的匹配,因而需要大量的对话库。在实际的开发过程中需要考虑到全面的对话场景才能实现较好的对话体验。
AIML主要应用于专家系统或者领域内的问答系统,在这些领域内AIML具有相当的优势。缺点就是不易读,实现效率低,需要对标签相当的熟悉才能进行较好的开发。
2.部分参考资源
wiki:https://en.wikipedia.org/wiki/AIML
官网:www.alicebot.org
下载链接:https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/program-ab/program-ab-0.0.4.3.zip
简易教程地址:https://www.tutorialspoint.com/aiml/aiml_srai_tag.htm
3.示例
3.1创建工程
根据2中的下载链接下载压缩包,直接解压就可以得到工作目录了。
3.2在bots目录下新建test文件夹,在test文件夹目录下新建aiml,aimlif,maps,config,sets为文件名的文件夹。
3.3在aiml下新建:test.aiml,复制以下内容:
<?xml version = "1.0" encoding = "UTF-8"?>
<aiml >
<category>
<pattern> 星号是 宝宝</pattern>
<template>知道啊,你的宝宝是name</template>
</category>
<category>
<pattern> 星号是 name</pattern>
<template>知道啊,name是你的宝宝啊</template>
</category>
<category>
<pattern>你知道 * 吗</pattern>
<template>
<srai>星号是 <star/></srai>
</template>
</category>
<category>
<pattern> 你好啊 </pattern>
<template>你好,我是聊天机器人小君。</template>
</category>
</aiml>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
在aimlif目录下新建test.aiml.csv文件,复制以下内容:
0,你好啊,*,*,你好,我是聊天机器人小君。,test.aiml
0,星号是 宝宝,*,*,知道啊,你的宝宝是name,test.aiml
0,星号是 name,*,*,知道啊,name是你的宝宝啊,test.aiml
0,你知道 * 吗,*,*,<srai>星号是 <star/></srai>,test.aiml
打开命令行,cd到工程目录下,在工程目录下执行是:
java -cp lib/Ab.jar Main bot = test action = chat trace = false
即可执行,执行完成即可进行对话。输出内容类似:
... -- .
.
..
..
.
-->
[]---->[]--<>-->[]---->[]--<>-->[]---->[,] ...
[]---->[]---->[]--<>-->[]---->[]--<>-->[]---->[,] ...
[]---->[]---->[]--<>-->[]---->[]--<>-->[]---->[,] ...
[]---->[]---->[]---->[]--<>-->[]---->[]--<>-->[]---->[,] <> <...
- .
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
以上变实现了基本的聊天机器人。
4.后续工作
后续基于AIML的优势可以开发一个基本的问答系统,比如天气、交通、股市之类的。
以上。