基于Python如何使用AIML搭建聊天機(jī)器人
借助 Python 的 AIML 包,我們很容易實(shí)現(xiàn)人工智能聊天機(jī)器人。AIML,全名為Artificial Intelligence Markup Language(人工智能標(biāo)記語言),是一種創(chuàng)建自然語言軟件代理的XML語言,是由Richard Wallace和世界各地的自由軟件社區(qū)在1995年至2002年發(fā)明的。
AIML 是什么?
AIML由Richard Wallace發(fā)明。他設(shè)計(jì)了一個(gè)名為 A.L.I.C.E. (Artificial Linguistics Internet Computer Entity 人工語言網(wǎng)計(jì)算機(jī)實(shí)體) 的機(jī)器人,并獲得了多項(xiàng)人工智能大獎(jiǎng)。有趣的是,圖靈測(cè)試的其中一項(xiàng)就在尋找這樣的人工智能:人與機(jī)器人通過文本界面展開數(shù)分鐘的交流,以此查看機(jī)器人是否會(huì)被當(dāng)作人類。AIML是一種為了匹配模式和確定響應(yīng)而進(jìn)行規(guī)則定義的 XML 格式。
AIML的官方網(wǎng)站:ALICE。
本文簡(jiǎn)單介紹下如何用Python編寫簡(jiǎn)單的聊天機(jī)器人。
1. 安裝Python aiml庫
pip install aiml
2. 獲取alice資源
Python aiml安裝完成后在Python安裝目錄下的 Lib/site-packages/aiml下會(huì)有alice子目錄,將此目錄復(fù)制到工作區(qū)。
或者在Google code上下載alice brain: aiml-en-us-foundation-alice.v1-9.zip
3. Python下加載alice
取得alice資源之后就可以直接利用Python aiml庫加載alice brain了:
import aiml os.chdir('./res/alice') #切換工作目錄到alice文件夾下,視具體情況而定 alice = aiml.Kernel() alice.learn("startup.xml") alice.respond('LOAD ALICE')
注意加載時(shí)需要切換工作目錄到alice下。
4. 與alice聊天
加載之后就可以與alice聊天了,每次只需要調(diào)用respond接口:
alice.respond('hello') #這里的hello即為發(fā)給機(jī)器人的信息
5. 用Tornado搭建聊天機(jī)器人網(wǎng)站
利用Tornado可以很方便地搭建一個(gè)web接口的聊天機(jī)器人。具體的代碼可以在此鏈接下在:web接口的聊天機(jī)器人。
下載此代碼之后直接運(yùn)行main.py即可,然后可以通過瀏覽器訪問url與聊天機(jī)器人,url類似http://localhost/aiml?req=hello的形式(req參數(shù)即為發(fā)給機(jī)器人的信息)。
注意要運(yùn)行此代碼,需要安裝Python 的aiml與Tornado庫。
lwons.com上已經(jīng)搭建了這樣的web接口,可以訪問http://lwons.com/aiml?req=hello來測(cè)試下。
6. 搭建聊天機(jī)器人微信訂閱號(hào)
上一步的web接口可以很方便地改造成一個(gè)微信訂閱號(hào),實(shí)現(xiàn)的效果可以添加微信訂閱號(hào) CuriousGuys 后直接發(fā)送消息。如果需要微信訂閱號(hào)的代碼可以私信我。
訂閱號(hào)效果截圖:
以上所述給大家介紹了基于Python如何使用AIML搭建聊天機(jī)器人的相關(guān)內(nèi)容,希望本文所述對(duì)大家有所幫助。
相關(guān)文章
python+pygame實(shí)現(xiàn)代碼雨(黑客帝國(guó)既視感)
這篇文章主要介紹了python+pygame實(shí)現(xiàn)代碼雨(黑客帝國(guó)既視感),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Python基于lxml模塊解析html獲取頁面內(nèi)所有葉子節(jié)點(diǎn)xpath路徑功能示例
這篇文章主要介紹了Python基于lxml模塊解析html獲取頁面內(nèi)所有葉子節(jié)點(diǎn)xpath路徑功能,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python使用lxml模塊進(jìn)行xml節(jié)點(diǎn)數(shù)據(jù)解析的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-05-05python腳本調(diào)用iftop 統(tǒng)計(jì)業(yè)務(wù)應(yīng)用流量的思路詳解
這篇文章主要介紹了python腳本調(diào)用iftop 統(tǒng)計(jì)業(yè)務(wù)應(yīng)用流量的思路詳解,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10pd.DataFrame統(tǒng)計(jì)各列數(shù)值多少的實(shí)例
今天小編就為大家分享一篇pd.DataFrame統(tǒng)計(jì)各列數(shù)值多少的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python爬蟲包BeautifulSoup實(shí)例(三)
這篇文章主要為大家詳細(xì)介紹了Python爬蟲包BeautifulSoup實(shí)例,具有一定的參考價(jià)值,感興趣的朋友可以參考一下2018-06-06CentOS 7下安裝Python3.6 及遇到的問題小結(jié)
這篇文章主要介紹了CentOS 7下安裝Python3.6 及遇到的問題小結(jié),需要的朋友可以參考下2018-11-11python鏈接sqlite數(shù)據(jù)庫的詳細(xì)代碼實(shí)例
SQLite數(shù)據(jù)庫是一款非常小巧的嵌入式開源數(shù)據(jù)庫軟件,也就是說沒有獨(dú)立的維護(hù)進(jìn)程,所有的維護(hù)都來自于程序本身,它是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低2021-09-09Python分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)示例代碼
在Python中,分支結(jié)構(gòu)通過if、elif和else關(guān)鍵字來實(shí)現(xiàn)條件判斷,在使用if語句時(shí),程序會(huì)根據(jù)條件表達(dá)式的真假執(zhí)行相應(yīng)的代碼塊,這篇文章主要介紹了Python分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),需要的朋友可以參考下2024-03-03