摘要:利用微信公眾號(hào)開發(fā)一個(gè)聊天機(jī)器人蝌麸。
在上一篇文章里式曲,我們已經(jīng)完成了聊天機(jī)器人的基本框架囚枪,現(xiàn)在我們要讓它更進(jìn)一步咆槽。
機(jī)器鸚鵡
上篇文章里的實(shí)現(xiàn)服務(wù)器只能給指定的用戶回復(fù)消息陈轿,這是因?yàn)槲覀儼鸦貜?fù)里的toUser字段寫死了。正確的做法應(yīng)該是從收到的消息里解析出fromUser字段秦忿,然后填在回復(fù)的toUser字段济欢,這樣就可以跟任意用戶對(duì)話了。為了免去處理XML的麻煩小渊,從現(xiàn)在開始法褥,我們將徹底放棄上一篇文章里的代碼,轉(zhuǎn)而使用現(xiàn)成的框架WeRoBot酬屉。
首先還是使用pip安裝WeRoBot半等。
pip install WeRoBot
WeRoBot的用法,在它的文檔里已經(jīng)寫得比較詳細(xì)了呐萨,只需要依葫蘆畫瓢就可以寫出一個(gè)簡(jiǎn)單的機(jī)器人杀饵。
import werobot
robot = werobot.WeRoBot(token='你的Token')
@robot.text
def echo(message):
return message.content
robot.run()
這段代碼實(shí)現(xiàn)了一個(gè)會(huì)學(xué)舌機(jī)器鸚鵡,它接收文本消息并將消息內(nèi)容原樣返回谬擦。WeRoBot把消息驗(yàn)證和XML處理都封裝好了切距,因此這段代碼比之前的要簡(jiǎn)單許多。
女神Alice
解決了接收和回復(fù)消息的基本問(wèn)題惨远,接下來(lái)就要給我們的機(jī)器人添加“智能”了谜悟。感謝科學(xué)家和程序員們的辛勤勞動(dòng),我們并不需要自己編寫復(fù)雜的算法北秽,只需要增加短短的幾行代碼就可以召喚一個(gè)專屬女神Alice陪你聊天了葡幸!首先要安裝aiml模塊。
pip install aiml
改造一下剛才的代碼贺氓,完成從鸚鵡到女神的飛躍蔚叨!
import werobot
import aiml
import os
os.chdir('/usr/lib/python2.7/site-package/aiml/alice')
alice = aiml.Kernel()
alice.learn("startup.xml")
alice.respond('LOAD ALICE')
robot = werobot.WeRoBot(token='你的Token')
@robot.text
def echo(message):
return alice.respond(message.content)
robot.run()
你可以嘗試調(diào)戲一下自己的機(jī)器人,效果絕對(duì)超乎想像辙培,反正我是被震驚到了蔑水。不過(guò)……只能用English。
現(xiàn)在扬蕊,讓我們來(lái)了解一下女神Alice的身世搀别。Alice是"Artificial Linguistic Internet Computer Entity"的縮寫,是由Richard Wallace開發(fā)的自然語(yǔ)言聊天機(jī)器人厨相,曾經(jīng)多次活動(dòng)人工智能領(lǐng)域的大獎(jiǎng)领曼。如果你仔細(xì)閱讀了上面的代碼鸥鹉,就會(huì)注意到/usr/lib/python2.7/site-package/aiml/alice這個(gè)目錄。這里就是Alice的智慧所在庶骄,里面有很多擴(kuò)展名為aiml的文件毁渗,這些文件定義了Alice對(duì)各種問(wèn)題的回答方式。如果你打開這些aiml文件看一下单刁,就會(huì)對(duì)女神的心思了然于胸了灸异。想了解更多關(guān)于AIML的信息,請(qǐng)?jiān)L問(wèn)官方網(wǎng)站羔飞。PandoraBots提供了一些幫助創(chuàng)建AIML機(jī)器人的工具肺樟。
不管Alice有多么善解人意,本質(zhì)上來(lái)講逻淌,她都是按照預(yù)先寫好的規(guī)則來(lái)回復(fù)么伯,她的“智慧”取決于我們提供的規(guī)則庫(kù)。接下來(lái)將嘗試采用當(dāng)下最火熱的機(jī)器學(xué)習(xí)的方式來(lái)實(shí)現(xiàn)更加智能的聊天機(jī)器人卡儒。