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的优势可以开发一个基本的问答系统,比如天气、交通、股市之类的。

以上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值