LUIS - 自然語言語意分析初學入門
LUIS 是自然語言的語意分析服務,接下來的文章會用官方文件為基底,開始學習如何建立屬於自己的 LUIS 服務,過程中我會將這些步驟記錄下來,希望也能對別人有所助益
參考文件:安裝和執行適用于 LUIS 的 Docker 容器
什麼是 Language Understanding Intelligent Service (LUIS)?
在LUIS
文件首頁的地方我看到這句話,真的是很精簡:了解 Language Understanding 如何讓應用程式了解人在文字中所表達的意思
我們可以從概觀頁面中看到定義
Language Understanding
(LUIS) 是一種雲端式交談式 AI 服務,可將自訂機器學習智慧套用至使用者的對話、自然語言文字中,以預測整體意義,並找出相關的詳細資訊。
LUIS 的用戶端應用程式是任何對話應用程式,可與使用者透過自然語言溝通以完成工作。 用戶端應用程式的例子包括社群媒體應用程式、AI 聊天機器人,以及啟用語音功能的桌面應用程式。
從上面這簡短的介紹當中可以發現 LUIS 能被廣泛的應用到很多的情境中,相信能夠為我們實務上的問題帶來一些嶄新的解決方案,我是還蠻期待的,至於有沒有用,那就之後慢慢看下去吧
事前準備
因為LUIS
需要在Azure
裡面先建立起服務,所以可想而知的也必須要先有個Azure
帳號才能夠使用,但我們可以使用免費的額度來進行測試開發使用,所以不用太擔心費用的問題
申請完畢之後,登入Azure
左側選單找到建立資源
輸入luis
可看到language understanding
此處選擇建立
在這邊就可以依據需要選擇然後建立資源了,因為我們會建立LUIS
,稍後也會將它發布出去測試,所以選擇兩者
,如果想了解細節的人,可以看看定價
仔細看看下面的認知服務計價原則,會發現傳送的每個文字片語都會被視為一筆交易計價,雖然我看不是很懂,但我突然明白了為什麼我只有測幾次請求,交易卻是將近 100 筆的紀錄,一直以來讓我很驚恐的部分就是 Azure 的計價…實在是太難了
反正記得選取計價層的時候,要挑有F0
免費的來測試
建立完畢 LUIS 服務後,接著到LUIS 網站去建立 luis 應用程式
因為我先前已經有建立過,所以我這裡直接可以點New App
,他會跳出一個燈箱讓我填寫新的 App 資料;如果是第一次進入,印象是會要你選擇剛剛在Azure
建立的資源,才可以繼續使用
建立模型
首先需要先知道一下整個 LUIS 的概念,我們以點餐為例,在Intents
裡面新增一個點餐行為
然後輸入幾個口語化的訂單範例給他,注意要不同的句型喔
像這樣,接著就可以把文字標記起來,並選擇實體…這邊還沒有建立,所以我們先回到Entities
去建立
再次回到Intents
就可以將剛剛的點餐範例,標記上哪個東西代表的是餐點名稱了
當我們都設定完畢後,就可以點右上角的Train
去訓練我們的模型了
訓練完畢之後我們可以在Test
測試我們的模型
可以看到他預測這個輸入的文字,意圖是點餐行為,但是他沒有抓到正確的 Entities
上面的這個就有抓到
接下來我們講講複雜一點的實體,再剛剛操作的是機器學習的 Entity,稱之為 ML Entity,那這個東西他是可以做階層的,再這邊我另外做了一個小吃攤的點餐行為,先建立一個叫做餐食
的 entity,並且加上幾個子實體,分別是餐點的份量、麵條種類以及主菜
這樣的話,測試的結果會在餐食底下看到各個子實體
細節的部分請參照說明文件
發布
右上角的Publish
按鈕點下去後他會問說要發佈到哪裡去,我們因為只是測試練習,所以就直接發到production
去
上面這個地方可以看到 (上面這張我截錯 app,不過沒關係,都是一樣的)
- APIkey
- EndPoints
- 測試用的網址
我們可以直接用測試網址後面帶 QueryString 去測試語句,測試結果會回應 Json 資料格式