你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

个人身份信息 (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 maskingMode 参数设置为 replace 时用来屏蔽文本的字符。 支持以下选项:*(默认)。 仅当未设置为 maskingMode,此参数null才可。replace
domain (可选)一个字符串值(如果指定)将域设置为实体类别的子集。 可能的值包括:"phi"(仅检测机密运行状况信息)、"none"
piiCategories (可选)如果要指定检测到和返回的实体,请使用此可选参数(定义为字符串列表)和相应的实体类别。 此参数还可以检测默认情况下未为文档语言启用的实体。 有关完整列表,请参阅支持的个人身份信息实体类别
modelVersion (可选)指定调用个人身份信息检测时将使用的模型版本。 如果未指定,则默认为最新版本。 建议不要指定此值,除非必要。

技能输入

输入名称 说明
languageCode 表示记录的语言的字符串。 如果未指定此参数,将使用默认语言代码分析记录。
请参阅支持的语言的完整列表
text 要分析的文本。

技能输出

输出名称 说明
piiEntities 复杂类型的数组,包含以下字段:
  • "text"(提取的实际个人身份信息)
  • "type"
  • "subType"
  • "score"(值越高意味着它越有可能是一个真实的实体)
  • "offset"(输入文本中)
  • "length"

有关完整列表,请参阅支持的个人身份信息实体类别
maskedText 此输出因 maskingMode而异。 replace如果是maskingMode,输出是对输入文本执行的掩码的字符串结果,如 <a0/a0> 所述。 none如果是maskingMode,则没有输出。

示例定义

  {
    "@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 可能为空,这可能会影响任何需要该输出的下游技能。 因此,在编写技能组定义时,一定要调查所有与缺少输出有关的警告。

另请参阅