为了支持使用自己的术语来标识实体(也称为 上下文),该功能 entitySynonyms
使你可以为特定实体类型定义自定义同义词。 此功能有助于系统使用模型默认无法识别的字词或词汇检测输入中显示的实体。 使特定术语与标准实体保持一致,模型可以在实体检测期间准确识别和链接这些术语。
此自定义词汇支持增强了预生成的 PII(个人身份信息)检测服务,该服务最初是常规语言训练的,可能无法理解专用或非正式词汇,例如使用 BAN 而不是 InternationalBankAccountNumber。 因此,即使 PII 检测以俚语、缩写或非正式语言出现,也能识别敏感信息。 此检测增强功能增强了系统在日常实际场景中保护隐私的能力。
强烈建议先测试实体检测功能的准确性,而无需添加同义词。 然后,如果模型对默认设置性能不佳,则仅引入自定义同义词。 例如,如果模型已将 Org 识别为 组织,则无需将其添加为同义词。
使用自己的数据测试服务后,可以使用 entitySynonyms
以下命令:
- 识别 预生成服务中 需要输入词汇中的自定义同义词上下文词的特定实体。
- 提供上下文实体的自定义同义词列表。
- 指定每个同义词的语言。
“entitySynonyms”参数的 API 架构
{
"parameter":
"entitySynonyms": [
{
"entityType": "InternationalBankAccountNumber",
"synonyms": [ {"synonym": "BAN", "language": "en"} ]
}
]
}
使用指南
- 同义词必须限制为直接引用类型的短语,并保留语义正确性。 例如,对于实体类型
InternationalBankAccountNumber
,有效的同义词可以是“财务帐户号”或 FAN。 但是,虽然单词 存款 可能与类型相关联,因为它不直接具有银行帐户号的含义,因此不应使用。 - 同义词应与国家无关。 例如, 德国护照 对包括没有帮助。
- 不能对多个实体类型重复使用同义词。
- 此同义词识别功能仅接受服务支持的实体类型的子集。 支持的实体类型和示例同义词包括:
支持的实体类型 | 实体类型 | 示例同义词 |
---|---|---|
ABA 路由编号 | ABARoutingNumber | 路由传输号码 (RTN) |
地址 | 地址 | 我的位置是 |
年限 | 年限 | 岁,年龄,年龄,当前年龄,人年龄,生物年龄 |
银行帐户号 | BankAccountNumber | 银行账户号码,储蓄账户号码,检查帐号,财务账户号 |
信用卡号 | CreditCardNumber | 抄送号码,付款卡号,信用卡名。 |
日期 | DateTime | 给定日期,指定日期 |
出生日期 | DateOfBirth | 生日、DOB、出生日期 |
国际银行帐户编号 | InternationalBankingAccountNumber | IBAN,国际银行获得第一名。 |
组织 | 组织 | 公司, 商业, 公司, 公司, 代理, 集团, 机构, 实体, 法律实体, 当事人, 被调查者, 原告, 被告, 管辖权, 合作伙伴, 提供商, 设施, 实践, 网络, 机构, 企业, LLC, Inc, LLP, 合并, 雇主, 品牌, 子公司 |
人员 | 人员 | 名称、个人、帐户持有者 |
人员类型 | 人员类型 | 角色、标题、位置 |
电话号码 | 电话号码 | 内联、单元格、移动 |
Swift 代码 | SWIFTCode | SWIFT 代码,BIC(银行标识符代码),SWIFT 标识符 |
通过指定要排除的值来自定义 PII 输出
使用 valueExclusionPolicy
此选项,可以针对某些首选术语无法检测到和修订的方案调整 PII 服务,即使这些术语属于想要检测的 PII 类别。 例如,除 警察、 嫌疑人和 证人等条款外,警察部门可能希望大多数情况下修改个人标识符。
在以下示例中,可以使用 valueExclusionPolicy
该选项来指定不希望从输入文本中检测或编辑的值列表。 在下一个示例中,如果用户输入值 1 Microsoft Way, Redmond, WA 98052, US,则此值不会被编辑。 即使实体已启用, Address
也不包含在返回的 API 有效负载输出中。
未排除指定排除值的子集,例如 One Microsoft Way 。
Input
{
"kind": "PiiEntityRecognition",
"parameters": {
"modelVersion": "latest",
"redactionPolicy": {
"policyKind": "characterMask",
"redactionCharacter": "-"
},
"valueExclusionPolicy": {
"caseSensitive": false,
"excludedValues": {
"1 Microsoft Way, Redmond, WA 98052",
"1045 La Avenida St, Mountain View, CA 94043"
}
}
},
"analysisInput": {
"documents": [
{
"id": "1",
"text": "The police and John Doe inspected the storage garages located at 123 Main St, 1 Microsoft Way, Redmond, WA 98052, 456 Washington Blvd, Portland, OR, and 1045 La Avenida St, Mountain View, CA 94043"
}
]
}
}
输出
{
"kind": "PiiEntityRecognitionResults",
"results": {
"documents": [
{
"redactedText": "The police and John Doe inspected the storage garages located at **********, 1 Microsoft Way, Redmond, WA 98052, ********************************, and 1045 La Avenida St, Mountain View, CA 94043"
"id": "1",
"entities": [
{
"text": "John Doe",
"category": "Person",
"offset": 16,
"length": 5,
"confidenceScore": 0.98
}
],
"warnings": []
}
],
"errors": [],
"modelVersion": "2021-01-15"
}
}
使用自己的正则表达式自定义 PII 检测(仅适用于文本 PII 容器)
现在,可以通过使用正则表达式识别配置文件指定自己的正则表达式来调整 PII 服务的检测能力。 有关如何安装和运行个人身份信息(PII)检测容器的教程,请参阅我们的 容器作指南 。
注释
正则表达式规范仅适用于文本 PII 容器。
docker run --rm -it -p 5000:5000 --memory 8g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/textanalytics/pii:{IMAGE_TAG} \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY} \
UserRegexRuleFilePath={REGEX_RULE_FILE_PATH}
UserRegexRuleFilePath
是用户定义的正则表达式规则的文件路径。
正则表达式识别文件格式
[
{
"name": "USSocialSecurityNumber", // category, type and tag to be returned. This name must be unique
"description": "Rule to identify USSocialSecurityNumber in text", // used to describe the category
"regexPatterns": [ // list of regex patterns to identify the entities
{
"id": "StrongSSNPattern", // id for the regex pattern
"pattern": "(?<!\\d)([0-9]{3}-[0-9]{2}-[0-9]{4}|[0-9]{3} [0-9]{2} [0-9]{4}|[0-9]{3}.[0-9]{2}.[0-9]{4})(?!\\d)", // regex pattern to provide matches
"matchScore": 0.65, // score to assign if the regex matches
"locales": [ // list of languages valid for this regex
"en"
]
},
{
"id": "WeakSSNPattern",
"pattern": "(?<!\\d)([0-9]{9})(?!\\d)",
"matchScore": 0.55,
"locales": [
"en"
]
}
],
"matchContext": { // patterns to give matches context
"hints": [
{
"hintText": "ssa(\\s*)number", // regex pattern to find to give a match context.
"boostingScore": 0.2, // score to boost match confidence if hint is found
"locales": [ // list of languages valid for this context
"en"
]
},
{
"hintText": "social(\\s*)security(\\s*)(#*)",
"boostingScore": 0.2,
"locales": [
"en"
]
}
],
}
}
]
每个正则表达式识别文件参数概述
参数 | 子参数和说明 |
---|---|
name |
如果存在正则表达式匹配,则返回的类别、类型和标记。 |
decription |
(可选)用户可读规则说明。 |
regexPatterns |
用于查找实体的正则表达式模式的列表。 * id :正则表达式模式的标识符。- matchScore :正则表达式匹配项的置信度分数。* locales :对正则表达式模式有效的语言。 |
matchcontext |
正则表达式模式为匹配的实体提供上下文。 上下文匹配是匹配实体的双向搜索,可在找到时增加置信度分数。 如果多个提示支持匹配,则使用具有最高分数的提示。 * hints :为匹配的实体提供上下文的正则表达式模式列表。* hintText :提供上下文以匹配实体的正则表达式模式。* boostingScore :(可选) 添加到匹配实体的置信度分数。* locales :对 hintText 有效的语言。* contextLimit :(可选) 与匹配实体之间的距离以搜索上下文。 |
伐木业
若要显示有关正在运行 regexRules
的信息,请添加以下属性以启用调试日志记录: Logging:Console:LogLevel:Default=Debug
docker run --rm -it -p 5000:5000 --memory 8g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/textanalytics/pii:{IMAGE_TAG} \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY} \
UserRegexRuleFilePath={REGEX_RULE_FILE_PATH} \
Logging:Console:LogLevel:Default=Debug
正则表达式规则约束
- 规则名称必须以CE_开头
- 规则名称必须唯一。
- 规则名称只能使用字母数字字符和下划线 (_)
- 正则表达式模式遵循 .NET 正则表达式格式。 有关详细信息,请参阅 有关 .NET 正则表达式的文档。