將實體新增到 LUIS 模型
實體是機器人從符合意圖的特定話語中提取的資訊。
例如,讓 My name is John Doe
屬於一個名為 introduction
的意圖。為了讓機器人理解並從句子中提取名稱 John Doe
,你需要定義一個實體。你可以根據需要為實體命名,但最好將其命名為與其提取的內容相關的內容。在我們的例子中,我們可以稱我們的實體 name
。
可以在不同意圖之間重用實體,以提取不同的內容。因此,最好的原則是建立一個只提取資料型別並在不同意圖中使用它的實體。因此,在上面的例子中,假設 Book a flight on Emirates
屬於意圖 booking
,那麼同一個實體 name
可用於提取飛行名稱 emirates
。
在繼續定義實體之前,你需要記住兩件事 -
- 實體在意圖中的每個話語應該是唯一的。實體不能在同一個話語中使用兩次。
- LUIS 不區分大小寫。這意味著通過實體提取提取和接收的所有內容都是小寫的。因此,通過實體提取區分大小寫的資料可能是一個壞主意。
新增預建實體
顧名思義,預構建的實體是預先構建的,即它們已經被配置為在新增它們的意圖中提取特定型別的資料。一個例子可以是實體 number
,它從分配給它的意圖中提取數字。數字可以是數字或字母,如 10
或 ten
。
有關所有預建實體的完整列表,你可以訪問[預建實體列表] [1]。
要新增預建實體,
- 轉到
entities
選項卡。 - 單擊
Add pre-built entities
並選擇要新增到模型的實體,然後單擊儲存。
新增自定義實體自定義實體有 4 種型別,
- 簡單 :一個簡單的實體提取一個特定的資料,上面例子中的
name
是一個簡單的實體。 - 分層 :具有子實體(子型別)的父實體,它們依賴於父實體。
- 複合 :由兩個或多個獨立在一起的實體組成的組。
- 列表 :僅識別給定列表中的單詞的實體。
定義簡單實體
- 去
entities
標籤。 - 點選
Add Custom Entities
- 為你的實體命名,檢查所需的實體型別並點選
Save
。
只需將 Entity Type
更改為上述型別之一,即可以相同的方式新增所有其他型別的實體。在分層和複合實體型別中,你還需要將子名稱與父實體名稱一起提供。定義列表實體與其他實體略有不同。
定義列表實體
按照上述步驟建立 List Entity
後,將 Entity Type
設定為 List,你將被定向到你剛定義的實體的詳細資訊頁面。
- 定義規範值。這是當使用者鍵入任何同義詞時機器人將收到的標準值。
- 定義規範值的同義詞。它們將在實體遇到時轉換為規範值。
你還可以使用以下格式的 JSON 物件陣列匯入整個列表:
[
{
"canonicalForm": "Hey",
"list": [
"Howdy",
"Hi"
]
},
.
.
.
]
將實體與意圖相關聯
Pre-built
和 list
實體已經定義了一組可以從所有語言中提取的值,但是,需要訓練 Simple
,Hierarchical
和 Composite
話語來獲取值。
這可以通過
- 轉到
intents
選項卡,然後選擇要新增實體的意圖。 - 新增一個具有你想要提取的虛擬值的話語。說,你可以新增
My name is John Doe
作為話語。 - 單擊並將滑鼠拖動到要實體提取的單詞上。你將需要在上面的示例中突出顯示
john doe
。 - 將開啟一個下拉選單,其中列出了專案中可用的所有實體。根據需要選擇相應的一個。
Name
將是上例中選擇的實體。 - 每次新增具有不同虛擬值的更多話語以及你可以想到的所有可能結構。
- 培訓併發布你的 LUIS 模型。