分享方式:


LUIS 應用程式中的模式

重要

LUIS 將於 2025 年 10 月 1 日淘汰,而自 2023 年 4 月 1 日開始,您將無法建立新的 LUIS 資源。 建議移轉 LUIS 應用程式交談語言理解,以享有產品持續支援和多語言功能的優點。

模式的功能是在有數個語句非常類似時提升正確性。 模式可讓您取得更精確的意圖,而不需提供更多的語句。

模式可解決低意圖信賴度

請考慮使用人力資源應用程式,該應用程式會報告與員工相關的組織圖。 若指定員工的名稱和關係,LUIS 就會傳回涉及的員工。 試想:員工 Tom 的經理名字為 Alice,且部屬團隊的名字分別為:Michael、Rebecca 和 Carl。

顯示模式用途的螢幕擷取畫面

表達 預測的意圖 意圖分數
Who is Tom's subordinate? GetOrgChart 0.30
Who is the subordinate of Tom? GetOrgChart 0.30

如果應用程式含有的 10 到 20 個語句具有不同的句子長度、不同的字組順序,甚至不同的字組 ("subordinate"、"manage"、"report" 的同義字),LUIS 可能會傳回很低的信賴分數。 為協助 LUIS 了解字組順序的重要性,請建立模式。

模式可解決下列狀況:

  • 意圖分數過低
  • 正確意圖不是最高分,但太接近最高分。

模式不是意圖保證

模式會混合使用多項預測技術。 在模式中設定範本語句的意圖並不是意圖預測的保證,但卻是很強的示意訊號。

模式不會改善機器學習實體偵測

模式主要是用來協助預測意圖和角色。 「Pattern.any」實體用於擷取自由格式的實體。 當模式使用實體時,模式不會協助偵測機器學習實體。

如果將多個語句摺疊成單一模式,則不要期望看到改善的實體預測。 若要讓應用程式使用簡單的實體,則須新增語句或使用清單實體。

模式可使用實體角色

如果模式中有兩個以上的實體與內容相關,則模式會使用實體角色來擷取關於實體的內容資訊。

使用和不使用模式的預測分數

若範例語句充足,LUIS 便可提高預測信賴度,而不使用模式。 模式可提高信賴分數,而不需要提供許多語句。

模式比對

模式比對會先偵測模式內的實體,再驗證其餘字組和模式的字組順序。 模式中必須要有實體,才能比對模式。 模式會套用到權杖層級,不是字元層級。

Pattern.any 實體

Pattern.any 實體可讓您尋找自由格式的資料,其中實體的用字方式使其很難從語句的剩餘部分判斷實體的結尾。

例如,請考慮可協助員工尋找公司文件的人力資源應用程式。 此應用程式可能必須了解下列範例語句。

  • HRF-123456 在哪裡?
  • HRF-123234 的作者是誰?
  • HRF-456098 是以法文發佈的嗎?

但每份文件的名稱皆有格式化名稱 (用於上述清單),以及人類可閱讀的名稱,例如「新進員工要求調職 2018 年第 5 版」。

人類可閱讀名稱的語句看起來可能如下:

  • 新進員工要求調職 2018 年第 5 版在哪裡?
  • 『新進員工要求調職 2018 年第 5 版』的作者是誰?」
  • 新進員工要求調職 2018 年第 5 版是以法文發行的嗎?

語句包含的字組可能會造成 LUIS 無法正確辨識實體結束位置。 在模式中使用 Pattern.any 實體可讓您指定文件名稱的開頭和結尾,以便 LUIS 正確擷取表單名稱。 例如下列範本語句:

  • {FormName} 在哪裡[?]
  • {FormName} 的作者是誰[?]
  • {FormName} 是以法文發行的嗎[?]

模式的最佳做法:

在稍後的反覆項目中新增模式

在新增模式之前,您應該了解應用程式的運作方式,因為模式的比重高於範例語句,而且會扭曲信賴度。

一旦您了解應用程式的運作方式之後,請依模式套用至您應用程式的方式新增模式。 您無須在每次逐一查看應用程式設計時新增模式。

在模型設計一開始新增模式並無壞處,但在語句測試模型後,則可更輕鬆查看模型的各項模式變化。

請勿新增許多模式

請勿新增太多模式。 LUIS 旨在透過更少的範例快速學習。 請勿不必要地讓系統多載。

功能

在機器學習中,「特徵」是您系統透過其觀察和學習的資料特徵或屬性。

機器學習特徵為 LUIS 提供重要提示,可在哪裡找到區分概念的事物。 它們是 LUIS 可以使用的提示,但它們不是硬性規則。 LUIS 會標記這些提示,以便尋找資料。

特徵可描述為函數,例如 f(x) = y。 在範例語句中,特徵會告訴您可在哪裡尋找區分特徵。 使用此資訊可協助建立您的結構描述。

功能類型

特徵是結構描述設計的必要部分。 LUIS 同時支援片語清單和模型作為特徵:

  • 片語清單特徵
  • 模型 (意圖或實體) 即特徵

在範例語句中尋找特徵

由於 LUIS 是語言型應用程式,因此特徵是以文字為基礎。 選擇文字,指出您想要區分的特徵。 對於 LUIS,最小單位是「語彙基元」。 對於英文語言,語彙基元是沒有空格或標點符號的連續字母和數字範圍。

由於空格和標點符號不是語彙基元,因此請將焦點放在您可以用作特徵的文字線索。 請記住要包含字組的變化,例如:

  • 複數形式
  • 動詞時態
  • Abbreviations
  • 拼寫與拼寫錯誤

判斷文字是否需要下列條件 (因為會區分特徵):

  • 符合確切的字組或片語:考慮將規則運算式實體或清單實體作為特徵新增至實體或意圖。
  • 符合已知概念,像是日期、時間或人名:使用預建實體作為實體或意圖的特徵。
  • 隨著時間學習新範例:使用某些概念範例的片語清單作為實體或意圖的特徵。

建立概念的片語清單

片語清單是描述概念的字組或片語清單。 在語彙基元層級上,片語清單會套用為不區分大小寫的相符項。

新增片語清單時,您可將此特徵設為全域。 全域特徵適用於整個應用程式。

何時使用片語清單

當您需要 LUIS 應用程式來一般化並識別概念的新項目時,請使用片語清單。 片語清單就像網域特定詞彙一樣。 它們可增強對意圖和實體的理解品質。

如何使用片語清單

使用片語清單,LUIS 會考慮內容和一般化,以識別類似項目,但非文字完全相符的項目。 請遵循下列步驟來使用片語清單:

  1. 從機器學習實體開始:
  2. 新增範例語句。
  3. 使用機器學習實體進行標記。
  4. 新增片語清單:
  5. 新增具有類似意義的字組。 不要新增每個可能的字組或片語。 相反地,一次新增一些字組或片語。 然後,重新定型並發佈。
  6. 檢閱並新增建議的字組。

片語清單的一般案例

片語清單的一般案例是增強與特定想法相關的字組。

醫療詞彙是很好的字組範例,其可能需要片語清單來提高其重要性。 這些字詞可以具有特定的物理、化學、治療或抽象意義。 若沒有片語清單,LUIS 不知道字詞對於您的主旨網域很重要。

例如,若要擷取醫療詞彙:

  1. 在這些語句內建立範例語句,並標記醫療字詞。
  2. 使用主旨網域內的字詞範例建立片語清單。 此片語清單應包含您已標記的實際字詞,以及描述相同概念的其他字詞。
  3. 將片語清單新增至實體或子實體,擷取片語清單中使用的概念。 最常見的案例是機器學習實體的元件 (子項)。 若片語清單應套用到所有意圖或實體,請將片語清單標記為全域片語清單。 EnabledForAllModels 旗標會控制此模型在 API 中的範圍。

片語清單的語彙基元比對

片語清單一律套用在語彙基元層級。 下表顯示具有字組 Ann 的片語清單如何依該順序套用至相同字元的變化。

"Ann" 的語彙基元變化 找到語彙基元時,表示片語清單相符
ANN
aNN
是 - 語彙基元為 Ann
Ann's 是 - 語彙基元為 Ann
Anne 否 - 語彙基元為 Anne

模型即特徵可協助另一個模型

您可以將模型 (意圖或實體) 新增為另一個模型 (意圖或實體) 的特徵。 藉由將現有的意圖或實體新增為特徵,您可以新增定義完善的概念,其中具有已標記的範例。

將模型新增為特徵時,您可以將此特徵設定為:

  • 必要。 必須找到必要特徵,才能從預測端點傳回模型。
  • 全域。 全域特徵適用於整個應用程式。

何時使用實體作為意圖的特徵

當偵測實體對意圖而言很重要時,請將該實體新增為意圖的特徵。

例如,若意圖是預訂航班 (例如 BookFlight),而實體是機票資訊 (例如座位數目、起點和目的地),則尋找機票資訊實體應會大幅增加 BookFlight 意圖的預測權重。

何時使用實體作為另一個實體的特徵

當實體 (A) 的預測對實體 (B) 的預測而言很重要時,應將該實體 (A) 新增為另一個實體 (B) 的特徵。

例如,如果送貨地址實體包含在街道地址子實體中,則尋找街道地址子實體會大幅增加送貨地址實體的預測權重。

  • 出貨地址 (機器學習實體):
    • 街道號碼 (子實體)
    • 街道地址 (子實體)
    • 城市 (子實體)
    • 州或省 (子實體)
    • 國家/地區 (子實體)
    • 郵遞區號 (子實體)

具有特徵的巢狀子實體

機器學習子實體指出概念存在於父實體中。 父實體可以是另一個子實體或最上層實體。 子實體的值會作為其父實體的特徵。

子實體可以同時具有一個片語清單和一個模型 (另一個實體) 即特徵。

當子實體具有片語清單時,它會提升概念的詞彙,但不會將任何資訊新增至預測的 JSON 回應。

當子實體具有另一個實體的特徵時,JSON 回應會包含其他實體的已擷取資料。

必要的功能

必須找到必要的特徵,才能從預測端點傳回模型。 當您知道傳入的資料必須符合特徵時,請使用必要的特徵。

如果語句文字不符合所需的特徵,則系統不會擷取該文字。

必要特徵會使用非機器學習實體:

  • 規則運算式實體
  • 清單實體
  • 預建實體

如果您確信會在資料中找到您的模型,請視需要設定特徵。 如果找不到,則必要特徵不會傳回任何東西。

繼續使用出貨地址的範例:

出貨地址 (機器學習實體)

  • 街道號碼 (子實體)
  • 街道地址 (子實體)
  • 街道名稱 (子實體)
  • 城市 (子實體)
  • 州或省 (子實體)
  • 國家/地區 (子實體)
  • 郵遞區號 (子實體)

使用預建實體所需的特徵

預建實體 (例如城市、州/省和國家/地區) 通常是一組封閉的清單,這表示它們不會隨著時間而有很大的變化。 這些實體可能會有相關的建議特徵,而且這些特徵可能會標示為必要。 但 isRequired 旗標只會與獲派的實體相關,而不會影響階層。 如果找不到預建的子實體特徵,這不會影響父實體的偵測和傳回。

作為必要特徵的範例,請考慮您是否想要偵測地址。 您可能考慮讓街道號碼成為需求。 這可讓使用者輸入 "1 Microsoft Way" 或 "One Microsoft Way",而且對於街道號碼子實體,這兩者都會解析為數字 "1"。 如需詳細資訊,請參閱預建實體一文。

使用清單實體所需的特徵

清單實體會用作正式名稱及其同義字的清單。 作為必要特徵,如果語句未包含正式名稱或同義字,則系統不會傳回實體,作為預測端點的一部分。

假設您的公司只出貨給一組有限的國家/地區。 您可以建立一個清單實體,其中包含數種方式,讓您的客戶用來參考國家/地區。 如果 LUIS 在語句的文字內找不到完全相符的實體,則系統不會在預測中傳回實體 (其具有清單實體所需的特徵)。

標準名稱** 同義字
美國 美式英文
U.S.A
US
USA
0

用戶端應用程式 (例如聊天機器人) 可以提出後續問題來提供協助。 這可協助客戶了解國家/地區選擇是有限且「必要」

使用規則運算式實體所需的特徵

用作必要特徵的規則運算式會提供豐富的文字比對功能。

在出貨地址範例中,您可以建立一個規則運算式,擷取國家/地區郵遞區號的語法規則。

全域特徵

雖然最常見的用途是將特徵套用至特定模型,但您可以將特徵設定為「全域特徵」,以將其套用至整個應用程式。

全域特徵最常見的用途是將額外的詞彙新增至應用程式。 例如,如果您的客戶使用主要語言,但預期能夠在相同語句內使用另一種語言,則您可以新增一種特徵,包含來自次要語言的字組。

因為使用者預期會在任何意圖或實體上使用次要語言,所以請將字組從次要語言新增至片語清單。 將片語清單設定為全域特徵。

結合特徵以增加優勢

您可以使用多種特徵來描述特徵或概念。 常見的配對就是使用:

範例:旅遊應用程式的訂票實體特徵

作為基本範例,請考慮使用航班預約「意圖」和訂票「實體」來預訂航班的應用程式。 訂票實體會擷取資訊,以便在預約系統中預訂機票。

用於訂票的機器學習實體具有兩個子實體來擷取起點和目的地。 這些特徵必須新增至每個子實體,而不是最上層實體。

此螢幕擷取畫面顯示訂票應用程式的範例實體。

訂票實體是一種機器學習實體,其子實體包括「起點」和「目的地」。 這些子實體都會指出地理位置。 為了協助擷取位置,並區分「起點」與「目的地」,每個子實體都應該具有特徵。

類型 起點子實體 目的地子實體
模型作為功能 geographyV2 預建實體 geographyV2 預建實體
片語清單 來源字組:start at、begin from、leave 目的地字組:to、arrive、land at、go、going、stay、heading
片語清單 機場代碼 - 適用於起點和目的地的相同清單 機場代碼 - 適用於起點和目的地的相同清單
片語清單 機場名稱 - 適用於起點和目的地的相同清單 機場代碼 - 適用於起點和目的地的相同清單

若預期人們會使用機場代碼和機場名稱,LUIS 應會有使用這兩種片語類型的片語清單。 機場代碼可能更常用於聊天機器人中輸入的文字,而機場名稱可能更常用於口語對話,例如啟用語音的聊天機器人。

這些特徵的比對詳細資料只會針對模型傳回,而不會針對片語清單傳回,因為預測 JSON 中只會傳回模型。

意圖中的訂票標記

在建立機器學習實體之後,您必須將範例語句新增至意圖,並標記父實體和所有子實體。

針對訂票範例,請使用文字中的 TicketBooking 實體和任何子實體,標記意圖中的範例語句。

顯示範例語句標記的螢幕擷取畫面。

範例:比薩訂購應用程式

針對第二個範例,請考慮用於比薩餐廳的應用程式,其會接收比薩訂單,包括某人所訂購的比薩類型詳細資料。 如有可能,應該擷取每個比薩的詳細資料,才能完成訂單處理。

此範例中的機器學習實體更複雜,因為具有巢狀子實體、片語清單、預建實體和自訂實體。

此螢幕擷取畫面顯示具有不同子實體的機器學習實體。

此範例會使用子實體層級的特徵和子實體層級的子項。 哪種層級取得何種片語清單或模型即特徵,這是實體設計的重要部分。

雖然子實體可有許多片語清單,作為協助偵測實體的特徵,但每個子實體只有一個模型即特徵。 在這個比薩應用程式中,這些模型主要是清單。

此螢幕擷取畫面顯示機器學習實體使用許多片語清單作為特徵。

正確標記的範例語句會以說明實體如何巢狀化的方式顯示。

下一步