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的優勢可以開發一個基本的問答系統,比如天氣、交通、股市之類的。
以上。
總結
- 上一篇: 线性代数知识整理
- 下一篇: r语言熵权法求权重(真实案例完整流程)