LUIS 為你提供一種簡單的模型創建方式,使你的應用程序能夠理解諸如“開燈”或“訂購去巴黎的機票”等用戶命令。創建後,只需單擊一次即可將模型發布成HTTP服務,並返回易於使用的 JSON。
人 - 計算機交互中的關鍵問題之一是計算機能夠理解人們想要什麼,並且找到與他們的意圖相關的信息片段的能力。例如,在旅行社應用程序中,你可以說“幫我預訂一張票到巴黎”,在這種情況下有意圖“訂票”,而“巴黎”是位置實體。意圖可以被定義為期望的動作,並且通常包含動詞,在這種情況下是“預訂”,並且實體是動作要處理的主要和次要目標,在這種情況下是“巴黎”。
一旦應用程序上線,接收到真實的數據,LUIS使用主動學習來提高自身。在主動學習過程中,LUIS將模稜兩可的文本識別出來,並要求你根據意圖和實體標記它們。其次,通過專門的樣本,LUIS可以快速地學習,短時間內達到特定領域較高的智能水平。
LUIS UI始終為英語,但在理解語音時,支持英語,法語,意大利語,西班牙語和中文等多種語言。
LUIS提供了一個可編程的REST API,可用於自動化創建和發布特定語意模型。
要使用LUIS,請確保你有最新版本的Microsoft Edge,Internet Explorer或Google Chrome。 轉到主頁www.luis.ai並登錄。您將看到如下所示的屏幕。
所有LUIS應用程序都圍繞特定領域的主題,例如預訂機票,航班,酒店,租車等或與鍛煉有關的內容,跟蹤健身努力和設置目標。在創建LUIS應用程序之前,你需要確定特定領域的主題。在這種情況下,讓我們以虛擬旅行預訂代理應用程序為例。在應用程序中,你將捆綁對您的任務很重要的意圖和實體。與旅行預訂相關的兩個意圖是“預定飛機票”和“了解天氣情況”。兩個重要的實體是“位置”和“日期”。一旦你確定了意圖和實體,當用戶與你的應用程序交互時,LUIS可以采取適當的行動。
單擊“My Applications”,然後單擊“New App”按鈕創建一個新的應用程序。在對話框中,將其命名為“TravelAgent”。然後單擊“Add App”。
接下來,我們將向應用程序添加兩個意圖。 在菜單面板的左上角,你將看到一個意圖區域。 所有應用程序都有一個預定義的意圖,“None”。 這將識別與應用程序無關的用戶語句,例如,如果有人說“給我一個很棒的甜點食譜”。
然後點擊水平欄上的意圖旁邊的+。 你將看到一個對話框,以添加新的意圖。 輸入“BookFlight”的意圖名稱,以及觸發意圖為“Book flight to Paris”的示例命令。 這將看起來像下面的屏幕截圖。
單擊“Save”、單擊“Submit”完成操作。
接下來,添加第二個名為“了解天氣情況”的意圖,使用觸發意圖的示例命令為“倫敦的天氣怎麼樣”。單擊保存、單擊提交。
定義實體
在左側面板上,你將看到一個添加實體的選項。我們希望能夠說出我們感興趣的旅行方式,並且規劃目的地,了解旅行目的地的天氣情況。為了捕獲“位置”的主題,讓我們創建實體類型:“位置”。為此,請單擊實體欄上的“+”按鈕,然後在文本輸入框中鍵入“位置”。你現在已創建一個名為“位置”的簡單通用實體,通常是你可能需要的,但有更多的高級選項。
分層實體
你還可以定義實體之間的繼承關系。通用實體用作父級,子級是父級下的特定類型或子組,但兩者具有相同的特性。例如,通用實體可以稱為“位置”,並且該父實體的特定自級可以稱為“目的地”和“出發地”。 LUIS服務可以在解析語音,構建模型和訓練它們時識別這種類型的實體及其子實體。
定義分層實體
使用上述“位置”示例,請按照下列步驟操作。
在“應用程序編輯器”工作區中,在左側菜單面板中查找“Entities”,然後單擊+號。
在“Add a new Entity”對話框中,鍵入“位置”作為實體名稱。
單擊“Entity Children”旁邊的加號。
在出現的文本框中,鍵入第一個子實體的名稱“目的地”。
再次單擊加號以添加第二個子實體“出發地”,依此類推。
如果要刪除子實體,請點擊子實體旁邊的垃圾桶標志。
完成後,單擊“保存”。
假如你的應用程序要發出一組旅行預訂請求,你可能會想說一些像“幫我預訂5月4日飛往波士頓的機票”。這需要能聽懂日期類型的話,包括月份、年份的名字。例如“五月”,“六月”,“下個月”和“明年”等。我們可以使用一個必應的預定義實體模型“DateTime”。點擊+號從預定義實體下拉菜單中選擇“DateTime”。
在一個LUIS應用程序中每個意圖最多可以使用10個實體。
每個父實體最多可使用10個子實體。
添加子實體時,請確保在創建父實體的同時添加子實體。
要刪除帶有子實體的父實體,請單擊左側面板中的實體名稱,然後單擊對話框中的“刪除”。
現在我們有了定義好的一組意圖和實體,下一步是輸入更多例子來建立話術體系。單擊屏幕頂部的“新建工具”選項卡。在輸入框中輸入“將航班預訂到倫敦”,然後按Enter鍵。你將看到一個下拉框,顯示可能的意圖。通過突出顯示選擇“BookFlight”。點擊“london”,然後從下拉框中選擇“位置”,你會看到以黃色突出顯示的“london”字樣,表示你已將“london”一詞標記為“位置”。選擇它是“ToLocation”還是“FromLocation”,然後單擊提交以提交此標簽。
每個意圖和每個實體都需要輸入的幾個示例。另外,不要忘記添加一個或兩個不在預定義意圖范圍內的例子,例如,輸入“我喜歡冰淇淋”。
系統現在已經獲得足夠的數據來部署初始應用程序。這是通過培訓和發布模型完成的。
當你“訓練”一個模型的時候,LUIS會分析所有已經標記過的例子,進行抽象,並在將來開發代碼來識別相關的意圖和實體。LUIS使用邏輯回歸分類器來確定意圖,以及條件隨機字段(CRF)來確定實體。訓練過程產生優化的分類器和CRF,稱為模型。要開始一個訓練,只需點擊頁面左下角的Train按鈕即可。訓練也會定期自動進行。
下一步是將模型發布成HTTP服務,它將解釋我們發送的句子。單擊左上角的“發布”按鈕,然後在生成的窗口中發布Web服務。幾分鐘後,你將看到一個網址,使你的模型可用作Web服務。 LUIS將如下面的截圖所示。
下面展示了一個意圖和分層實體的示例,語意分析結果采用JSON格式返回給調用者。
現在,你已經學會了怎麼使用LUIS為自己的應用添加智能了。
教學視頻
原文鏈接