正值 Microsoft Ignite 期間,LUIS 也迎來了不小的改版,除了操作介面的優化,最大的改變我個人認為是在設計 Entities 的部份,Intents 與 Entities 是 LUIS 的二大核心,Intents 負責語意意圖的判斷,而Entities則是語句內資料的擷取,有了正確的 Entities,Chatbot 的邏輯才能進一步往下走,因此 Entities 的設定技巧可以說是影響 Chatbot 舉足輕重。
過去 LUIS 的 Entities 提供許多不同的類型的定義方式,讓設計人員面對不同的情境,運用不同的類型嘗試提升 Entities 的精準度,而這一次 Entities 又帶來了不小的改變,目前 Entities 只剩下 ML、List、Regex、Pattern.Any 四種類型,其中 List、Regex、Pattern.Any 是過去就有的,ML 則是這一次改版新增的類型,相對 composite 類型已經不存在了,意味著新版的 LUIS Entities,ML的類型將會是主軸。
什麼是ML類型的 Entities ? LUIS 本身是一個具有機器學習能力的服務,過去 Entities 的類型區分成二大類,其中一類就是屬於機器學習類的,另一類則是依賴規則的方式擷取資料,現在把過去歸類在機器學習的類型通通收集成 ML 類型,那麼要如何運用呢 ? 由於操作介面改變頗大,官方文件也還沒完全更新,所以初步探索了一下,把設定過程記錄一下。
直接舉個例子來做示範,例如我們想要在對話中抓取地址,並且要能把地址中的縣市、區域,路名,門牌都按分類把它抓出來,過去我們可能需要定義多個 Entities 來處理,現在我們直接定義一個叫 "地址"的 Entities ,指定為ML類型,並且勾選 Add Structure ,接著在 Structure 裡我們可以透過加入 Component 把縣市、區域,路名,門牌拆解開來。
接著在 Intents 的部份,我們建立一些句子做為訓練用,這次改版關於 Entities 的選取方式,也做了改變,直接用拖拉的方式選取文字即可,我們把地址的句子選取後,指定 Entities 為地址,此時會看到在地址文字下方多了藍色線條,然後再分段把縣市、區域,路名,門牌進行選取,並且指定到我們在前面所定義好的 Component ,完成後會看到每一個部份都多了紅色線條,並且顯示屬於哪一個 Component
最後進行訓練,我們再用新的句子來測試一下,會看到 LUIS 很精準的地址資料的每一段都正確判斷出來
以上是針對LUIS New Entities 的類別 ML 初步介紹
關於更多LUIS : 請參考官方文件
By No.18