你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:检测个人身份信息 (PII)
注意
本快速入门仅介绍文档中的 PII 检测。 若要详细了解如何检测对话中的 PII,请参阅如何检测和编辑对话中的 PII。
参考文档 | 更多示例 | 包 (NuGet) | 库源代码
借助本快速入门,使用 .NET 客户端库创建个人身份信息 (PII) 检测应用程序。 在以下示例中,你将创建可在文本中识别已识别的敏感信息的 C# 应用程序。
提示
可以通过 Azure AI Foundry 试用汇总功能,而无需编写代码。
先决条件
- Azure 订阅 - 免费创建订阅
- 拥有 Azure 订阅后,请创建 AI 服务资源。
- Visual Studio IDE
设置
创建环境变量
应用程序必须经过身份验证才能发送 API 请求。 对于生产,请使用安全的方式存储和访问凭据。 在此示例中,你将凭据写入运行应用程序的本地计算机上的环境变量。
若要为语言资源密钥设置环境变量,请打开控制台窗口,并按照操作系统和开发环境的说明进行操作。
- 若要设置
LANGUAGE_KEY
环境变量,请将your-key
替换为资源的其中一个密钥。 - 若要设置
LANGUAGE_ENDPOINT
环境变量,请将your-endpoint
替换为资源的终结点。
重要
如果使用 API 密钥,请将其安全地存储在某个其他位置,例如 Azure Key Vault 中。 请不要直接在代码中包含 API 密钥,并且切勿公开发布该密钥。
有关 Azure AI 服务安全性的详细信息,请参阅对 Azure AI 服务的请求进行身份验证。
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
注意
如果只需要访问当前正在运行的控制台中的环境变量,则可以使用 set
(而不是 setx
)设置环境变量。
添加环境变量后,可能需要重启任何正在运行的、需要读取环境变量的程序(包括控制台窗口)。 例如,如果使用 Visual Studio 作为编辑器,请在运行示例之前重启 Visual Studio。
创建新的 .NET Core 应用程序
使用 Visual Studio IDE 创建新的 .NET Core 控制台应用。 这会创建包含单个 C# 源文件的“Hello World”项目:program.cs。
右键单击解决方案资源管理器中的解决方案,然后选择“管理 NuGet 包”,以便安装客户端库。 在打开的包管理器中选择“浏览”,搜索 Azure.AI.TextAnalytics
。 选择版本 5.2.0
,然后选择“安装”。 也可使用包管理器控制台。
代码示例
将以下代码复制到 program.cs 文件中,然后运行代码。
using Azure;
using System;
using Azure.AI.TextAnalytics;
namespace Example
{
class Program
{
// This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
static string languageKey = Environment.GetEnvironmentVariable("LANGUAGE_KEY");
static string languageEndpoint = Environment.GetEnvironmentVariable("LANGUAGE_ENDPOINT");
private static readonly AzureKeyCredential credentials = new AzureKeyCredential(languageKey);
private static readonly Uri endpoint = new Uri(languageEndpoint);
// Example method for detecting sensitive information (PII) from text
static void RecognizePIIExample(TextAnalyticsClient client)
{
string document = "Call our office at 312-555-1234, or send an email to support@contoso.com.";
PiiEntityCollection entities = client.RecognizePiiEntities(document).Value;
Console.WriteLine($"Redacted Text: {entities.RedactedText}");
if (entities.Count > 0)
{
Console.WriteLine($"Recognized {entities.Count} PII entit{(entities.Count > 1 ? "ies" : "y")}:");
foreach (PiiEntity entity in entities)
{
Console.WriteLine($"Text: {entity.Text}, Category: {entity.Category}, SubCategory: {entity.SubCategory}, Confidence score: {entity.ConfidenceScore}");
}
}
else
{
Console.WriteLine("No entities were found.");
}
}
static void Main(string[] args)
{
var client = new TextAnalyticsClient(endpoint, credentials);
RecognizePIIExample(client);
Console.Write("Press any key to exit.");
Console.ReadKey();
}
}
}
输出
Redacted Text: Call our office at ************, or send an email to *******************.
Recognized 2 PII entities:
Text: 312-555-1234, Category: PhoneNumber, SubCategory: , Confidence score: 0.8
Text: support@contoso.com, Category: Email, SubCategory: , Confidence score: 0.8
参考文档 | 更多示例 | 包 (Maven) | 库源代码
借助本快速入门,使用 Java 客户端库创建个人身份信息 (PII) 检测应用程序。 在以下示例中,你将创建可在文本中识别已识别的敏感信息的 Java 应用程序。
提示
可以通过 Azure AI Foundry 试用汇总功能,而无需编写代码。
先决条件
- Azure 订阅 - 免费创建订阅
- 拥有 Azure 订阅后,请创建 AI 服务资源。
- Java 开发工具包 (JDK) 版本 8 或更高版本
设置
创建环境变量
应用程序必须经过身份验证才能发送 API 请求。 对于生产,请使用安全的方式存储和访问凭据。 在此示例中,你将凭据写入运行应用程序的本地计算机上的环境变量。
若要为语言资源密钥设置环境变量,请打开控制台窗口,并按照操作系统和开发环境的说明进行操作。
- 若要设置
LANGUAGE_KEY
环境变量,请将your-key
替换为资源的其中一个密钥。 - 若要设置
LANGUAGE_ENDPOINT
环境变量,请将your-endpoint
替换为资源的终结点。
重要
如果使用 API 密钥,请将其安全地存储在某个其他位置,例如 Azure Key Vault 中。 请不要直接在代码中包含 API 密钥,并且切勿公开发布该密钥。
有关 Azure AI 服务安全性的详细信息,请参阅对 Azure AI 服务的请求进行身份验证。
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
注意
如果只需要访问当前正在运行的控制台中的环境变量,则可以使用 set
(而不是 setx
)设置环境变量。
添加环境变量后,可能需要重启任何正在运行的、需要读取环境变量的程序(包括控制台窗口)。 例如,如果使用 Visual Studio 作为编辑器,请在运行示例之前重启 Visual Studio。
添加客户端库
在首选 IDE 或开发环境中创建 Maven 项目。 然后在项目的 pom.xml 文件中,添加以下依赖项。 可联机找到用于其他生成工具的实现语法。
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-textanalytics</artifactId>
<version>5.2.0</version>
</dependency>
</dependencies>
代码示例
创建名为 Example.java
的 Java 文件。 打开该文件,并复制以下代码。 然后运行代码。
import com.azure.core.credential.AzureKeyCredential;
import com.azure.ai.textanalytics.models.*;
import com.azure.ai.textanalytics.TextAnalyticsClientBuilder;
import com.azure.ai.textanalytics.TextAnalyticsClient;
public class Example {
// This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
private static String languageKey = System.getenv("LANGUAGE_KEY");
private static String languageEndpoint = System.getenv("LANGUAGE_ENDPOINT");
public static void main(String[] args) {
TextAnalyticsClient client = authenticateClient(languageKey, languageEndpoint);
recognizePiiEntitiesExample(client);
}
// Method to authenticate the client object with your key and endpoint
static TextAnalyticsClient authenticateClient(String key, String endpoint) {
return new TextAnalyticsClientBuilder()
.credential(new AzureKeyCredential(key))
.endpoint(endpoint)
.buildClient();
}
// Example method for detecting sensitive information (PII) from text
static void recognizePiiEntitiesExample(TextAnalyticsClient client)
{
// The text that need be analyzed.
String document = "My SSN is 859-98-0987";
PiiEntityCollection piiEntityCollection = client.recognizePiiEntities(document);
System.out.printf("Redacted Text: %s%n", piiEntityCollection.getRedactedText());
piiEntityCollection.forEach(entity -> System.out.printf(
"Recognized Personally Identifiable Information entity: %s, entity category: %s, entity subcategory: %s,"
+ " confidence score: %f.%n",
entity.getText(), entity.getCategory(), entity.getSubcategory(), entity.getConfidenceScore()));
}
}
输出
Redacted Text: My SSN is ***********
Recognized Personally Identifiable Information entity: 859-98-0987, entity category: USSocialSecurityNumber, entity subcategory: null, confidence score: 0.650000.
借助本快速入门,使用 Node.js 客户端库创建个人身份信息 (PII) 检测应用程序。 在以下示例中,你将创建可在文本中识别已识别的敏感信息的 JavaScript 应用程序。
先决条件
- Azure 订阅 - 免费创建订阅
- 拥有 Azure 订阅后,请创建 AI 服务资源。
- Node.js v14 LTS 或更高版本
设置
创建环境变量
应用程序必须经过身份验证才能发送 API 请求。 对于生产,请使用安全的方式存储和访问凭据。 在此示例中,你将凭据写入运行应用程序的本地计算机上的环境变量。
若要为语言资源密钥设置环境变量,请打开控制台窗口,并按照操作系统和开发环境的说明进行操作。
- 若要设置
LANGUAGE_KEY
环境变量,请将your-key
替换为资源的其中一个密钥。 - 若要设置
LANGUAGE_ENDPOINT
环境变量,请将your-endpoint
替换为资源的终结点。
重要
如果使用 API 密钥,请将其安全地存储在某个其他位置,例如 Azure Key Vault 中。 请不要直接在代码中包含 API 密钥,并且切勿公开发布该密钥。
有关 Azure AI 服务安全性的详细信息,请参阅对 Azure AI 服务的请求进行身份验证。
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
注意
如果只需要访问当前正在运行的控制台中的环境变量,则可以使用 set
(而不是 setx
)设置环境变量。
添加环境变量后,可能需要重启任何正在运行的、需要读取环境变量的程序(包括控制台窗口)。 例如,如果使用 Visual Studio 作为编辑器,请在运行示例之前重启 Visual Studio。
创建新的 Node.js 应用程序
在控制台窗口(例如 cmd、PowerShell 或 Bash)中,为应用创建一个新目录并导航到该目录。
mkdir myapp
cd myapp
运行 npm init
命令以使用 package.json
文件创建一个 node 应用程序。
npm init
安装客户端库
安装 npm 包:
npm install @azure/ai-text-analytics
代码示例
打开该文件,并复制以下代码。 然后运行代码。
"use strict";
const { TextAnalyticsClient, AzureKeyCredential } = require("@azure/ai-text-analytics");
// This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
const key = process.env.LANGUAGE_KEY;
const endpoint = process.env.LANGUAGE_ENDPOINT;
//an example document for pii recognition
const documents = [ "The employee's phone number is (555) 555-5555." ];
async function main() {
console.log(`PII recognition sample`);
const client = new TextAnalyticsClient(endpoint, new AzureKeyCredential(key));
const documents = ["My phone number is 555-555-5555"];
const [result] = await client.analyze("PiiEntityRecognition", documents, "en");
if (!result.error) {
console.log(`Redacted text: "${result.redactedText}"`);
console.log("Pii Entities: ");
for (const entity of result.entities) {
console.log(`\t- "${entity.text}" of type ${entity.category}`);
}
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
输出
PII recognition sample
Redacted text: "My phone number is ************"
Pii Entities:
- "555-555-5555" of type PhoneNumber
借助本快速入门,使用 Python 客户端库创建个人身份信息 (PII) 检测应用程序。 在以下示例中,你将创建可在文本中识别已识别的敏感信息的 Python 应用程序。
先决条件
- Azure 订阅 - 免费创建订阅
- 拥有 Azure 订阅后,请创建 AI 服务资源。
- Python 3.8 或更高版本
设置
创建环境变量
应用程序必须经过身份验证才能发送 API 请求。 对于生产,请使用安全的方式存储和访问凭据。 在此示例中,你将凭据写入运行应用程序的本地计算机上的环境变量。
若要为语言资源密钥设置环境变量,请打开控制台窗口,并按照操作系统和开发环境的说明进行操作。
- 若要设置
LANGUAGE_KEY
环境变量,请将your-key
替换为资源的其中一个密钥。 - 若要设置
LANGUAGE_ENDPOINT
环境变量,请将your-endpoint
替换为资源的终结点。
重要
如果使用 API 密钥,请将其安全地存储在某个其他位置,例如 Azure Key Vault 中。 请不要直接在代码中包含 API 密钥,并且切勿公开发布该密钥。
有关 Azure AI 服务安全性的详细信息,请参阅对 Azure AI 服务的请求进行身份验证。
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
注意
如果只需要访问当前正在运行的控制台中的环境变量,则可以使用 set
(而不是 setx
)设置环境变量。
添加环境变量后,可能需要重启任何正在运行的、需要读取环境变量的程序(包括控制台窗口)。 例如,如果使用 Visual Studio 作为编辑器,请在运行示例之前重启 Visual Studio。
安装客户端库
在安装 Python 后,可以通过以下命令安装客户端库:
pip install azure-ai-textanalytics==5.2.0
代码示例
创建新的 Python 文件,并复制以下代码。 然后运行代码。
# This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
language_key = os.environ.get('LANGUAGE_KEY')
language_endpoint = os.environ.get('LANGUAGE_ENDPOINT')
from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential
# Authenticate the client using your key and endpoint
def authenticate_client():
ta_credential = AzureKeyCredential(language_key)
text_analytics_client = TextAnalyticsClient(
endpoint=language_endpoint,
credential=ta_credential)
return text_analytics_client
client = authenticate_client()
# Example method for detecting sensitive information (PII) from text
def pii_recognition_example(client):
documents = [
"The employee's SSN is 859-98-0987.",
"The employee's phone number is 555-555-5555."
]
response = client.recognize_pii_entities(documents, language="en")
result = [doc for doc in response if not doc.is_error]
for doc in result:
print("Redacted Text: {}".format(doc.redacted_text))
for entity in doc.entities:
print("Entity: {}".format(entity.text))
print("\tCategory: {}".format(entity.category))
print("\tConfidence Score: {}".format(entity.confidence_score))
print("\tOffset: {}".format(entity.offset))
print("\tLength: {}".format(entity.length))
pii_recognition_example(client)
输出
Redacted Text: The ********'s SSN is ***********.
Entity: employee
Category: PersonType
Confidence Score: 0.97
Offset: 4
Length: 8
Entity: 859-98-0987
Category: USSocialSecurityNumber
Confidence Score: 0.65
Offset: 22
Length: 11
Redacted Text: The ********'s phone number is ************.
Entity: employee
Category: PersonType
Confidence Score: 0.96
Offset: 4
Length: 8
Entity: 555-555-5555
Category: PhoneNumber
Confidence Score: 0.8
Offset: 31
Length: 12
借助本快速入门,使用 REST API 发送个人身份信息 (PII) 检测请求。 在以下示例中,你将使用 cURL 在文本中识别已识别的敏感信息。
先决条件
- Azure 订阅 - 免费创建订阅
- 拥有 Azure 订阅后,请创建 AI 服务资源。
设置
创建环境变量
应用程序必须经过身份验证才能发送 API 请求。 对于生产,请使用安全的方式存储和访问凭据。 在此示例中,你将凭据写入运行应用程序的本地计算机上的环境变量。
若要为语言资源密钥设置环境变量,请打开控制台窗口,并按照操作系统和开发环境的说明进行操作。
- 若要设置
LANGUAGE_KEY
环境变量,请将your-key
替换为资源的其中一个密钥。 - 若要设置
LANGUAGE_ENDPOINT
环境变量,请将your-endpoint
替换为资源的终结点。
重要
如果使用 API 密钥,请将其安全地存储在某个其他位置,例如 Azure Key Vault 中。 请不要直接在代码中包含 API 密钥,并且切勿公开发布该密钥。
有关 Azure AI 服务安全性的详细信息,请参阅对 Azure AI 服务的请求进行身份验证。
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
注意
如果只需要访问当前正在运行的控制台中的环境变量,则可以使用 set
(而不是 setx
)设置环境变量。
添加环境变量后,可能需要重启任何正在运行的、需要读取环境变量的程序(包括控制台窗口)。 例如,如果使用 Visual Studio 作为编辑器,请在运行示例之前重启 Visual Studio。
使用示例请求正文创建 JSON 文件
在代码编辑器中,创建一个名为 test_pii_payload.json
的新文件并复制以下 JSON 示例。 在下一步中,此示例请求将发送到 API。
{
"kind": "PiiEntityRecognition",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id":"1",
"language": "en",
"text": "Call our office at 312-555-1234, or send an email to support@contoso.com"
}
]
}
}
'
将 test_pii_payload.json
保存在计算机上的某个位置。 例如,桌面。
发送个人身份信息 (PII) 检测 API 请求
使用以下命令通过所使用的程序发送 API 请求。 将命令复制到终端并运行。
参数 (parameter) | 说明 |
---|---|
-X POST <endpoint> |
指定用于访问 API 的终结点。 |
-H Content-Type: application/json |
用于发送 JSON 数据的内容类型。 |
-H "Ocp-Apim-Subscription-Key:<key> |
指定用于访问 API 的密钥。 |
-d <documents> |
包含要发送的文档的 JSON。 |
将 C:\Users\<myaccount>\Desktop\test_pii_payload.json
替换为在上一步中创建的示例 JSON 请求文件的位置。
命令提示符
curl -X POST "%LANGUAGE_ENDPOINT%/language/:analyze-text?api-version=2022-05-01" ^
-H "Content-Type: application/json" ^
-H "Ocp-Apim-Subscription-Key: %LANGUAGE_KEY%" ^
-d "@C:\Users\<myaccount>\Desktop\test_pii_payload.json"
PowerShell
curl.exe -X POST $env:LANGUAGE_ENDPOINT/language/:analyze-text?api-version=2022-05-01 `
-H "Content-Type: application/json" `
-H "Ocp-Apim-Subscription-Key: $env:LANGUAGE_KEY" `
-d "@C:\Users\<myaccount>\Desktop\test_pii_payload.json"
JSON 响应
{
"kind": "PiiEntityRecognitionResults",
"results": {
"documents": [{
"redactedText": "Call our office at ************, or send an email to *******************",
"id": "1",
"entities": [{
"text": "312-555-1234",
"category": "PhoneNumber",
"offset": 19,
"length": 12,
"confidenceScore": 0.8
}, {
"text": "support@contoso.com",
"category": "Email",
"offset": 53,
"length": 19,
"confidenceScore": 0.8
}],
"warnings": []
}],
"errors": [],
"modelVersion": "2021-01-15"
}
}
清理资源
如果想要清理并移除 Azure AI 服务订阅,可以删除资源或资源组。 删除资源组同时也会删除与之相关联的任何其他资源。