AIML初探
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- 1
- 2
- 3
- 4
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- 1
- 2
- 3
- 4
打开命令行,cd到工程目录下,在工程目录下执行是:
java -cp lib/Ab.jar Main bot = test action = chat trace = false- 1
即可执行,执行完成即可进行对话。输出内容类似:
Working Directory = /home/ruben/git/about/temp/aiml_ws Program AB 0.0.4.2 beta -- AI Foundation Reference AIML 2.0 implementation bot=test action=chat trace=false trace mode = false Name = test Path = /home/ruben/git/about/temp/aiml_ws/bots/test /home/ruben/git/about/temp/aiml_ws /home/ruben/git/about/temp/aiml_ws/bots /home/ruben/git/about/temp/aiml_ws/bots/test /home/ruben/git/about/temp/aiml_ws/bots/test/aiml /home/ruben/git/about/temp/aiml_ws/bots/test/aimlif /home/ruben/git/about/temp/aiml_ws/bots/test/config /home/ruben/git/about/temp/aiml_ws/bots/test/logs /home/ruben/git/about/temp/aiml_ws/bots/test/sets /home/ruben/git/about/temp/aiml_ws/bots/test/maps Preprocessor: 0 norms 0 persons 0 person2 Get Properties: /home/ruben/git/about/temp/aiml_ws/bots/test/config/properties.txt Loading AIML Sets files from /home/ruben/git/about/temp/aiml_ws/bots/test/sets Loading AIML Map files from /home/ruben/git/about/temp/aiml_ws/bots/test/maps AIML modified Wed Nov 16 09:45:20 CST 2016 AIMLIF modified Wed Nov 16 09:49:27 CST 2016 No deleted.aiml.csv file found No deleted.aiml.csv file found Loading AIML files from /home/ruben/git/about/temp/aiml_ws/bots/test/aimlif Reading Learnf file Loaded 4 categories in 0.008 sec --> Bot test 4 completed 0 deleted 0 unfinished (3[5])--你好啊-->(1[4])--<THAT>-->(1[3])--*-->(1[2])--<TOPIC>-->(1[1])--*-->(0[null,null]) 你好,我是聊天机器人小君。... (3[5])--星号是-->(2[5])--宝宝-->(1[4])--<THAT>-->(1[3])--*-->(1[2])--<TOPIC>-->(1[1])--*-->(0[null,null]) 知道啊,你的宝宝是name... (3[5])--星号是-->(2[5])--name-->(1[4])--<THAT>-->(1[3])--*-->(1[2])--<TOPIC>-->(1[1])--*-->(0[null,null]) 知道啊,name是你的宝宝啊... (3[5])--你知道-->(1[6])--*-->(1[5])--吗-->(1[4])--<THAT>-->(1[3])--*-->(1[2])--<TOPIC>-->(1[1])--*-->(0[null,null]) <srai>星号是 <star/... 24 nodes 18 singletons 4 leaves 0 shortcuts 2 n-ary 23 branches 0.9583333 average branching Human: 你好啊 Robot: 你好,我是聊天机器人小君。 Human: 你知道 宝宝 吗 Robot: 知道啊,你的宝宝是name Human: 你知道 name 吗 Robot: 知道啊,name是你的宝宝啊- 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的优势可以开发一个基本的问答系统,比如天气、交通、股市之类的。
以上。