Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 記錄軟體開發的點點滴滴 著重於微軟技術、網頁開發、DevOps、C#, Asp .net Mvc、Azure、AI、Chatbot、Docker、Data Science

[chatbot + AI = 下一代操作模式][18]在LUIS建立app - 概念變成實作

[chatbot + AI = 下一代操作模式][18]在LUIS建立app - 概念變成實作.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([17]語義識別服務 - LUIS概念介紹)介紹完了微軟的語義識別服務LUIS的概念之後,在這一篇將把理論變成實作。

來看一下怎麽實際建立出一個符合目前chatbot的模型。

如何開始使用LUIS?

要使用LUIS要做以下幾個動作:

  1. 登入到luis.ai的系統
  2. 建立一個Application
  3. 定義一個intent
  4. 輸入和這個intent相關的utterances
  5. 訓練模型
  6. 測試及矯正識別結果

登入到luis.ai的系統

整個LUIS的操作都要透過https://wwww.luis.ai這個網站,進去了之後就有一個Login/Sign up的按鈕。

最好選擇有Azure Subscription的帳號,是爲了當需要切換到付費的時候比較方便。當然,之後就算要把在LUIS建立出來的model做搬遷到其他帳號也能夠非常容易做到,因此也不用太過擔心。

建立一個Application

在LUIS,每一個模型都是一個Application,畢竟不同的application在對待相同的utterance可能是不一樣的處理方式。

所以,要開始之前需要建立一個Application。

可以透過,在My Apps下面的按鈕Create new app來建立新的application:

chrome_2018-07-23_17-06-39.jpg
Create new app的截圖

按下之後,會有個pop up出現,需要輸入:

  1. app的名稱,這個注意不要和其他app的名字重複了
  2. culture - 這邊只得是會用來輸入的文字語言。和界面語言沒有關係。因此,如果今天建立的是給英文語系的app,那就是留English
  3. description - 這個隨意,是在app 清單裡面用來自己區分差別的文字
  4. 沒問題之後就按下Done就好了

chrome_2018-07-23_17-11-34.jpg
建立出新的app pop up畫面欄位截圖

稍等一下,就會自動進入到App的首頁

chrome_2018-07-23_17-14-33.jpg
app首頁

可以看到,預設會建立一個intent叫做None

定義一個intent

可以透過按下Create new intent來建立新的intent:

chrome_2018-07-23_17-17-31.jpg
在Intents 裡面 按下Create new intent

這個時候會跳出一個pop up設定intent的名稱:

chrome_2018-07-23_17-19-10.jpg
輸入intent名稱

intent 名稱可以是中文,不過個人習慣還是會寫英文。

稍等一下會直接進入到這個intent的utterance以及entity定義畫面。

chrome_2018-07-23_17-20-43.jpg
建立完intent看到的畫面

輸入和這個intent相關的utterances

直接在輸入框裡面輸入和這個intent相關的utterance然後按下enter鍵即可,utterance將會在清單裡面出現:

chrome_2018-07-23_17-25-03.jpg
輸入utterance

加所有目前可以想象的到的utterance進去,越多越好,建議每一個intent最好有5個utterance以上。

訓練模型

當Utterance都輸入好了之後,接下來就是要把這些輸入内容“儲存”到模型裡面,因此要做一個訓練模型的動作。

可以點右上角的Train來執行:

chrome_2018-07-23_17-59-01.jpg
右上角Train按鈕的位置

如果有修改沒有Train過,按鈕前面會有個紅色的點,因此如果未來在測試發現怎麽都沒有用,注意看看是不是還沒有Train過。

Train會需要一些些時間,如果train好了,除了紅點會變成綠點之外,如果是第一次train,右邊的Test按鈕會變成可以按。

測試及矯正識別結果

當模型透過Train建立出來了之後,可以做測試:

  1. 透過右上角的按鈕
  2. 輸入要測試的語句,按下enter按鍵
  3. 看看測試結果
chrome_2018-07-23_18-04-42.jpg
測試模型的按鈕

如果說測試的語句裡面發現定位intent錯誤,例如輸入:找住的地方,這個時候可以透過:

  1. 按下Inspect連接
  2. 在Intent旁邊按下Edit - 截圖沒有這個按鈕,因爲按下去就不見了,但是實際上會有
  3. 在輸入框找到正確的intent即可
chrome_2018-07-23_18-08-34.jpg
透過inspect來修正intent

inspect還有別的功能,例如可以把目前版本和正式版本(production)做比對,或者可以看到斷出來的entities等,這些功能未來會在介紹。

題外話,從截圖可以看到,其實SearchHotel的intent判斷率也有30%,和None只差了2%。因此,LUIS不是想象中簡單文字清單而已,内部是由很多複雜的AI邏輯在裡面。因此,語句越多,判斷的成功率也越高。
有個地方要注意,當修改完intent,記得要按下Train才有效果。

當更新好了之後,在測試一次,會發現準確的定位到了intent。

結語

這篇看了怎麽建立LUIS的application并且幾個重要的概念,intent以及utterance怎麽建立。luis還有蠻多的細節還沒有介紹,例如entities的使用,建立phrase lists等,這些在未來篇幅會在介紹。

有了LUIS的application之後,接下來就是要結合在chatbot上面,下一篇([19]把LUIS和Bot Builder SDK整合),將來看看如何發佈今天建立的LUIS application,并且看看Bot Builder SDK内建的LuisDialog怎麽讓chatbot和luis無縫接軌。


如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus