Chatbot 開發前的那兩三事(三):中文語意分析、使用分析平台
上次提到最後一個部分是人工智慧,但人工智慧要用在哪裡好呢?除了功能設計本身可以用到 AI 以外,比較常用到的是自然語言分析。
什麼是功能設計本身?比方說使用者上傳一張圖片去辨認它是什麼水果,再去做相對應的動作。這件事情無關 Chatbot 的流程,普通的 App 也有可能有這部分,所以算是功能設計裡面的一部份。
而自然語言分析(NLP,Natural Language Processing),正是在使用者輸入一段文字後,主機處理資料前,先去把這段文字分析成機器看得懂的格式。例如把「我要買兩顆蘋果」處理成 {intent: “buy”, product: “蘋果”, quantity: 2} 之類的格式。
中文語意分析演算法與服務
先來講點技術吧。
語意分析首先是斷詞,之前有說過,所謂的斷詞就是把「我現在真的非常想睡覺」分成「我 / 現在 / 真的 / 非常 / 想 / 睡覺」,而在英文根本不需要煩惱這個問題,畢竟英文只要把「I really want to sleep now」斷成「I / really / want / to / sleep / now」就好了。
那中文斷詞這東西可以用哪些工具來達成呢?中研院有一套斷詞系統叫 CKIP 可以使用,社群維護的版本也有一支叫 jieba (結巴)可以用。
斷詞後就是分析這句話的意圖了。如果想自己實作的話,可以參考一下 Mikolov 提出的 word2vec、sentence2vec 甚至是 doc2vec 方法,主要是把詞轉成向量,去推測相似詞、字的意思等等。或是最近的 Google Sling 好像也有點紅,不過還沒仔細看過。
如果不自己做的話,其實各大公司都有推自己的語意分析平台:
- Dialogflow (以前叫 API.AI,by Google)
- LUIS.ai (by Microsoft)
- Wit.ai (by Facebook)
- Watson Conversation (by IBM)
這些是最近比較流行的 NLP 平台,可以參考看看。語意分析完後還有一些比較特別的東西,像是情感分析。
中文的情感分析比較少,大多都是英文的,但我發現把句子翻成英文再去做分析其實不會差太多,除非像是「幫QQ」這種特殊字眼,或是翻譯不到味的可能會差很多。
分析平台:分析 Chatbot 使用狀況
最後,等到 Chatbot 正式上線後,還是要有一個平台去做分析,才能了解使用者有沒有遇到什麼問題。Google 最近有開放一個分析平台叫 Chatbase,開發者可以在上面分析聊天對象、整體趨勢和狀況,藉此提高 Chatbot 的準確性、提升使用者體驗等等,有點像是 Chatbot 版本的 Google Analytics。
延伸閱讀
Chatbot 開發前的那兩三事 目錄
- Chatbot 開發前的那兩三事(一):你真的需要聊天機器人嗎?
- Chatbot 開發前的那兩三事(二):挑選平台、功能設計
- Chatbot 開發前的那兩三事(三):中文語意分析、使用分析平台(本文)