2017年9月24日 星期日

ChatBot 解碼專家


寶寶最近給我一條網址 http://www.clarins-decoder.com/chat/doubleserum17/webserver/index.php。她在玩這個 ChatBot 時,分別用了中文及英文回覆;而 ChatBot 都好像理解箇中內容,便詢問我這個 ChatBot 是不是用了 Machine Learning 之類的技術,以及有沒有能力開發。於是我花了點時間研究一下。

首先,這個不是真正的 ChatBot,而是一個網頁。只是介面偽裝成 ChatBot 的模樣。看看溝通時的對話,ChatBot 明顯詢問是非題;而問題是經過設計,帶引導性;所以我認為不需要使用 Machine Learning 技術,單憑關鍵字已經做到不錯的效果。再利用 Chrome 的 Network 監視器,發現所有對白都有語音,並分別放在三個音效檔:voice_over9.mp3, voice_over_respA3.mp3 及 voice_over_respB3.mp3。證明了對白早已決定,當程序找到正向關鍵字時便播放正向組對白;當找到負向關鍵字時便播放負向組對白;當不理解時便播圓場對白。所以,要編寫這個 ChatBot 是很容易的,反而設計問題才是關鍵所在。

2017年9月21日 星期四

SnowNLP 載入自行訓練的模型


明天打算向同事說明一下最近關於 NLP 的成果,於是寫了一個簡單的 Python 程序去看看原生模型及自行訓練模型的差異。要載入模型,除了直接在 site-packages 內塞入 marshal 檔案外,還可以調用 load() 指令來載入;對於要更換模型的程式來說,這個設計十分方便。

2017年9月16日 星期六

使用 Python 的 reshape 功能


最近安裝了 Jupyter;因版本不同,用 scikit-learn 做預測時會出現「DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and will raise ValueError in 0.19」錯誤,需要 reshape 後才行。

2017年9月12日 星期二

在 Ubuntu 14.04 安裝 SMB 服務器

之前為了重置 Nvidia Jetson TK1,找了一台舊的 PC 並安裝了 Ubuntu 14.04;之後沒有特別用途。今日安裝了 Jupyter 進去,希望能隨時執行 Python 指令。同時也安裝了常用的程序庫,如:OpenCV, Ski-learn, Pandas, Jieba,...等。我把上年寫好的認臉程序放進去,利用 OpenCV 3 來收集同事的面部資料,並儲存成 PNG 圖像檔案。一下子收集了過千個檔案,為方便篩選,我安裝了 SMB 服務器,步驟如下:

  • sudo apt-get update
  • sudo apt-get install samba
  • sudo smbpasswd -a ubuntu-user
  • sudo nano /etc/samba/smb.conf
       [Home]
       path = /home/ubuntu-user
       read only = no
       guest ok = no
  • sudo service smbd restart
     
    由於 SMB 有自己一套的登入帳戶,所以上面要另外建立 ubuntu-user。