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和BotBuilder整合),將來看看如何發佈今天建立的LUIS application,并且看看BotBuilder内建的LuisDialog怎麽讓chatbot和luis無縫接軌。


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