如何在 Python 中逐步製作聊天機器人 [Python Chatterbox 指南]

已發表: 2020-07-27

目錄

如何用 Python 製作聊天機器人?

在過去的幾年裡, Python 聊天機器人在科技和商業領域廣受歡迎。 這些智能機器人非常擅長模仿自然人類語言並與人類交談,以至於各個工業部門的公司都在採用它們。 從電子商務公司到醫療機構,每個人似乎都在利用這個漂亮的工具來推動商業利益 在本文中,我們將學習使用 Python的聊天機器人以及如何使用 Python 製作聊天機器人。

從世界頂級大學在線學習機器學習——碩士、高級管理人員研究生課程和 ML 和 AI 高級證書課程,以加快您的職業生涯。

什麼是聊天機器人?

聊天機器人是一種基於人工智能的軟件,旨在以自然語言與人類互動。 這些聊天機器人通常通過聽覺或文字方式進行交流,它們可以毫不費力地模仿人類語言,以類似人類的方式與人類交流。 聊天機器人可以說是自然語言處理的最佳應用之一。

聊天機器人可以分為兩個主要變體——基於規則的和自學的。

基於規則的方法訓練聊天機器人根據最初訓練的一組預定規則回答問題。 這些設定的規則可以非常簡單,也可以非常複雜。 雖然基於規則的聊天機器人可以很好地處理簡單的查詢,但它們通常無法處理更複雜的查詢/請求。

python中的聊天機器人

顧名思義,自學機器人是可以自學的聊天機器人。 這些利用人工智能和機器學習等先進技術從實例和行為中訓練自己。 自然,這些聊天機器人比基於規則的機器人要聰明得多。 自學習機器人可以進一步分為兩類——基於檢索的或生成的。

1. 基於檢索的聊天機器人

基於檢索的聊天機器人是一種基於預定義輸入模式並設置響應的聊天機器人。 輸入問題/模式後,聊天機器人會使用啟發式方法來提供適當的響應。 基於檢索的模型被廣泛用於設計具有自定義功能的面向目標的聊天機器人,例如機器人的流程和語氣,以增強客戶體驗。

2. 生成式聊天機器人

與基於檢索的聊天機器人不同,生成式聊天機器人不基於預定義的響應——它們利用 seq2seq 神經網絡。 這是基於機器翻譯的概念,將源代碼從一種語言翻譯成另一種語言。 在 seq2seq 方法中,輸入被轉換為輸出。

第一個聊天機器人可以追溯到 1966 年,當時 Joseph Weizenbaum 創建了 ELIZA,只需 200 行代碼就可以模仿心理治療師的語言。 然而,由於技術的快速進步,我們已經從腳本聊天機器人到今天的 Python 聊天機器人走了很長一段路。

當今時代的聊天機器人

今天,我們擁有由人工智能驅動的智能聊天機器人,它們使用自然語言處理 (NLP) 來理解人類命令(文本和語音)並從經驗中學習。 聊天機器人已成為在線活躍的公司和品牌(網站和社交網絡平台)的主要客戶交互工具。

python中的聊天機器人

使用 python 的聊天機器人是一個很好的工具,因為它們促進了品牌和客戶之間的即時消息傳遞。 想想蘋果的 Siri、亞馬遜的 Alexa 和微軟的 Cortana。 這些不是很棒嗎? 你不是已經很想學習如何用 Python 製作聊天機器人了嗎?

使用 python 的聊天機器人

資源

本質上,使用 Python 的聊天機器人被編程為接收您提供給它的信息,然後在復雜的 AI 算法的幫助下對其進行分析,並為您提供書面或口頭答复。 由於這些機器人可以從行為和經驗中學習,它們可以響應各種查詢和命令。

python中的聊天機器人

資源

儘管目前 Python 中的聊天機器人已經開始主導科技領域,但 Gartner 預測,到 2020 年,聊天機器人將處理近 85% 的客戶-品牌交互

鑑於聊天機器人在行業中的日益普及和採用,您可以通過學習如何使用 Python(世界上使用最廣泛的編程語言之一)製作聊天機器人來增加您的市場價值。

今天,我們將教你如何使用 ChatterBot Python 庫在 Python 中製作一個簡單的聊天機器人。 那麼,讓我們開始吧!

ChatterBot 庫

ChatterBot 是一個 Python 庫,旨在為用戶輸入提供自動響應。 它利用 ML算法的組合來生成許多不同類型的響應。 此功能允許開發人員使用 python 構建聊天機器人,可以與人類交談並提供適當和相關的響應。 不僅如此,機器學習算法還幫助機器人通過經驗提高其性能。

ChatterBot 的另一個優秀特性是它的語言獨立性。 該庫的設計方式使您可以使用多種編程語言訓練您的機器人。

ChatterBot 如何運作?

當用戶在聊天機器人(在 ChatterBot 上開發)中輸入特定輸入時,機器人會將輸入與響應一起保存,以備將來使用。 這些數據(收集的經驗)允許聊天機器人在每次輸入新輸入時生成自動響應。

程序從與輸入匹配的最接近的語句中選擇最合適的響應,然後從已知的語句和響應選擇中提供響應。 隨著時間的推移,隨著聊天機器人參與更多交互,響應的準確性會提高。

資源

如何在 Python 中製作聊天機器人?

我們將逐步介紹並分解構建 Python 聊天機器人的過程。

要在 Python 中構建聊天機器人,您必須導入所有必要的包並初始化要在聊天機器人項目中使用的變量。 此外,請記住,在處理文本數據時,您需要在設計 ML 模型之前對數據集執行數據預處理。

這就是標記化有助於文本數據的地方——它有助於將大型文本數據集分割成更小的、可讀的塊(如單詞)。 完成後,您還可以進行詞形還原,將單詞轉換為其引理形式。 然後它創建一個pickle文件來存儲用於預測機器人響應的python對象。

聊天機器人開發過程的另一個重要部分是創建訓練和測試數據集。

現在我們已經介紹了用 Python 開發聊天機器人的基礎知識,讓我們更深入地了解實際過程!

1.準備依賴

使用 ChatterBot 庫在 Python 中創建聊天機器人的第一步是在您的系統中安裝該庫。 最好創建並使用新的 Python 虛擬環境進行安裝。 為此,您必須在 Python 終端中編寫並執行此命令:

您還可以直接從 GitHub 安裝 ChatterBot 的最新開發版本。 為此,您必須編寫並執行以下命令:

pip install git+git://github.com/gunthercox/ChatterBot.git@master

如果你想升級命令,你也可以這樣做:

現在您的設置已準備就緒,我們可以繼續下一步使用 python 創建聊天機器人。

2. 導入類

導入類是 Python 聊天機器人創建過程的第二步。 您需要做的就是導入兩個類——來自 chatterbot 的 ChatBot 和來自 chatterbot.trainers 的 ListTrainer。 為此,您可以執行以下命令:

3. 創建和訓練聊天機器人

這是在 python 中創建聊天機器人的第三步。 您正在創建的聊天機器人將是“ChatBot”類的一個實例。 創建新的 ChatterBot 實例後,您可以訓練機器人以提高其性能。 培訓可確保機器人有足夠的知識來開始對特定輸入的特定響應。 您現在必須執行以下命令:

python中的聊天機器人

在這裡,參數(對應於參數名稱)表示 Python 聊天機器人的名稱。 如果您希望在訓練後禁用機器人的學習能力,您可以包含“read_only=True”命令。 命令“logic_adapters”表示用於訓練聊天機器人的適配器列表。

雖然“chatterbot.logic.MathematicalEvaluation”幫助機器人解決數學問題,但“chatterbot.logic.BestMatch”幫助它從已經提供的響應列表中選擇最佳匹配。

由於您必須提供響應列表,因此您可以通過指定稍後可用於訓練 Python 聊天機器人的字符串列表來完成此操作,並為每個查詢找到最佳匹配。 這是一個響應示例,您可以使用 python 訓練您的聊天機器人來學習:

python中的聊天機器人

您還可以通過編寫“ListTrainer”實例並為其提供字符串列表來創建和訓練機器人,如下所示:

現在,您的 Python 聊天機器人已準備好進行通信。

4. 與 Python 聊天機器人交流

要與 Python 聊天機器人交互,您可以使用 .get_response() 函數。 這是它在交流時的樣子:

使用 python 的聊天機器人

但是,必須了解使用 python 的聊天機器人可能不知道如何回答您的所有問題。 由於它的知識和訓練仍然非常有限,你必須給它時間並提供更多的訓練數據來進一步訓練它。

5. 用數據語料庫訓練你的 Python 聊天機器人

在如何使用 Python 製作聊天機器人的最後一步中,為了進一步訓練您的 Python 聊天機器人,您可以使用現有的數據語料庫。 以下是如何使用機器人本身提供的數據語料庫訓練 Python 聊天機器人的示例:

代碼片段來源

好消息是 ChatterBot 以許多不同的語言提供此功能。 因此,您還可以使用您喜歡的語言指定語料庫的子集。 這就是我們在 Python 中創建聊天機器人的方式。

結論

我們在這裡展示的只是如何用 Python 製作聊天機器人的眾多方法中的一種。 您還可以使用另一個資源豐富的 Python 庫 NLTK 來創建 Python 聊天機器人。 雖然你在這裡學到的是一個非常基本的 Python 聊天機器人,幾乎沒有任何認知技能,但它應該足以幫助你理解聊天機器人的解剖結構。

一旦你完全理解了使用 python的聊天機器人的設計,你就可以使用不同的工具和命令對其進行試驗,以使其更加智能。

此外,如果您有興趣了解有關機器學習的更多信息,請查看 IIIT-B 和 upGrad 的機器學習執行 PG 計劃,該計劃專為工作專業人士設計,提供 450 多個小時的嚴格培訓、30 多個案例研究和作業、IIIT -B 校友身份,5 個以上實用的實踐頂點項目和頂級公司的工作協助。

什麼是聊天機器人?

聊天機器人是一種基於人工智能的軟件,可以用人類自己的語言與人類交談。 這些聊天機器人通常通過音頻或書面方式與人類聯繫,它們可以輕鬆模仿人類語言以類似人類的方式與人類交談。 基於規則的方法教聊天機器人根據一組預先確定的規則回答查詢,這些規則是在首次創建時教授的。 這些預定規則可以簡單也可以復雜。 顧名思義,自學機器人是可以自行訓練的機器人。 這些利用人工智能和機器學習等尖端技術從示例和行為中學習。

構建聊天機器人需要什麼技能?

聊天機器人的開發人員必須具備多種技能。 他們必須對平台和編程語言有透徹的了解,才能有效地進行聊天機器人的開發。 聊天機器人的開發人員應該精通學習算法、人工智能和自然語言處理。 多語言背景,具有 Java、PHP、Python、Ruby 等語言的編程經驗。 程序員必須熟悉平台才能提高聊天機器人的質量。

什麼是基於規則的聊天機器人?

基於規則的機器人不使用人工智能,而是利用樹狀流程來幫助客人解決問題。 這表明機器人將引導客人完成一系列後續問題,以得出正確的解決方案。 您可以完全控制對話,因為結構和響應都是預先定義的。 那麼,為什麼要使用有規則的聊天機器人呢? 較小的數字和簡單的查詢,例如在餐廳預訂餐桌或詢問營業時間,是基於規則的聊天機器人的理想選擇。