欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

不到20行代碼用Python做一個智能聊天機器人

 更新時間:2019年04月19日 15:15:36   作者:小安和小編  
小編先向大家介紹一下本次運用到的python庫,本次項目主要運用到的庫有wxpy和chatterbot。對Python做一個智能聊天機器人的相關(guān)知識感興趣的朋友跟隨小編一起看看吧

伴隨著自然語言技術(shù)和機器學(xué)習(xí)技術(shù)的發(fā)展,越來越多的有意思的自然語言小項目呈現(xiàn)在大家的眼前,聊天機器人就是其中最典型的應(yīng)用,今天小編就帶領(lǐng)大家用不到20行代碼,運用兩種方式搭建屬于自己的聊天機器人。

1.神器wxpy庫

首先,小編先向大家介紹一下本次運用到的python庫,本次項目主要運用到的庫有wxpy和chatterbot。

wxpy是在 itchat庫 的基礎(chǔ)上,通過大量接口優(yōu)化,讓模塊變得簡單易用,并進行了功能上的擴展。什么是接口優(yōu)化呢,簡單來說就是用戶直接調(diào)用函數(shù),并輸入幾個參數(shù),就可以使用了,不需要關(guān)心函數(shù)的底層實現(xiàn)。

Chatterbot是一個基于機器學(xué)習(xí)的聊天機器人引擎,基于python編寫而成,它可以自可以從已有的對話中進行記憶匹配。

Wxpy因為采用大量的接口集成,所以在使用的時候非常方便,下圖是簡單的wxpy使用,通過進入交互式界面,可以與指定的好友進行交談。代碼及效果如下圖所示:

上述的代碼中print_msg函數(shù)采用了wxpy庫的裝飾器,裝飾器在這里的作用可以查閱其源碼進行查看,主要是用于注冊消息的配置。例如print_msg函數(shù),可以將對方的回復(fù)消息進行輸出。而在手機微信上我們同樣看到了雙方之間交流,所以從某個層面上來講,wxpy就是PC端的微信。

2.圖靈聊天機器人

下面我們將會實現(xiàn)第一個聊天機器人,該機器人是wxpy內(nèi)集成的圖靈機器人,由于圖靈機器人的高度專業(yè),所以制作出來的聊天機器人交流也非常的順暢。那如何將圖靈機器人嵌入到我們的交流中呢?首先我們需要去圖靈機器人官網(wǎng)注冊得到我們自己的機器人,注冊完成后,我們便可以生成圖靈機器人,并得到一個api_key,如下圖所示:

這個api_key便是我們后續(xù)制作聊天機器人的關(guān)鍵。圖靈聊天機器人的代碼和效果圖如下圖所示:

由上圖右邊的聊天記錄來看,依托圖靈機器人的聊天機器人效果非常的出色,而且還可以進行天氣查詢等功能。

3.自己訓(xùn)練的聊天機器人

下面我們不依托于圖靈機器人,而是依靠ChatterBot來制作一款機器人,這款機器人,雖然效果較上一款性能差距較大,但是它可以訓(xùn)練我們自己的語料庫,下面是代碼和效果的展示。

由上圖可以看出,或許是受制于語料庫資源過少,而且也不能夠主動上網(wǎng)查詢。所以要想使其能夠回答和提問基本吻合還需要大量的工作。

難道除了這些我們就沒有其它可以做的了嗎?當然不是,ChatterBot為我們提供了可以訓(xùn)練的方式,我們可以提供素材來讓其進行訓(xùn)練。代碼和效果如下圖所示:

我們首先定義了一個chatbot,然后將訓(xùn)練數(shù)據(jù)加入進去,讓模型匹配我們的問題,得到訓(xùn)練的結(jié)果。

右邊的圖展示了我們的結(jié)果,由結(jié)果可以看出,由于我們的訓(xùn)練集中沒有“在”這個數(shù)據(jù),所以得到的回答很莫名其妙,而對于“你好”和“你叫什么名字?”這兩個問題的回答則得到了很完美的答復(fù),這就是加入訓(xùn)練數(shù)據(jù)集的優(yōu)勢所在。

trainer.train([ "你好", "你好,很高興認識你", "你叫什么名字?", "我叫chat-robot-2.",]) 

(訓(xùn)練集的數(shù)據(jù))

你也可以加入你想要訓(xùn)練的語料庫進行訓(xùn)練,一樣會得到不錯的效果。有的同學(xué)可能會問這是如何訓(xùn)練的呢?答案就在chatterbot的源碼里,打開源碼我們可以這里的chatbot選擇的訓(xùn)練方法是“BestMatch”,也即最匹配方式,從訓(xùn)練的對話中找到最相識的語句,然后根據(jù)對話提供回答。

總結(jié)

以上所述是小編給大家介紹的不到20行代碼用Python做一個智能聊天機器人,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 基于Python實現(xiàn)牛牛套圈小游戲的示例代碼

    基于Python實現(xiàn)牛牛套圈小游戲的示例代碼

    “幸運牛牛套圈圈”套住歡樂,圈住幸福,等你來挑戰(zhàn)!這篇文章小編主要為大家介紹一款基于Python實現(xiàn)牛牛套圈小游戲,感興趣的小伙伴可以了解一下
    2023-02-02
  • Python實戰(zhàn)之外星人入侵游戲示例代碼

    Python實戰(zhàn)之外星人入侵游戲示例代碼

    這篇文章主要介紹了利用Python編寫的外星人入侵游戲的示例代碼,文中的代碼講解詳細,對我們學(xué)習(xí)Python有一定的幫助,感興趣的可以學(xué)習(xí)一下
    2022-01-01
  • python實現(xiàn)象棋游戲

    python實現(xiàn)象棋游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)象棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Python中的asyncio代碼詳解

    Python中的asyncio代碼詳解

    asyncio 是用來編寫 并發(fā) 代碼的庫,使用 async/await 語法。 asyncio 被用作多個提供高性能 Python 異步框架的基礎(chǔ),包括網(wǎng)絡(luò)和網(wǎng)站服務(wù),數(shù)據(jù)庫連接庫,分布式任務(wù)隊列等等。這篇文章主要介紹了Python中的asyncio,需要的朋友可以參考下
    2019-06-06
  • Pandas reindex重置索引的使用

    Pandas reindex重置索引的使用

    本文主要介紹了Pandas reindex重置索引的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • python 操作mysql數(shù)據(jù)中fetchone()和fetchall()方式

    python 操作mysql數(shù)據(jù)中fetchone()和fetchall()方式

    這篇文章主要介紹了python 操作mysql數(shù)據(jù)中fetchone()和fetchall()方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python虛擬環(huán)境創(chuàng)建的兩種方法

    python虛擬環(huán)境創(chuàng)建的兩種方法

    本文主要介紹了python虛擬環(huán)境創(chuàng)建的兩種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • python實現(xiàn)二分類和多分類的ROC曲線教程

    python實現(xiàn)二分類和多分類的ROC曲線教程

    這篇文章主要介紹了python實現(xiàn)二分類和多分類的ROC曲線教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 一起解密Python中的*args和**kwargs無限可能的函數(shù)參數(shù)

    一起解密Python中的*args和**kwargs無限可能的函數(shù)參數(shù)

    這篇文章主要來跟大家一起解密Python中的*args和**kwargs無限可能的函數(shù)參數(shù)使用的靈活性,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Python創(chuàng)建簡單的神經(jīng)網(wǎng)絡(luò)實例講解

    Python創(chuàng)建簡單的神經(jīng)網(wǎng)絡(luò)實例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于如何在Python中創(chuàng)建一個簡單的神經(jīng)網(wǎng)絡(luò)的相關(guān)知識點,有興趣的朋友們可以參考下。
    2021-01-01

最新評論