分享方式:


實體辨識認知技能 (v3)

實體辨識技能 (v3) 會從文字擷取不同類型的實體。 這些實體屬於14個不同的類別,範圍從人員和組織到URL和電話號碼。 此技能會使用 Azure AI 語言所提供的具名實體辨識機器學習模型。

注意

此技能會繫結至 Azure AI 服務,並且每個索引子每天超過 20 個文件的交易需要可計費資源。 內建技能的執行會依現有的 Azure AI 服務預付型方案價格收費。

@odata.type

Microsoft.Skills.Text.V3.EntityRecognitionSkill

資料限制

記錄的大小上限應該是 50,000 個字元 (以 String.Length 為測量單位)。 如果您需要在將數據傳送至 EntityRecognition 技能之前中斷數據,請考慮使用 文字分割技能。 使用分割技能時,請將頁面長度設定為5000,以獲得最佳效能。

技能參數

參數會區分大小寫,而且都是選擇性的。

參數名稱 描述
categories 應擷取的類別數位。 可能的類別類型:"Person""Location""DateTime""URL""Email""Quantity""Organization""Skill""Product""personType""Event"、、 "phoneNumber""ipAddress""Address" 如果未提供任何類別,則會傳回所有類型。
defaultLanguageCode 輸入文字的語言代碼。 如果未指定預設語言代碼,則會使用英文 (en) 作為預設語言代碼。
查看支援語言的完整清單。 並非所有語言都支援所有實體類別;請參閱下方的附註。
minimumPrecision 介於 0 和 1 之間的值。 如果信賴分數 (在輸出中 namedEntities ) 低於此值,則不會傳回實體。 預設值是 0。
modelVersion (選擇性)指定 呼叫實體辨識 API 時要使用的模型 版本。 如果未指定,則會預設為最新的可用。 除非有必要,否則建議您不要指定此值。

技能輸入

輸入名稱 描述
languageCode 字串,表示記錄的語言。 如果未指定此參數,則會使用預設語言程式代碼來分析記錄。
查看支援語言的完整清單。
text 要分析的文字。

技能輸出

注意

並非所有語言都支援所有實體類別。 請參閱 支援的具名實體辨識 (NER) 實體類別 ,以瞭解您將使用的語言支援哪些實體類別。

輸出名稱 描述
persons 字串陣列,其中每個字串都代表人員的名稱。
locations 字串陣列,其中每個字串都代表位置。
organizations 字串陣列,其中每個字串都代表組織。
quantities 字串數位,其中每個字串都代表數量。
dateTimes 字串陣列,其中每個字串都代表DateTime(如文字中所示) 值。
urls 字串數位,其中每個字串都代表URL
emails 字串數位,其中每個字串都代表電子郵件
personTypes 字串陣列,其中每個字串都代表PersonType
events 字串數位,其中每個字串都代表事件
products 字串數位,其中每個字串都代表產品
skills 字串數位,其中每個字串都代表技能
addresses 字串陣列,其中每個字串都代表位址
phoneNumbers 字串數位,其中每個字串都代表電話號碼
ipAddresses 字串數位,其中每個字串都代表IP位址
namedEntities 包含下列欄位的複雜型別數組:
  • category
  • 子類別
  • confidenceScore (較高的值表示實際實體更能成為實體)
  • length (此實體的長度(字元數)
  • offset (文字中找到的位置)
  • text (文字中顯示的實際實體名稱)

範例定義

  {
    "@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
    "context": "/document",
    "categories": [ "Person", "Email"],
    "defaultLanguageCode": "en", 
    "minimumPrecision": 0.5, 
    "inputs": [
        {
            "name": "text", 
            "source": "/document/content"
        },
        {
            "name": "languageCode", 
            "source": "/document/language"
        }
    ],
    "outputs": [
        {
            "name": "persons", 
            "targetName": "people"
        },
        {
            "name": "emails", 
            "targetName": "emails"
        },
        {
            "name": "namedEntities", 
            "targetName": "namedEntities"
        }
    ]
  }

範例輸入

{
    "values": [
      {
        "recordId": "1",
        "data":
           {
             "text": "Contoso Corporation was founded by Jean Martin. They can be reached at contact@contoso.com",
             "languageCode": "en"
           }
      }
    ]
}

範例輸出

{
  "values": [
    {
      "recordId": "1",
      "data" : 
      {
        "people": [ "Jean Martin"],
        "emails":["contact@contoso.com"],
        "namedEntities": 
        [
          {
            "category": "Person",
            "subcategory": null,
            "length": 11,
            "offset": 35,
            "confidenceScore": 0.98,
            "text": "Jean Martin"
          },
          {
            "category": "Email",
            "subcategory": null,
            "length": 19,
            "offset": 71,
            "confidenceScore": 0.8,
            "text": "contact@contoso.com"
          }
        ],
      }
    }
  ]
}

此技能輸出中實體傳回的位移會直接從 語言服務 API 傳回,這表示如果您使用它們來編製原始字串的索引,則應該使用 .NET 中的 StringInfo 類別來擷取正確的內容。 如需詳細資訊,請參閱 語言服務功能中的多語系和表情符號支援。

警告案例

如果不支援文件的語言代碼,則會傳回警告,而且不會擷取任何實體。

另請參閱