chatbot:基于AIML的PHP聊天天機器人
本文章中講介紹用PHP實現(xiàn)的一個小聊天機器人程序,用到了php操作dom相關(guān)的知識和mysql數(shù)據(jù)庫,可以用來學習。代碼可以從https://github.com/kompasim/chatbot下載。
0. 提醒
該聊天機器人是參考AIML 2.5和Program-P而寫成的,這聊天機器人實現(xiàn)的aiml標簽和標準的aiml標簽由一定的差距,所以你從網(wǎng)上下載的aiml語料庫可能沒法正常工作。適用于UTF-8編碼的,單詞后綴根據(jù)不同的時態(tài)而改變的那些語言。感興趣的朋友可以自己研究學習一下。
1. 介紹
這是一個用PHP寫的aiml解析器,目前在PHP5.4環(huán)境上能正常運行。
2. 數(shù)據(jù)庫配置
本程序用了MySQL數(shù)據(jù)庫,你需要把chatbot.sql 文件倒入到你的數(shù)據(jù)庫,然后在chatbot/Config.php文件里修改相關(guān)數(shù)據(jù)庫配置變量.
4. aiml語料庫資源
你可以直接編輯 aiml/chatbot.aiml 文件或者創(chuàng)建一個新的aiml文件然后在aiml/chatbot.aiml文件用include標簽引入它。
5. 關(guān)于aiml文件
aiml 必須要放在 aiml 目錄內(nèi).
chatbot.aiml 是入口文件 ,它里面的 aiml 標簽可以包含多個 category 標簽 , 一個 default標簽和多個 include標簽。
被你添加的其它 aiml 文件在根aiml標簽里必須要包含一個 topic 標簽 , 這個topic標簽可以包含多個 category 標簽和一個default標簽 (這里的其他aiml文件不能寫include標簽,include標簽只能出現(xiàn)在chatbot.aiml文件里)。
6. 測試聊天機器人
你可以打開index.php進行和機器人聊天做測試。
7. 調(diào)用聊天機器人
如果希望在自己的應用里面調(diào)用聊天機器人我們可以這樣調(diào)用它的api api.php?requestType=talk&input=你好
8. 關(guān)于匹配規(guī)則
修改之后的匹配規(guī)則 :
* ---> (S+) # ---> S+ _ ---> .* = ---> S*
9. 關(guān)于AIML標簽
本聊天機器人的aiml標簽和標準aiml標簽有所不同,我根據(jù)需求對標簽做了一些個性化,我們可以在AIML.MD文件里面查到