從具有意圖和實體的語句文字擷取數據

重要

LUIS 將於 2025 年 10 月 1 日淘汰,從 2023 年 4 月 1 日起,您將無法建立新的 LUIS 資源。 建議您 將 LUIS 應用程式 移轉至 對話式語言理解 ,以受益於持續的產品支援和多語系功能。

LUIS 可讓您從使用者的自然語言語句取得資訊。 資訊擷取的方式可供程式、應用程式或聊天機器人用來採取動作。 在下列各節中,瞭解使用 JSON 範例從意圖和實體傳回的數據。

最難擷取的數據是機器學習數據,因為它不是完全相符的文字。 機器學習實體的數據擷取必須是撰寫週期的一部分,直到您確信收到預期的數據為止。

數據位置和金鑰使用方式

LUIS 會從已發佈 端點的用戶語句擷取數據。 HTTPS 要求 (POST 或 GET) 包含語句,以及一些選擇性設定,例如預備環境或生產環境。

V2 預測端點要求

https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/<appID>?subscription-key=<subscription-key>&verbose=true&timezoneOffset=0&q=book 2 tickets to paris

V3 預測端點要求

https://westus.api.cognitive.microsoft.com/luis/v3.0-preview/apps/<appID>/slots/<slot-type>/predict?subscription-key=<subscription-key>&verbose=true&timezoneOffset=0&query=book 2 tickets to paris

當您appID編輯該 LUIS 應用程式時,您可以在 LUIS 應用程式的 設定 頁面上,以及 URL 的一部分(之後/apps/)。 subscription-key是用來查詢應用程式的端點金鑰。 雖然您可以在學習 LUIS 時使用免費的撰寫/入門金鑰,但請務必將端點密鑰變更為支援您 預期 LUIS 使用方式的金鑰。 單位 timezoneOffset 為分鐘數。

HTTPS 回應包含所有意圖和實體資訊 LUIS 可以根據預備或生產端點的目前已發佈模型來判斷。 端點 URL 位於 LUIS 網站上的 [ 管理 ] 區段 的 [金鑰和端點] 頁面上。

來自意圖的數據

主要數據是評分最高的 意圖名稱。 端點回應為:

{
  "query": "when do you open next?",
  "topScoringIntent": {
    "intent": "GetStoreInfo",
    "score": 0.984749258
  },
  "entities": []
}
資料物件 資料類型 資料位置
Intent String topScoringIntent.intent “GetStoreInfo”

如果您的聊天機器人或 LUIS 呼叫應用程式根據多個意圖分數做出決策,則傳回所有意圖的分數。

設定 querystring 參數 。 verbose=true 端點回應為:

{
  "query": "when do you open next?",
  "topScoringIntent": {
    "intent": "GetStoreInfo",
    "score": 0.984749258
  },
  "intents": [
    {
      "intent": "GetStoreInfo",
      "score": 0.984749258
    },
    {
      "intent": "None",
      "score": 0.2040639
    }
  ],
  "entities": []
}

意圖會從最高到最低分數排序。

資料物件 資料類型 資料位置 分數
Intent String intents[0].intent “GetStoreInfo” 0.984749258
Intent String intents[1].intent “None” 0.0168218873

如果您新增預先建置的網域,意圖名稱會指出網域,例如 UtiltiesCommunication 以及意圖:

{
  "query": "Turn on the lights next monday at 9am",
  "topScoringIntent": {
    "intent": "Utilities.ShowNext",
    "score": 0.07842206
  },
  "intents": [
    {
      "intent": "Utilities.ShowNext",
      "score": 0.07842206
    },
    {
      "intent": "Communication.StartOver",
      "score": 0.0239675418
    },
    {
      "intent": "None",
      "score": 0.0168218873
    }],
  "entities": []
}
網域 資料物件 資料類型 資料位置
公用程式 Intent String intents[0].intent 公用程式。ShowNext”
通訊 Intent String intents[1].intent 通訊。StartOver”
Intent String intents[2].intent “None”

來自實體的數據

大部分的聊天機器人和應用程式都需要比意圖名稱更多。 這個額外的選擇性數據來自語句中探索到的實體。 每種實體類型都會傳回相符專案的不同資訊。

語句中的單一單字或片語語可以比對多個實體。 在此情況下,會傳回每個相符實體及其分數。

所有實體都會在端點響應的實體數位中傳回

傳回的 Token 化實體

檢閱 LUIS 中的令牌支援

預先建置的實體數據

使用開放原始碼 Recognizers-Text 專案,根據正則表示式比對來探索預先建置的實體。 預先建置的實體會在實體數位中傳回,並使用前面加上 builtin::的型別名稱。

列出實體數據

清單實體 代表一組固定且封閉的相關單字,以及其同義字。 LUIS 不會探索清單實體的其他值。 使用 [建議] 功能,根據目前清單查看新字組的建議。 如果有多個清單實體具有相同的值,則會在端點查詢中傳回每個實體。

正則表達式實體數據

則表達式實體 會根據您提供的正則表達式來擷取實體。

擷取名稱

從語句取得名稱很困難,因為名稱幾乎可以是字母和單字的任何組合。 根據您要擷取的名稱類型而定,您有幾個選項。 下列建議不是規則,而是更多指導方針。

新增預先建置的 PersonName 和 GeographyV2 實體

PersonNameGeographyV2 實體適用於某些 語言文化特性

人員名稱

人員 的名稱可能會有一些稍微的格式,視語言和文化特性而定。 使用預先建置的personName實體或具有名字和姓氏角色的簡單實體

如果您使用簡單的實體,請務必提供範例,這些範例會在語句的不同部分、不同長度的語句中,以及所有意圖的語句,包括 None 意圖。 定期檢閱 端點語句,以標記未正確預測的任何名稱。

地點名稱

位置名稱會設定並命名,例如城市、縣、州、省和國家/地區。 使用預先建置的實體 geographyV2 來擷取位置資訊。

新的和新興的名稱

某些應用程式必須能夠尋找新的和新興的名稱,例如產品或公司。 這些類型的名稱是最困難的數據擷取類型。 從簡單的實體開始,並新增片語清單定期檢閱 端點語句,以標記未正確預測的任何名稱。

Pattern.any 實體數據

Pattern.any 是可變長度佔位元,僅用於模式的範本語句中,以標記實體開始和結束的位置。 必須找到模式中使用的實體,才能套用模式。

情感分析

如果在發佈時設定了情感分析,LUIS JSON 回應就會包含情感分析。 在語言服務檔中深入瞭解情感分析

關鍵片語擷取實體數據

關鍵片語組擷取實體會在語言服務所提供的語句中傳回關鍵片語語。

符合多個實體的數據

LUIS 會傳回語句中探索到的所有實體。 因此,聊天機器人可能需要根據結果做出決策。

符合多個清單實體的數據

如果單字或片語符合一個以上的清單實體,端點查詢會傳回每個 List 實體。

針對查詢 when is the best time to go to red rock?,且應用程式在多個清單中具有單字 red ,LUIS 會辨識所有實體,並傳回實體數位做為 JSON 端點回應的一部分。

下一步

請參閱 新增實體 以深入瞭解如何將實體新增至 LUIS 應用程式。