有幾個實體選項可變更實體比對和資料擷取的行為。這些選項已預先設定為系統實體,因此您無法變更系統實體的選項。不過,您可以為自己的自訂實體變更這些值。您可以根據所選選項建立不同類型的實體:
另外還有兩個選項不會決定實體類型,但會影響實體比對行為:
本文將說明這些選項。
這項資料的所在位置
建構代理程式時,最常見的做法是使用 Dialogflow ES 主控台 (請參閱說明文件並開啟主控台)。以下操作說明重點介紹如何使用主控台。如要存取實體選項資料,請按照下列步驟操作:
- 前往 Dialogflow ES 主控台。
- 選取代理程式。
- 選取左側欄選單中的 [Entities] (實體)。
- 選取「自訂」分頁標籤,即可查看為代理程式定義的自訂實體,或是選取「系統」分頁標籤,即可查看代理程式使用的系統實體。
- 請參閱下列現有實體的核取方塊選項:
- 定義同義詞
- 規則運算式實體 (僅限自訂實體)
- 允許自動擴展 (僅限自訂實體)
- 模糊比對 (僅限自訂實體)
如果您是使用 API (而非主控台) 建構代理程式,請參閱 EntityType 參考資料。API 欄位名稱與主控台欄位名稱相似。以下操作說明會明確指出主控台與 API 之間的所有重要差異。
地圖實體
對應實體會提供參照值與每個參照值同義詞的對應表。每個對應實體項目都包含單一參照值和同義詞清單。舉例來說,下列每個資料列都是 size
實體類型的實體項目:
參考值 | 同義詞 |
---|---|
S | S、小、極小、微小 |
M | M,中,平均 |
L | L、large、huge、big |
請注意,上方每個實體項目的同義詞清單中都包含參照值。如果要比對參照值,必須以同義詞形式納入該參照值本身。您在控制台中首次輸入參照值時,系統會自動將該值新增為同義詞。
如果使用者表達內容的任何部分與任何同義字相符,系統會為相符項目擷取相關聯的參照值,並用於解析相關聯的參數值。
參照值可以從同義詞清單中省略。這只是表示該值未與使用者表達內容的部分相符,但在其中一個同義詞相符時,會用做擷取值。如果您要為使用者不會輸入或說出的參考值使用特殊字串,這麼做就很實用。
許多系統實體都是地圖實體。舉例來說,@sys.date
系統實體會比對常見的日期輸入內容,例如「2015 年 1 月 1 日」或「2015 年 1 月的第一天」。這兩個輸入值都會對應至 ISO-8601 格式的參照值:「2015-01-01T12:00:00-03:00」。
如要建立地圖實體,請按照下列步驟操作:
- 使用主控台取消勾選「規則運算式實體」選項,並勾選「定義同義詞」選項。
- 使用 API 將
EntityType
kind
欄位設為KIND_MAP
。
清單實體
清單實體提供單一值實體項目的清單。這些實體沒有參照值和同義詞。舉例來說,下列每個資料列都是 material
實體類型的實體項目:
值 |
---|
織物 |
木頭 |
金屬 |
如果任何值與使用者表達內容部分相符,系統會擷取相符的值,並用於解析相關的參數值。
許多系統實體都是清單實體。舉例來說,@sys.color
系統實體會比對常見的顏色輸入內容,例如「紅色」或「藍色」。比對顏色時,擷取的值不會對應至任何參照值。舉例來說,「緋紅」或「猩紅」這種描述紅色濃淡的字詞都會依原值傳回,並不會另外對應到「紅色」。
如要建立清單實體,請按照下列步驟操作:
- 使用控制台取消勾選「規則運算式實體」選項,並取消勾選「定義同義詞」選項。
- 使用 API 將
EntityType
kind
欄位設為KIND_LIST
。
複合實體
複合實體是一種特殊的清單實體。清單實體的實體項目通常包含簡單的字詞或詞組,但也可能包含其他實體類型。當實體類型在另一個實體類型中被參照時,該參照稱為別名。當清單實體包含其他實體類型的別名時,即稱為複合實體。
建立別名時,您必須提供參照實體類型的名稱,以及所選屬性名稱。當複合實體在執行階段比對時,系統會以 JSON 物件的形式傳回擷取的值,並使用別名屬性名稱做為 JSON 屬性名稱。輸入別名的格式如下:
@entity-name:property-name
舉例來說,您可以建立 place
實體類型,以便與下列實體項目中的城市或州相符:
值 |
---|
@sys.geo-city:city |
@sys.geo-state:state |
如果使用者表達內容包含「Nashville」部分,系統會比對 place
實體類型。系統會以 {"city": "Nashville"}
的形式傳回擷取的值。
您也可以在實體項目中使用多個實體別名。請考慮下列 move
自訂實體類型,其中包含 direction
實體類型和 @sys.number
系統實體類型的別名:
方向自訂地圖實體類型:
參考值 | 同義詞 |
---|---|
前進一格 | 轉寄 |
返回 | back, backward, backwards |
移動自訂清單實體類型:
值 |
---|
@sys.number:steps 步驟 @direction:方向 |
如果 move
實體與包含「five steps backward」的使用者表達內容相符,系統就會比對 move
實體。系統會以 {"steps": 5, "direction": "back"}
的形式傳回擷取的值。
許多系統實體都是複合實體。舉例來說,@sys.unit-currency
系統實體用於比對金額與貨幣名稱。這個參數會比對使用者表達的內容,例如「50 歐元」或「二十美元五美分」。系統會以 JSON 物件形式傳回擷取的值,如下所示:
{"amount": 50, "currency": "EUR"}
規則運算式實體
只要使用規則運算式實體,您就能提供規則運算式來進行比對。詳情請參閱「規則運算式實體」。
如要建立規則運算式實體,請按照下列指示操作:
- 使用控制台,勾選「規則運算式實體」選項。
- 使用 API 將
EntityType
kind
欄位設為KIND_REGEXP
。
自動擴展
您可以為自訂實體類型啟用自動擴展功能。啟用後,服務專員就能辨識未明確提供的值。以購物清單實體類型為例:
值 |
---|
麵包 |
奶油 |
牛奶 |
apple |
冰淇淋 |
如果使用者表達內容是「I need to buy some carrots」(我要買一些紅蘿蔔),系統會比對「carrots」(紅蘿蔔) 這個實體類型,即使未提供該實體也一樣。服務機器人會判斷「carrots」與其他值的上下文相似。
考慮自動擴充功能時,請遵循下列最佳做法:
- 啟用自動擴展功能並不保證能擷取實體。針對項目有限的清單,請提供完整清單,而非提供部分清單內容並啟用自動擴展功能。
- 如果您在多個實體中啟用自動擴展功能,可能會導致衝突和未預期的分類結果。
- 為確保參數擷取品質更佳,請務必提供多元的訓練資料,涵蓋所有使用情境,讓系統可在預期的代理程式流量中找到特定實體。如果範例不足,自動實體擴充功能可能無法正常運作。
如要啟用自動擴展功能,請按照下列步驟操作:
- 使用控制台勾選「允許自動擴展」選項。
- 使用 API 將
EntityType
autoExpansionMode
欄位設為AUTO_EXPANSION_MODE_DEFAULT
。
模糊比對
您可以為自訂實體啟用模糊比對功能。啟用模糊比對功能後,值或同義詞的字詞順序就不會產生任何影響。詳情請參閱「模糊比對」。
如要啟用模糊比對功能,請按照下列步驟操作:
- 使用控制台檢查「模糊比對」選項。
- 使用 API 將
EntityType
enableFuzzyExtraction
欄位設為true
。