聊天機器人學習總結(1)-chatterbot簡介

安裝前的準備

我用的是pycharm編譯器,看網上推崇的最好創建一個虛擬環境,來將不同項目所需求的依賴分別放在獨立的地方的一個工具,好處就是防止各個項目之間對同一個庫不同版本依賴的問題。想了解其詳情的可以點擊.下面就直接貼代碼.

1.使用 sudo pip install virtualenv 安裝virtualenv 
  在Ubuntu中,可以嘗試 sudo apt-get install python-virtualenv

2.virtualenv安裝完畢后,通常會創建一個項目文件夾,并在其下創建一個venv文件夾
  mkdir myproject
  cd myproject
  virtualenv venv

3.無論何時你想在某個項目上工作,只需要激活響應的環境  . venv/bin/activate

4.你現在已經激活了virtualenv,現在可以使用pip安裝其他模塊了

安裝

chatterbot 安裝有兩種方式:

  • 使用pip install chatterbot安裝
  • 直接在github chatterbot下載這個項目,其中examples文件夾中包含幾個例子,可以根據例子加深自己的理解。

創建chatterbot實例

首先先粘貼一下代碼,再根據代碼來講具體的內容,我的chatbot.py文件

from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer
from chatterbot.trainers import ListTrainer

class SimpleChat():

    def __init__(self):
        self.chatbot = ChatBot('myBot',
                               storage_adapter="chatterbot.storage.MongoDatabaseAdapter",
                               logic_adapters=[
                                   {
                                       'import_path': 'chatterbot.logic.BestMatch'
                                   },
                                   {
                                       'import_path': 'chatterbot.logic.LowConfidenceAdapter',
                                       'threshold': 0.6,
                                       'default_response': '正在學習中'
                                   }
                               ],
                               input_adapter="chatterbot.input.VariableInputTypeAdapter",
                               output_adapter="chatterbot.output.TerminalAdapter",
                               database_uri='mongodb://admin:admin@127.0.0.1:27017/admin?authMechanism=MONGODB-CR',
                               database='chatbot'
                               )

        self.chatbot.set_trainer(ListTrainer)
        self.chatbot.train("chatterbot.corpus.chinese")

    def get_response(self, info):
        #返回信息
        return str(self.chatbot.get_response(info))

if __name__ == '__main__':
    chat = SimpleChat()
    res = chat.get_response('你好啊')
    print(res)

首先先類中構造函數中創建了一個chatbot的實例

  • 參數1 ‘myBot’意思是創建了一個名叫myBot的機器人,(后面的參數都不是必填的,其都有默認參數)
  • storage_adapter 代表存儲適配器

存儲適配器提供了一個允許可以通過將storage_adaoter參數設置為要使用的存儲適配器的導入路徑來指定,其默認的是sqlite類型的。我在網上看到sqlite數據庫在大數據的時候會花費很長時間,正好我們后臺用的有mongodb,所以我采用的是mongodb類型(MongoDatabaseAdapter)的適配器。
mongodb有兩個參數 database_uri 和 database, 當你連接的只是本地數據庫,并且沒有驗證的時候,只用database(數據庫名)就可以了,如果連接遠程數據庫獲取需要驗證時,就需要兩個都要用。詳細信息點這里

  • logic_adapters是邏輯適配器,其可以有好幾個參數,并且可以一起使用。BestMatch 邏輯adater根據與輸入語句最接近的匹配的已知響應返回響應。TimeLogicAdapter 返回當前時間。MathematicalEvaluation可以執行數學表達式,并且計算出來結果。LowConfidenceAdapter 當高信度響應未知時,返回具有高置信度的默認響應。SpecificResponseAdapter 返回具體的響應到一個特定的輸入。詳細信息可以點這里

  • self.chatbot.train("chatterbot.corpus.chinese")這句話意思是支持中文聊天。這里需要注意一個地方:當時英文的時候,python2.7是可用的。當是中文的時候,需要python 3以上吧,反正我裝的是3.6最新版的。
    這個參數還可以這樣寫

deepThought.train("chatterbot.corpus.chinese")
deepThought.train([
    你好啊,
   我不好,
]) 

來實現訓練語句,這些語句會保存到數據庫
具體詳情請 點擊這里

  • self.chatbot.set_trainer(ListTrainer),允許使用列表表示會話的字符串列表來訓練聊天機器人。

chatBot實例有一個方法可以獲取響應值,chat.get_response('你好啊'),就會把我不好發送過來。

chatterbot還有許多參數可以自定義配置,這些東西我只是看了一下文檔,還沒有開始做,以后會補充到這個系列中來。這些東西可以在開發文檔中找到。

知行辦公,專業移動辦公平臺https://zx.naton.cn/
【總監】十二春秋之,3483099@qq.com
【Master】zelo,616701261@qq.com
【運營】狼行天下,897221533@qq.com;****
【產品設計】流浪貓,364994559@qq.com
【體驗設計】兜兜,2435632247@qq.com
【iOS】淘碼小工,492395860@qq.comiMcG33K,imcg33k@gmail.com
【Android】人猿居士,1059604515@qq.com;思路的頓悟,1217022114@qq.com
【java】首席工程師MR_W,feixue300@qq.com
【測試】土鏡問道,847071279@qq.com
【數據】喜樂多,42151960@qq.com
【安全】保密,你懂的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,963評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,348評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,083評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,706評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,442評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,802評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,795評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,983評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,542評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,287評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,486評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,030評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,710評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,116評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,412評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,224評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,462評論 2 378

推薦閱讀更多精彩內容

  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,170評論 4 61
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,721評論 25 708
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,825評論 18 139
  • 有人說,一個人走著很瀟灑。以前我也這么想。 后來的某天,我獨自一人在商場里逛街買衣服,那種孤獨感竟升華成一種無助感...
    秦嶺影武者閱讀 343評論 0 1
  • 之前我推薦Android用戶下載“靜讀天下”APP閱讀英文著作,就是為了配合詞典軟件查單詞的,廢話不多說,Andr...
    面朝三帆閱讀 6,340評論 0 1