Python微信公眾號后臺開發(fā)<005>:集成智能聊天機器人?

?給公眾號集成一個智能聊天機器人

一州袒、前述

ChatterBot是一個基于機器學(xué)習(xí)的聊天機器人引擎,構(gòu)建在python上迷雪,主要特點是可以自可以從已有的對話中進行學(xué)(jiyi)習(xí)(pipei)。

二、具體

1剿干、安裝

是的,安裝超級簡單穆刻,用pip就可以啦

<pre style="margin: 0px; padding: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; white-space: pre-wrap; overflow-wrap: break-word; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-size: 14px; text-align: left; text-size-adjust: auto;">pip install chatterbot</pre>

2置尔、流程

大家已經(jīng)知道chatterbot的聊天邏輯和輸入輸出以及存儲,是由各種adapter來限定的氢伟,我們先看看流程圖榜轿,一會再一起看點例子,看看怎么用朵锣。

image

3谬盐、每個部分都設(shè)計了不同的“適配器”(Adapter)。

機器人應(yīng)答邏輯 => Logic Adapters
Closest Match Adapter 字符串模糊匹配(編輯距離)

Closest Meaning Adapter ?借助nltk的WordNet诚些,近義詞評估
Time Logic Adapter 處理涉及時間的提問
Mathematical Evaluation Adapter?涉及數(shù)學(xué)運算

存儲器后端 => Storage Adapters
?Read Only Mode 只讀模式设褐,當(dāng)有輸入數(shù)據(jù)到chatterbot的時候,數(shù)
據(jù)庫并不會發(fā)生改變
?Json Database Adapter 用以存儲對話數(shù)據(jù)的接口,對話數(shù)據(jù)以Json格式
進行存儲助析。
Mongo Database Adapter ?以MongoDB database方式來存儲對話數(shù)據(jù)

輸入形式 => Input Adapters

Variable input type adapter 允許chatter bot接收不同類型的輸入的犀被,如strings,dictionaries和Statements
Terminal adapter 使得ChatterBot可以通過終端進行對話
?HipChat Adapter 使得ChatterBot 可以從HipChat聊天室獲取輸入語句,通過HipChat 和 ChatterBot 進行對話
Speech recognition 語音識別輸入外冀,詳見chatterbot-voice

輸出形式 => Output Adapters
Output format adapter支持text寡键,json和object格式的輸出
Terminal adapter
HipChat Adapter
Mailgun adapter允許chat bot基于Mailgun API進行郵件的發(fā)送
Speech synthesisTTS(Text to speech)部分,詳見chatterbot-voice

4雪隧、代碼

計算模式

from chatterbot import ChatBot


bot = ChatBot(
    "Math & Time Bot",
    logic_adapters=[
        "chatterbot.logic.MathematicalEvaluation",
        "chatterbot.logic.TimeLogicAdapter"
    ],
    input_adapter="chatterbot.input.VariableInputTypeAdapter",
    output_adapter="chatterbot.output.OutputAdapter"
)

# 進行數(shù)學(xué)計算
question = "What is 4 + 9?"
print(question)
response = bot.get_response(question)
print(response)

print("\n")

# 回答和時間相關(guān)的問題
question = "What time is it?"
print(question)
response = bot.get_response(question)
print(response)
image

利用已經(jīng)提供好的小中文語料庫

from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer

chatbot = ChatBot("ChineseChatBot")
trainer = ChatterBotCorpusTrainer(chatbot)

# 使用中文語料庫訓(xùn)練它
trainer.train("chatterbot.corpus.chinese")

def response_text(sentence):
    res_text = chatbot.get_response(sentence)

    print(sentence , "----", res_text)

    return res_text
#
if __name__ == '__main__':

    # 開始對話
    while True:
        print(chatbot.get_response(input(">")))

    # print(response_text("你是誰"))
image

小黃雞語料更智能(推薦)

from chatterbot import ChatBot

bot = ChatBot('my-chat', database_uri='sqlite:///db.sqlite3')

def response_text(sentence):
    temp = bot.get_response(sentence)
    return temp.text

if __name__ == '__main__':
    # bot_response = response_text("你幾歲了")
    # print(bot_response)

    # 開始對話
    while True:
        print(response_text(input(">")))
image

小黃雞語料數(shù)據(jù)庫:

鏈接:https://pan.baidu.com/s/1bgGlyH4RwiB1UDud1P1DQw 密碼:wzny

Snip20191204_47.png

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末西轩,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子脑沿,更是在濱河造成了極大的恐慌藕畔,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件庄拇,死亡現(xiàn)場離奇詭異注服,居然都是意外死亡,警方通過查閱死者的電腦和手機措近,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門溶弟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瞭郑,你說我怎么就攤上這事辜御。” “怎么了屈张?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵擒权,是天一觀的道長。 經(jīng)常有香客問我阁谆,道長菜拓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任笛厦,我火速辦了婚禮纳鼎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘裳凸。我一直安慰自己贱鄙,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布姨谷。 她就那樣靜靜地躺著逗宁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪梦湘。 梳的紋絲不亂的頭發(fā)上瞎颗,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天件甥,我揣著相機與錄音,去河邊找鬼哼拔。 笑死引有,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的倦逐。 我是一名探鬼主播譬正,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼檬姥!你這毒婦竟也來了曾我?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤健民,失蹤者是張志新(化名)和其女友劉穎抒巢,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秉犹,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡蛉谜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了凤优。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悦陋。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡蜈彼,死狀恐怖筑辨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情幸逆,我是刑警寧澤棍辕,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站还绘,受9級特大地震影響楚昭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拍顷,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一抚太、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧昔案,春花似錦尿贫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至捞稿,卻和暖如春又谋,著一層夾襖步出監(jiān)牢的瞬間拼缝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工彰亥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留咧七,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓剩愧,卻偏偏與公主長得像猪叙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子仁卷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容