成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

chatbot:基于 AIML 的 PHP 聊天機(jī)器人

luckyw / 1150人閱讀

摘要:基于的聊天天機(jī)器人本文章中講介紹用實(shí)現(xiàn)的一個(gè)小聊天機(jī)器人程序,用到了操作相關(guān)的知識(shí)和數(shù)據(jù)庫,可以用來學(xué)習(xí)。關(guān)于數(shù)據(jù)庫存儲(chǔ)日志的表是存儲(chǔ)和的有關(guān)屬性的表相當(dāng)于我們聊天機(jī)器人的腦袋,幫我們記住一些屬性。

基于AIML的PHP聊天天機(jī)器人

本文章中講介紹用PHP實(shí)現(xiàn)的一個(gè)小聊天機(jī)器人程序,用到了php操作dom相關(guān)的知識(shí)和mysql數(shù)據(jù)庫,可以用來學(xué)習(xí)。代碼可以從https://github.com/kompasim/c...下載。

English 0. 提醒

該聊天機(jī)器人是參考AIML 2.5和Program-P而寫成的,這聊天機(jī)器人實(shí)現(xiàn)的aiml標(biāo)簽和標(biāo)準(zhǔn)的aiml標(biāo)簽由一定的差距,所以你從網(wǎng)上下載的aiml語料庫可能沒法正常工作。適用于UTF-8編碼的,單詞后綴根據(jù)不同的時(shí)態(tài)而改變的那些語言。感興趣的朋友可以自己研究學(xué)習(xí)一下。

1. 介紹

這是一個(gè)用PHP寫的aiml解析器,目前在PHP5.4環(huán)境上能正常運(yù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)建一個(gè)新的aiml文件然后在aiml/chatbot.aiml文件用include標(biāo)簽引入它。

5. 關(guān)于aiml文件

aiml 必須要放在 aiml 目錄內(nèi).

chatbot.aiml 是入口文件 ,它里面的 aiml 標(biāo)簽可以包含多個(gè) category 標(biāo)簽 , 一個(gè) default標(biāo)簽和多個(gè) include標(biāo)簽。

被你添加的其它 aiml 文件在根aiml標(biāo)簽里必須要包含一個(gè) topic 標(biāo)簽 , 這個(gè)topic標(biāo)簽可以包含多個(gè) category 標(biāo)簽和一個(gè)default標(biāo)簽 (這里的其他aiml文件不能寫include標(biāo)簽,include標(biāo)簽只能出現(xiàn)在chatbot.aiml文件里)。

6. 測(cè)試聊天機(jī)器人

你可以打開index.php進(jìn)行和機(jī)器人聊天做測(cè)試。

7. 調(diào)用聊天機(jī)器人

如果希望在自己的應(yīng)用里面調(diào)用聊天機(jī)器人我們可以這樣調(diào)用它的api api.php?requestType=talk&input=你好

8. 關(guān)于匹配規(guī)則

修改之后的匹配規(guī)則 :

* ---> (S+)
# ---> S+
_ ---> .*
= ---> S*
9. 關(guān)于AIML標(biāo)簽

本聊天機(jī)器人的aiml標(biāo)簽和標(biāo)準(zhǔn)aiml標(biāo)簽有所不同,我根據(jù)需求對(duì)標(biāo)簽做了一些個(gè)性化,我們可以在AIML.MD文件里面查到更多本聊天機(jī)器人所支持的標(biāo)簽。

10. 關(guān)于api.php的返回?cái)?shù)據(jù)
{
    "status": "success",
    "type": "talk",
    "message": "haha ...",
    "data": {
        "arr1": {
            "name11": "value11",
            "name12": "value12"
        },
        "arr2": {
            "name21": "value21",
            "name22": "value22"
        }
    }
}

當(dāng)你訪問 api.php?requestType=talk&userInput=haha 的時(shí)候能得到以上json數(shù)據(jù) .


    haha
    
11. 關(guān)于userId

當(dāng)你給api.phpGET方式發(fā)送請(qǐng)求的時(shí)候帶了userId參數(shù), 這個(gè)參數(shù)會(huì)當(dāng)作用戶的唯一標(biāo)識(shí)。若你沒給這個(gè)參數(shù),程序會(huì)用用戶的ip當(dāng)作唯一標(biāo)示。

$userId = isset($_REQUEST["userId"]) ? $_REQUEST["userId"] : $_SERVER["REMOTE_ADDR"];
12. 關(guān)于多個(gè)chatbot

如果你把"chatbot/Config.php"文件里面的multiChatbot設(shè)置成false,所有的用戶會(huì)分享一個(gè)defaultchatbot。當(dāng)你設(shè)置成true的時(shí)候每個(gè)用戶都會(huì)擁有獨(dú)立的chatbot,這些chatbot會(huì)吧userId作為唯一標(biāo)示,每個(gè)用戶給自己的chatbot設(shè)置相關(guān)名字,性別,年齡之類的屬性。當(dāng)你在寫一個(gè)語音助手之類的時(shí)候多個(gè)chatbot功能會(huì)特別好用,因?yàn)橛脩艨梢越o自己的語音助手設(shè)置名字了。

$user = $this->getUser($this->_unique);
if ($this->_config->multiChatbot){
    $bot = $this->getBot($this->_unique);
} else {
    $bot = $this->getBot("default");
}
13. 關(guān)于userInfo和botInfo

userInfo和botInfo是指用戶和聊天機(jī)器人的一些屬性,例如姓名,年齡,性別等等。用戶可以改變這些屬性,當(dāng)然這是我們當(dāng)寫aiml語料庫的時(shí)候通過一些標(biāo)簽來實(shí)現(xiàn)的,我們可以從AIML.MD 學(xué)習(xí)set, get, del, user, bot等有關(guān)標(biāo)簽。


    my name is *
    



    what is my name
    
14. 關(guān)于數(shù)據(jù)庫

log 存儲(chǔ)日志的表 .

property 是存儲(chǔ)userbot的有關(guān)屬性的表 , 相當(dāng)于我們聊天機(jī)器人的腦袋,幫我們記住一些屬性。 set ,get, del, user, bot 等標(biāo)簽是用來操作這個(gè)表的 .

data 表用來存儲(chǔ)用戶的輸入,機(jī)器人的回復(fù),input , that, topic 等標(biāo)簽會(huì)操作Parser::$_data數(shù)組,每次程序開始運(yùn)行的時(shí)候程序會(huì)從這個(gè)表加載數(shù)據(jù)到這個(gè)數(shù)組里,然后程序要結(jié)束的時(shí)候再會(huì)存儲(chǔ)到這個(gè)表里面。表的唯一標(biāo)示還是userId

源碼

https://github.com/kompasim/chatbot

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/110350.html

相關(guān)文章

  • chatbot基于 AIML PHP 聊天機(jī)器人

    摘要:基于的聊天天機(jī)器人本文章中講介紹用實(shí)現(xiàn)的一個(gè)小聊天機(jī)器人程序,用到了操作相關(guān)的知識(shí)和數(shù)據(jù)庫,可以用來學(xué)習(xí)。關(guān)于數(shù)據(jù)庫存儲(chǔ)日志的表是存儲(chǔ)和的有關(guān)屬性的表相當(dāng)于我們聊天機(jī)器人的腦袋,幫我們記住一些屬性。 基于AIML的PHP聊天天機(jī)器人 本文章中講介紹用PHP實(shí)現(xiàn)的一個(gè)小聊天機(jī)器人程序,用到了php操作dom相關(guān)的知識(shí)和mysql數(shù)據(jù)庫,可以用來學(xué)習(xí)。代碼可以從https://github...

    MycLambert 評(píng)論0 收藏0
  • 微信公號(hào)DIY:一小時(shí)搭建微信聊天機(jī)器人

    摘要:最近借用了女朋友的公號(hào),感覺如果只是用來發(fā)文章,太浪費(fèi)微信給提供的這些功能了。想了想,先從最簡單的開始,做一個(gè)聊天機(jī)器人吧。是一款接口的,基于一系列規(guī)則和機(jī)器學(xué)習(xí)算法完成的聊天機(jī)器人。 最近借用了女朋友的公號(hào),感覺如果只是用來發(fā)文章,太浪費(fèi)微信給提供的這些功能了。想了想,先從最簡單的開始,做一個(gè)聊天機(jī)器人吧。 使用Python實(shí)現(xiàn)聊天機(jī)器人的方案有多種:AIML、chatterBot以...

    source 評(píng)論0 收藏0
  • 【翻譯】用AIML實(shí)現(xiàn)Python人工智能聊天機(jī)器人

    摘要:前言用的包很容易就能寫一個(gè)人工智能聊天機(jī)器人。他開發(fā)了一個(gè)叫的機(jī)器人并且贏了幾個(gè)人工智能的獎(jiǎng)項(xiàng)。這條在它收到一個(gè)以開始的消息時(shí)會(huì)隨機(jī)回復(fù)。那也有一個(gè)可以讓你玩點(diǎn)的機(jī)器人。機(jī)器人需要變活。這就要靠機(jī)器人大腦文件了??聪鹿?jié)寫命令給機(jī)器人。 前言 用python的AIML包很容易就能寫一個(gè)人工智能聊天機(jī)器人。 AIML是Artificial Intelligence Markup Langu...

    seasonley 評(píng)論0 收藏0
  • 超贊!快來用Python搭建你AI老婆吧!

    摘要:夏天太熱,又不想出門,就讓我們用的來搭建屬于自己的可以對(duì)話的老婆吧本文擬使用的開發(fā)語言實(shí)現(xiàn)類似于的平臺(tái)的小娜,或者是下的的。 夏天太熱,又不想出門,就讓我們用的Python來搭建屬于自己的?可以對(duì)話的AI老婆吧?   本文擬使用Python的開發(fā)語言實(shí)現(xiàn)類似于的WIndows平臺(tái)的小娜,或者是IOS下的Siri的。最終達(dá)到人機(jī)對(duì)話的效果。 showImg(https://segment...

    Tychio 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<