Compartir a través de

检测和编辑文本中个人身份信息

Azure 语言是一项基于云的服务,用于将自然语言处理(NLP)功能应用于基于文本的数据。 PII 功能可以评估非结构化文本,并跨多个预定义类别提取和编修文本中的敏感信息 (PII) 和健康状况信息 (PHI)。

开发选项

若要使用 PII 检测,需在应用程序中提交文本进行分析并处理 API 输出。 分析按原样执行,不会对数据所用的模型进行自定义。 可通过两种方式使用 PII 检测:

发展选项 DESCRIPTION
Language Studio Language Studio 是一个基于网络的平台,允许您在注册时结合自己的数据和文本示例使用个人身份识别信息检测。 有关详细信息,请参阅 Language Studio 网站Language Studio 快速入门
REST API 或客户端库 (Azure SDK) 使用 REST API 或以各种语言提供的客户端库将 PII 检测集成到应用程序中。

指定 PII 检测模型

默认情况下,此功能对文本使用最新的可用 AI 模型。 你还可以将 API 请求配置为使用特定模型版本

输入语言

提交要处理的输入文本时,可以指定它们是用哪种受支持的语言编写的。 如果未指定语言,则提取默认为英语。 API 可能会在响应中返回偏移量,以支持不同的多语言和表情符号编码

其他配置参数 (2025-11-15-preview)

重要

编辑政策

从版本和更高版本 2025-11-15-preview 开始,可以指定参数 redactionPolicies 来定义在处理文本时应用哪些修订策略。 可以在单个请求中包含多个策略,其中一个策略指定为defaultRedactionPolicy,并为指定的实体设定附加的政策覆盖。

策略字段接受四种策略类型:

有关详细信息, 请参阅REST API PII 任务参数

syntheticReplacement 策略类别 🆕

syntheticReplacement 策略类型** 将检测到的 PII 实体替换为替换值。 例如,类似于“John Doe 收到来自 424-878-9193 的呼叫”的输入可以转换为“Sam Johnson 收到来自 401-255-6901 的呼叫”。这些替换项是从预定义的替代值集中随机选择的。


POST {Endpoint}/language/:analyze-text?api-version=2025-11-15-preview

      {
     "kind": "PiiEntityRecognition",
     "parameters": {
       "modelVersion": "latest",
       "redactionPolicies": [
         {
           "policyKind": "syntheticReplacement",
           "entityTypes": [
                    "Person",
                    "PhoneNumber"
           ]
         }
       ]
     }
   }
characterMask 策略类型

characterMask策略类型**允许你用指定字符(例如“”)在保留原始文本长度和偏移量的同时屏蔽被编辑文本。例如,“***收到来自************的呼叫”。

此外,还有一个名为 redactionCharacter 的可选字段,可用于指定在应用 characterMask 策略时用于遮蔽的字符。

示例请求

   POST {Endpoint}/language/:analyze-text?api-version=2025-11-15-preview
           {
       "kind": "PiiEntityRecognition",
       "parameters": {
       "modelVersion": "latest",
           "redactionPolicies": [
             {
               "policyKind": "characterMask",
               "redactionCharacter": "-"
             }
           ]
         }
     }

noMask 策略类型

noMask 策略类型** 使你可以返回响应而不包括 redactedText 字段。 例如,“John Doe 收到来自 424-878-919 的呼叫。

示例请求

   POST {Endpoint}/language/:analyze-text?api-version=2025-11-15-preview

     {
    "kind": "PiiEntityRecognition",
    "parameters": {
      "modelVersion": "latest",
      "redactionPolicies": [
        {
          "policyKind": "noMask"
        }
      ]
    }
  }

entityMask 策略类型

entityMask 策略类型** 使你能够屏蔽检测到的 PII 实体文本及其相应的实体类型。 例如,“[PERSON_1] 从 [PHONENUMBER_1] 收到呼叫”。


   POST {Endpoint}/language/:analyze-text?api-version=2025-11-15-preview

      {
     "kind": "PiiEntityRecognition",
     "parameters": {
       "modelVersion": "latest",
       "redactionPolicies": [
         {
           "policyKind": "entityMask"
         }
       ]
     }
   }

置信评分阈值 🆕

PII 功能当前会删除所有检测到的实体,不论其置信度分数。 因此,即使首选保留这些实体,也删除置信度分数较低的实体。 为了提高灵活性,可以配置一个置信度阈值,该阈值确定实体必须保留在输出中的最小置信度分数。

示例请求


    POST {Endpoint}/language/:analyze-text?api-version=2025-11-15-preview

         {
           "kind":"PiiEntityRecognition",
           "parameters":{
              "modelVersion":"latest",
              "confidenceScoreThreshold":{
                 "default":0.9,
                 "overrides":[
                    {
                       "value":0.8,
                       "entity":"USSocialSecurityNumber"
                    },
                    {
                       "value":0.6,
                       "entity":"Person",
                       "language":"en"
                    }
                 ]
              }
           }
        }

若要了解详细信息, 请参阅REST API 参考:ConfidenceScoreThreshold

禁用实体验证

使用 PII 服务时,它会验证多个实体类型,以确保数据完整性并最大程度地减少误报。 但是,这种严格的验证有时可能会降低不需要验证的工作流速度。 为了提高灵活性,我们引入了一个参数,允许你在选择时禁用实体验证。 默认情况下,此参数设置为 false,这意味着仍保留严格的实体验证。 如果要绕过请求的实体验证,可以将参数设置为 true。

示例请求



 POST {Endpoint}/language/:analyze-text?api-version=2025-11-15-preview

     {
        "kind":"PiiEntityRecognition",
        "parameters":{
           "modelVersion":"latest",
           "disableEntityValidation":"true | false"
        },
        "analysisInput":{
           "documents":[
              {
                 "id":"id01",
                 "text":"blah"
              }
           ]
        }
     }

若要了解详细信息, 请参阅REST API 参考:PiiTaskParameters

选择要返回的实体

此 API 会尝试检测给定输入文本语言的已定义实体类别。 如果要指定将检测并返回哪些实体,请使用可选的 piiCategories 参数指定相应的实体类别。 此参数还可以检测默认情况下未为输入文本语言启用的实体。 以下示例仅检测 Person。 可以指定一种或多种要返回的实体类型

小窍门

如果在指定实体类别时不包括 default,则 API 将仅返回指定的实体类别。

输入:

注释

在此示例中,仅返回“person”实体类型

https://<your-language-resource-endpoint>/language/:analyze-text?api-version=2022-05-01

{
  "kind": "PiiEntityRecognition",
  "parameters": {
    "modelVersion": "latest",
    "piiCategories": [
      "Person"
    ],
    "redactionPolicies": {
      "policyKind": "characterMask",
      "redactionCharacter": "*"
       # MaskWithCharacter|MaskWithEntityType|DoNotRedact
    }
  },
  "analysisInput": {
    "documents": [
      {
        "id": "1",
        "language": "en",
        "text": "We went to Contoso foodplace located at downtown Seattle last week for a dinner party, and we adore the spot! They provide marvelous food and they have a great menu. The chief cook happens to be the owner (I think his name is John Doe) and he is super nice, coming out of the kitchen and greeted us all. We enjoyed very much dining in the place! The pasta I ordered was tender and juicy, and the place was impeccably clean. You can even pre-order from their online menu at www.contosofoodplace.com, call 112-555-0176 or send email to order@contosofoodplace.com! The only complaint I have is the food didn't come fast enough. Overall I highly recommend it!"
      }
    ]
  }
}

输出:


{
    "kind": "PiiEntityRecognitionResults",
    "results": {
        "documents": [
            {
                "redactedText": "We went to Contoso foodplace located at downtown Seattle last week for a dinner party, and we adore the spot! They provide marvelous food and they have a great menu. The chief cook happens to be the owner (I think his name is ********) and he is super nice, coming out of the kitchen and greeted us all. We enjoyed very much dining in the place! The pasta I ordered was tender and juicy, and the place was impeccably clean. You can even pre-order from their online menu at www.contosofoodplace.com, call 112-555-0176 or send email to order@contosofoodplace.com! The only complaint I have is the food didn't come fast enough. Overall I highly recommend it!",
                "id": "1",
                "entities": [
                    {
                        "text": "John Doe",
                        "category": "Person",
                        "offset": 226,
                        "length": 8,
                        "confidenceScore": 0.98
                    }
                ],
                "warnings": []
            }
        ],
        "errors": [],
        "modelVersion": "2021-01-15"
    }
}

将 PII 调整以适应您的领域

为了适应和调整客户用于识别实体(也称为“上下文”)的自定义词汇,功能entitySynonyms允许客户为特定实体类型定义其自选同义词。

此功能旨在识别在可能对模型不熟悉的上下文中出现的实体,特别是客户输入中特定的术语。 这样做可确保在识别过程中准确识别并正确链接客户专有术语。

此选项 valueExclusionPolicy 允许客户调整 PII 服务,以便在客户希望某些术语不被检测和隐藏的情况下,即使这些术语属于他们感兴趣且通常需要检测的 PII 类别。 例如,警察部门可能希望在大多数情况下隐去个人标识符,除了像“警官”、“嫌疑人”和“证人”这样的术语。

现在,客户可以使用正则表达式识别配置文件指定自己的正则表达式来调整 PII 服务的检测。 有关如何安装和运行个人身份信息(PII)检测容器的教程,请参阅我们的 容器作指南

可在“将 PII 适配到您的领域”操作指南中找到更详细的教程。

提交数据

在收到请求时执行分析。 同步使用 PII 检测功能是无状态的。 不会在帐户中存储数据,结果会立即在响应中返回。

以异步方式使用此功能时,API 结果在引入请求时的 24 小时内可用,并在响应中指示。 在此时间段后,结果将被清除,并且不再可用于检索。

获取 PII 结果

从 PII 检测获得结果时,可以将结果流式传输到应用程序或将输出保存到本地系统上的文件中。 API 响应包括识别的实体,包括其类别和子类别,以及置信度分数。 还将返回 PII 实体已被去除的文本字符串。

服务和数据限制

有关每分钟和每秒可以发送的请求大小和数量信息,请参阅服务限制一文。

后续步骤

个人身份信息 (PII) 概览