赞
踩
AIML的全称是 Artificial Intelligence Modelling Language,是基于xml格式标签,用于开发的人工智能应用程序。
它的特点就是基于对话模板的匹配,因而需要大量的对话库。在实际的开发过程中需要考虑到全面的对话场景才能实现较好的对话体验。
AIML主要应用于专家系统或者领域内的问答系统,在这些领域内AIML具有相当的优势。缺点就是不易读,实现效率低,需要对标签相当的熟悉才能进行较好的开发。
- 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
根据2中的下载链接下载压缩包,直接解压就可以得到工作目录了。
- <?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>
在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
即可执行,执行完成即可进行对话。输出内容类似:
- 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是你的宝宝啊
以上变实现了基本的聊天机器人。
后续基于AIML的优势可以开发一个基本的问答系统,比如天气、交通、股市之类的。
以上。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。