LUIS
Language Understanding Intelligence Service
透過LUIS訓練(監督式),可以讓程式更了解使用者想說什麼,官方文件用了「抽取」這個動詞來形容LUIS在做的事情,冗長的句子如何了解句子的意圖到底是什麼?
Intent (意圖)
使用者想要做什麼,可以看成句子裡的意圖、目標,通常為動詞。
舉例: 哈囉大家好今天天氣好晴朗都沒有下雨那你們晚上有空嗎要不要一起打籃球
沒錯,講了一大串的廢話其實根本就只是想要約人 打
所以 打 是這整句話的意圖
那到底是想要打什麼?
Entities(關鍵詞)
存在某一個東西裡的一部分。可以看成句子裡的關鍵字/受詞,可以是數量詞、名詞等。
舉例: 哈囉大家好今天天氣好晴朗都沒有下雨那你們晚上有空嗎要不要一起打籃球
所以 籃球 就是打的受詞
遇到困難了嗎?為什麼Entity還有分Simple,Hierarchical?Composite?List?
Hierarchical: 有繼承關係
舉例: 我想要買一張從台灣到拉斯維加斯的機票
Intent: 買
Entity: 一張/台灣/拉斯維加斯/機票我們可以定義Entity為 數量詞/地名/商品
但同時台灣跟拉斯維加斯都隸屬於「地名」,我們要怎麼讓電腦知道這兩個地名代表的意義?
這個時候就可以透過Hierarchical去定義
Entity Parent: 地名
Entity Child1: 起點
Entity Child2: 迄點
Composite: 多個既存的關鍵詞的集合
舉例: 我想要買一張從台灣到拉斯維加斯的機票,晚上七點後出發
Intent: 買
Entity: 一張/台灣/拉斯維加斯/機票/晚上七點這邊的Entity可以定義為 數量詞/地名(階層)/票種/時間點
透過Composite Entity可以把這幾個獨立的Entity組合起來變成一個新的Entity是 買票
透過買票的Entity可以更specific定義使用者的行為與操作
List: 把相似詞/同義詞歸納成一個關鍵詞
舉例: 要不要去北車玩?
Intent: 玩
Entity: 要不要/北車北車是屬於 地點 這個 Entity
可是不一定每個人都會說北車,也許是台北車站,也許會說北站,台車blablabla
透過List Entity可以讓電腦知道 要不要去北站玩的北站不是北七的意思 而是代表一個地名
Utterance(例句)
是為了訓練LUIS更了解人類講話的方式,讓他知道怎樣的句子代表這樣的意圖,訓練顧名思義就是要多一點練習的文本,跟考試之前要寫很多作業一樣的概念。
不侷限是完整的句子,更多樣化的(但是合理的)範例可以增加LUIS的學習能力。
舉例: 哈囉大家好今天天氣好晴朗都沒有下雨那你們晚上有空嗎要不要一起打lol
舉例: 打lol哦
舉例: lol了沒
Phrase List(字典集): 將部分潛在語句加入訓練模型,提升LUIS辨識語句中對於同一個單詞的認知。
Pattern Feature: 將特殊的格式,如: 產品編號、航班等可能由多種文字串接的單詞優先定義,讓LUIS可以了解特定格式其實是有其意義。
每個人說話都會有自己的習慣,或許開發者自己測試就是完美,但是真正release以後大家都覺得爛得要命,沒關係,portal 的 endpoint會幫你紀錄真正人類的用法,再自己下label,但是別忘記train and publish。