Last update: September 19, 2021
如何以 Python Programming 自己製作 Chatbot?
以 Python Programming 配合 NLP 可以製作簡單的 Chatbot 去自動化對答工作。花十分鐘時間認識更多 Python Programming 的應用,Chatbot 的設計及其背後的原理
Index
![](https://danger.education/wp-content/uploads/2021/09/Tech-post-template-4-1024x1024.png)
如果您想學習數據科學、編程 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 的知識:
![](https://danger.education/wp-content/uploads/2021/09/Capture1-1-1024x504.jpg)
2. 以 NLTK 把輸入文字進行 Tokenization 及 Lemmatization,目的是把每「句」文字切割成「一連串」的字詞,方便在下一步分析文字的相似度
![](https://danger.education/wp-content/uploads/2021/09/Capture2-1024x316.jpg)
3. 以 sklearn 把用家的提問及 Chatbot 的知識進行相似度分析,當中運用 Term Frequency-Inverse Document Frequency (TF-IDF) 及 Cosine similarity 兩項技術去分析雙方字詞的相似度,從而決定 Chatbot 的回答內容:
![](https://danger.education/wp-content/uploads/2021/09/Capture3-1024x442.jpg)
有興趣了解更多 TF-IDF 可以看此文章
有興趣了解更多 Cosine similarity 可以看此文章
4. 加入指令讓 Chatbot 根據用家的提問去決定進行「問好」,「對答」還是「終止」:
![](https://danger.education/wp-content/uploads/2021/09/Capture4-2-1024x431.jpg)
5. 完成! 看看我們的 Chatbot 如何以對答方式介紹 Data Science:
![](https://danger.education/wp-content/uploads/2021/09/Capture6-1024x255.jpg)
總結
以 Python Programming 配合 NLP 可以製作簡單的 Chatbot 去自動化對答工作。我們希望這個試範可以幫助你認識更多 Python Programming 的應用,Chatbot 的設計及其背後的原理。
有興趣可到 Danger Education Github 查看 source code
Enjoy Programming!