作者 | 周蘿卜來源 | 蘿卜大雜燴我們學習一些如何使用 ChatterBot 庫在 Python 中創(chuàng)建
聊天機器人,該庫實現(xiàn)了各種機器學習算法來生成響應(yīng)對話,還是挺不錯的
1什么是聊天機器人
聊天機器人也稱為聊天機器人、機器人、人工代理等,基本上是由人工智能驅(qū)動的軟件程序,其目的是通過文本或語音與用戶進行對話。我們?nèi)粘=佑|的比較著名的例子包括 Siri、Alexa 等這些聊天機器人傾向于為用戶執(zhí)行特定任務(wù),聊天機器人經(jīng)常執(zhí)行諸如進行交易、預(yù)訂酒店、提交表格等任務(wù)。隨著人工智能領(lǐng)域的技術(shù)進步,聊天機器人的可能性也是無窮無盡的當然了,在當前技術(shù)下,聊天機器人還是有很多局限性的
-
領(lǐng)域知識 —— 由于真正的人工智能仍然遙不可及,任何聊天機器人在與人類對話時都很難完全理解對話含義
-
個性 —— 無法正確響應(yīng)和相當差的理解能力比任何聊天機器人的常見錯誤更重要,為聊天機器人添加個性仍然是很遙遠和困難的事情
我們可以將聊天機器人定義為兩類
-
基于特定規(guī)則 —— 在這種方法中,機器人是根據(jù)規(guī)則進行訓(xùn)練的。基于此,機器人可以回答簡單的查詢,但有時無法回答復(fù)雜的對話
-
自學 —— 這些機器人遵循機器學習方法,效率更高,并進一步分為另外兩類
-
基于檢索模型 —— 在這種方法中,機器人根據(jù)用戶輸入從響應(yīng)列表中檢索最佳響應(yīng)
-
生成模型 —— 這些模型通常會給出答案,而不是從一組答案中進行搜索,這也使它們成為智能機器人
好了,高大上的聊天機器人知識就先介紹到這里,下面我們就通過 chatterbot 來構(gòu)建一個簡單的在線聊天機器人
2ChatterBot 庫簡介
ChatterBot 是 Python 中的一個庫,它生成對用戶輸入的響應(yīng),使用多種機器學習算法來產(chǎn)生各種響應(yīng)。用戶可以更輕松地使用 ChatterBot 庫制作具有更準確響應(yīng)的聊天機器人ChatterBot 的設(shè)計允許機器人接受多種語言的訓(xùn)練,最重要的是,機器學習算法使機器人更容易使用用戶的輸入自行改進ChatterBot 可以輕松創(chuàng)建參與對話的軟件,每次聊天機器人從用戶那里獲得輸入時,它都會保存輸入和響應(yīng),這有助于沒有初始知識的聊天機器人使用收集到的響應(yīng)進行自我進化隨著響應(yīng)的增加,聊天機器人的準確性也會提高。程序從與輸入匹配的最接近匹配語句中選擇最接近匹配的響應(yīng),然后從該響應(yīng)的已知語句選擇中選擇響應(yīng)安裝 ChatterBot 也非常簡單
pip install chatterbot
下面我們就正式進入 Chatterbot 的世界吧
3構(gòu)建聊天機器人
機器人訓(xùn)練
Chatterbot 帶有一個數(shù)據(jù)實用程序模塊,可用于訓(xùn)練聊天機器人。目前該模塊中有十多種語言的訓(xùn)練數(shù)據(jù),我們可以拿來直接使用
https://github.com/gunthercox/chatterbot-corpus
下面是在 python 中開始使用 ChatterBot 的簡單示例
from chatterbot
import chatbot
from chatterbot.trainers
import ListTrainer
chatbot = Chatbot(
'Edureka')
trainer = ListTrainer(chatbot)
trainer.train([
'hi, can I help you find a course',
'sure I'd love to find you a course
', 'your course have been selected
'])
response = chatbot.get_response("I want a course")
print(response)
在例子中,我們根據(jù)提供的輸入從
聊天機器人獲得響應(yīng)
構(gòu)建 flask app
對于基本的 flask 結(jié)構(gòu),我們直接使用 GitHub 上的一個腳手架,這個是專門用來開發(fā) ChatterBot 應(yīng)用的
https://github.com/chamkank/flask-chatterbot
我們直接克隆項目就好把項目下載到本地之后,我們進行一些修改我們需要為 HTML 和 CSS 文件添加另外兩個目錄 static 和模板

修改 App.py 文件
from flask
import Flask, render_template, request
from chatterbot
import ChatBot
from chatterbot.trainers
import ChatterBotCorpusTrainer
app = Flask(__name__)
english_bot = ChatBot(
"Chatterbot", storage_adapter=
"chatterbot.storage.SQLStorageAdapter")
trainer = ChatterBotCorpusTrainer(english_bot)
trainer.train(
"chatterbot.corpus.english")
@app.route("/")
def home():
return render_template(
"index.html")
@app.route("/get")
def get_bot_response():
userText = request.args.get(
'msg')
return str(english_bot.get_response(userText))
if __name__ ==
"__main__":
app.run()
index.html 文件
html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。