“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 | 一个参数,提供各种方法来屏蔽在输入文本中检测到的个人信息。 可以使用以下选项: 
 | 
| maskingCharacter | 当 maskingMode参数设置为replace时用来屏蔽文本的字符。 支持以下选项:*(默认)。 如果null未设置为maskingMode,则此参数只能为replace。 | 
| domain | (可选)字符串值(如果指定)将域设置为实体类别的子集。 可能的值包括: "phi"(仅检测机密运行状况信息)、"none"。 | 
| piiCategories | (可选)如要指定检测并返回哪些实体,请使用可选参数(定义为字符串列表)和相应的实体类别。 此参数还可以检测默认情况下未为文档语言启用的实体。 有关完整列表,请参阅支持的个人身份信息实体类别。 | 
| modelVersion | (可选)指定调用个人身份信息检测时将使用的模型版本。 如果未指定,则默认为最新版本。 建议不要指定此值,除非必要。 | 
技能输入
| 输入名称 | 说明 | 
|---|---|
| languageCode | 表示记录的语言的字符串。 如果未指定此参数,将使用默认语言代码分析记录。 请参阅支持的语言的完整列表。 | 
| text | 要分析的文本。 | 
技能输出
| 输出名称 | 说明 | 
|---|---|
| piiEntities | 复杂类型的数组,包含以下字段: 
 有关完整列表,请参阅支持的个人身份信息实体类别。 | 
| maskedText | 此输出因 maskingMode而异。 如果maskingMode为replace,则输出是对输入文本执行屏蔽后的字符串结果,如maskingMode所述。 如果maskingMode为none,则没有输出。 | 
示例定义
  {
    "@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 可能为空,这可能会影响任何需要该输出的下游技能。 因此,在编写技能组定义时,一定要调查所有与缺少输出有关的警告。