Big Data & AI Accelerator
Author: Danger Crew
Last update: September 19, 2021

如何以 Python Programming 自己製作 Chatbot?

以 Python Programming 配合 NLP 可以製作簡單的 Chatbot 去自動化對答工作。花十分鐘時間認識更多 Python Programming 的應用,Chatbot 的設計及其背後的原理

Index

Scroll to top

如果您想學習數據科學、編程 Python Programming 或轉行到科技行業,立即到 DANGER Education 網站了解並報讀相關課程!

Chatbot (聊天機器人) 是以人工智能驅動的電腦程式 (e.g. Apple iOS Siri, Android Google Assistant),它透過與顧客對答,從中分析顧客需求,然後協助顧客完成指定任務,如網購, 預訂酒店 、產品查詢等。現時 Chatbot 已經處理約 85% 的客戶服務及協助完成約 30% 的網上交易。幾乎每家大型網購公司都以聊天機器人 24 小時全天候與用戶進行互動。


自然語言處理 (NLP)

自然語言處理 (Natural Language Processing) 結合了人類語言學及電腦科學,以人工智能去分析及理解人類的語言。通過運用 NLP,程式員可以進行翻譯 、 情感分析、語音識別等任務。

NLP 主要提供兩種商業用途。它可以讓公司即時解答顧客問題(如 Chatbot 或語音應用)及以多種語言提供服務,以提升服務水平。另外 NLP 可以讓公司減省人手及工作空間去處理客戶服務。

此外 NLP 也在日常生活中幫助大家解決不少問題:

  • 電子郵箱如何識別垃圾電郵 (Junk mail)? NLP 把垃圾電郵中的單詞與普通電郵進行對比以識別垃圾郵件
  • 你可以在 mobile apps 如 WhatsApp「閱讀」別人的留言? 那是 NLP 的語音文字轉換技術
  • 網站會建議其他內容或主題給你瀏覽? 那是內容搜索及分類的 NLP 應用

有興趣了解更多 NLP 可以看此文章


以 Python 製作 Chatbot

借助 Natural Language Toolkit (NLTK) 及 scikit-learn (sklearn) 2 大 Python libraries,我們可以製作簡單的 Chatbot。今天我們便試範製作一個有關 Data Science 的 Chatbot。

1. 首先下載 wiki 的內容去訓練 Chatbot 並成為 Chatbot 的知識:

2. 以 NLTK 把輸入文字進行 Tokenization 及 Lemmatization,目的是把每「句」文字切割成「一連串」的字詞,方便在下一步分析文字的相似度

3. 以 sklearn 把用家的提問及 Chatbot 的知識進行相似度分析,當中運用 Term Frequency-Inverse Document Frequency (TF-IDF) 及 Cosine similarity 兩項技術去分析雙方字詞的相似度,從而決定 Chatbot 的回答內容:

有興趣了解更多 TF-IDF 可以看此文章

有興趣了解更多 Cosine similarity 可以看此文章

4. 加入指令讓 Chatbot 根據用家的提問去決定進行「問好」,「對答」還是「終止」:

5. 完成! 看看我們的 Chatbot 如何以對答方式介紹 Data Science:


總結

以 Python Programming 配合 NLP 可以製作簡單的 Chatbot 去自動化對答工作。我們希望這個試範可以幫助你認識更多 Python Programming 的應用,Chatbot 的設計及其背後的原理。

有興趣可到 Danger Education Github 查看 source code

Enjoy Programming!