5分鐘內(nèi)搭建你的第一個(gè)Python聊天機(jī)器人
前言
在人工智能時(shí)代,聊天機(jī)器人日益流行。它是業(yè)界設(shè)計(jì)用來簡(jiǎn)化人機(jī)交互的最新工具。從電子商務(wù)到醫(yī)療保健機(jī)構(gòu),每個(gè)人都希望使用Chatbot與用戶進(jìn)行交互。
什么是聊天機(jī)器人
聊天機(jī)器人是一種軟件應(yīng)用程序,用于通過文本或文本到語音進(jìn)行在線聊天對(duì)話,而不是與真人代理直接接觸。-根據(jù)維基百科。
聊天機(jī)器人的類型
聊天機(jī)器人可以分為兩類
- 基于規(guī)則的
- 自學(xué)習(xí)
基于規(guī)則的:-基于規(guī)則的聊天機(jī)器人訓(xùn)練聊天機(jī)器人回答基于預(yù)先訓(xùn)練的規(guī)則的問題。這些類型的聊天機(jī)器人很適合進(jìn)行簡(jiǎn)單的查詢。
自主學(xué)習(xí)聊天機(jī)器人:自主學(xué)習(xí)聊天機(jī)器人基于機(jī)器學(xué)習(xí)算法,它們比基于規(guī)則的聊天機(jī)器人更聰明。他們可以自己學(xué)習(xí)。
聊天機(jī)器人是如何工作的
由人工智能驅(qū)動(dòng)的聊天機(jī)器人是智能的,也可以自己學(xué)習(xí)。它們使用自然語言處理和機(jī)器學(xué)習(xí)算法來學(xué)習(xí)和獲取數(shù)據(jù)。
例如:谷歌助手,Alexa, Siri
智能的人工智能聊天機(jī)器人提供用戶數(shù)據(jù),并學(xué)習(xí)和嘗試提高自己。他們用復(fù)雜的人工智能算法分析它,并以文本或語音的形式輸出響應(yīng)。
由于這些機(jī)器人可以從行為和經(jīng)驗(yàn)中學(xué)習(xí),它們可以對(duì)廣泛的查詢和命令作出回應(yīng)。
開始搭建
今天,我們將使用ChatterBot庫(kù)創(chuàng)建python chatbot。讓我們開始吧!
1. 創(chuàng)建虛擬環(huán)境
pipenv是一個(gè)輕松創(chuàng)建虛擬環(huán)境的python庫(kù)。
- pip install pipenv
- pipenv install
2. 安裝庫(kù)
我們將使用ChatterBot庫(kù)來創(chuàng)建簡(jiǎn)單的Python Chatbot。通過pip命令安裝chatterbot和chatterbot_corpus。
- pipenv install chatterbot
- pipenv install chatterbot_corpus
3.創(chuàng)造和訓(xùn)練聊天機(jī)器人
- from chatterbot import ChatBot
- from chatterbot.trainers import ChatterBotCorpusTrainer
- BOTNAME = "Pyter"
- def start():
- bot = ChatBot(BOTNAME,
- logic_adapters=[
- {
- 'import_path': 'chatterbot.logic.BestMatch',
- 'default_response': 'I am sorry, but I do not understand.',
- 'maximum_similarity_threshold': 0.90,
- },
- ],
- preprocessors = [
- "chatterbot.preprocessors.clean_whitespace",
- ],
- input_adaptor="chatterbot.input.TerminalAdaptor",
- output_adaptor="chatterbot.output.TerminalAdaptor",
- database_uri='sqlite:///database.sqlite3')
- trainer = ChatterBotCorpusTrainer(bot)
- # Train based on the english corpus
- trainer.train(
- "chatterbot.corpus.english",
- "chatterbot.corpus.english.greetings",
- "chatterbot.corpus.english.conversations",
- )
- print(f"Hello I am {BOTNAME}")
- while True:
- try:
- bot_input = input("You: ")
- bot_respose = bot.get_response(bot_input)
- print(f"{BOTNAME}: {bot_respose}")
- except(KeyboardInterrupt, EOFError, SystemExit):
- break
- if __name__ == "__main__":
- start()