個人標識資訊 (PII) 偵測認知技能

PII 偵測技能會從輸入文字擷取個人資訊,並提供遮罩它的選項。 此技能會使用 Azure AI 語言提供的偵測模型。

注意

此技能會系結至 Azure AI 服務,而且需要 每天超過每個索引器 20 份檔的計費資源 。 內建技能的執行會以現有的 Azure AI 服務隨用隨付價格收費。

@odata.type

Microsoft.Skills.Text.PIIDetectionSkill

資料限制

記錄的大小上限應為50,000個字元,如所 String.Length測量。 您可以使用 文字分割技能 進行數據區塊化。 將頁面長度設定為 5000,以獲得最佳結果。

技能參數

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

參數名稱 描述
defaultLanguageCode (選擇性)要套用至未明確指定語言的文件的語言代碼。 如果未指定預設語言代碼,則英文 (en) 是預設語言代碼。
查看支援語言的完整清單。
minimumPrecision 介於 0.0 和 1.0 之間的值。 如果信賴分數 (在輸出中 piiEntities ) 低於設定 minimumPrecision 值,則不會傳回或遮罩實體。 預設值為 0.0。
maskingMode 參數,提供各種方式來遮罩輸入文字中偵測到的個人資訊。 支援下列選項:
  • "none" (預設值):不會發生遮罩, maskedText 而且不會傳回輸出。
  • "replace":將偵測到的實體取代為 參數中指定的 maskingCharacter 字元。 字元會重複至偵測到實體的長度,讓位移正確對應至輸入文字和輸出 maskedText
maskingCharacter 如果 參數設定為 replace,則用來遮罩文字的maskingMode字元。 支援下列選項: * (預設值)。 只有在 null 未設定為 replacemaskingMode,才能使用此參數。
domain (選擇性)如果指定,字串值會將定義域設定為實體類別的子集。 可能的值包括: "phi" (僅偵測機密健康情況資訊), "none"
piiCategories (選擇性)如果您想要指定偵測並傳回哪些實體,請使用這個選擇性參數(定義為字串清單),搭配適當的實體類別。 此參數也可以讓您偵測文件語言預設未啟用的實體。 如需完整清單,請參閱 支援的個人標識資訊實體類別
modelVersion (選擇性)指定 呼叫個人標識資訊偵測時要使用的模型 版本。 未指定時,它會預設為最新版本。 除非有必要,否則建議您不要指定此值。

技能輸入

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

技能輸出

輸出名稱 描述
piiEntities 包含下列欄位的複雜型別數組:
  • "text" (擷取的實際個人標識資訊)
  • "type"
  • "subType"
  • "score" (較高的值表示它更有可能是真正的實體)
  • "offset" (輸入文字)
  • "length"

如需完整清單,請參閱 支援的個人標識資訊實體類別
maskedText 此輸出會因 maskingMode而異。 如果 maskingModereplace,則輸出是透過輸入文字執行的遮罩字串結果,如所述 maskingMode。 如果 maskingModenone,則沒有輸出。

範例定義

  {
    "@odata.type": "#Microsoft.Skills.Text.PIIDetectionSkill",
    "defaultLanguageCode": "en",
    "minimumPrecision": 0.5,
    "maskingMode": "replace",
    "maskingCharacter": "*",
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "piiEntities"
      },
      {
        "name": "maskedText"
      }
    ]
  }

範例輸入

{
    "values": [
      {
        "recordId": "1",
        "data":
           {
             "text": "Microsoft employee with ssn 859-98-0987 is using our awesome API's."
           }
      }
    ]
}

範例輸出

{
  "values": [
    {
      "recordId": "1",
      "data" : 
      {
        "piiEntities":[ 
           { 
              "text":"859-98-0987",
              "type":"U.S. Social Security Number (SSN)",
              "subtype":"",
              "offset":28,
              "length":11,
              "score":0.65
           }
        ],
        "maskedText": "Microsoft employee with ssn *********** is using our awesome API's."
      }
    }
  ]
}

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

錯誤和警告

如果不支援文件的語言代碼,則會傳回警告,而且不會擷取任何實體。 如果您的文字是空的,則會傳回警告。 如果您的文字大於 50,000 個字元,則只會分析前 50,000 個字元,併發出警告。

如果技能傳回警告,輸出 maskedText 可能是空的,這可能會影響任何預期輸出的下游技能。 基於這個理由,請務必在撰寫技能集定義時調查與遺漏輸出相關的所有警告。

另請參閱