text="My name is Bond, James Bond", analyzer_results=analyzer_results
)
print("De-identified text")
print(result.text)
复制代码
上面示例执行结果如下:
De-identified text
My name is <ERSON>, <ERSON>
上面示例我们可以看到,"Bond"和"James Bond"都被姓名辨认器辨认出来,并由匿名器执行脱敏操纵。匿名器默认的脱敏操纵是将敏感实体替换为对应的辨认器名称。
3.2 自界说匿名设置
text: His name is Mr. <ANONYMIZED> and his number is ************, he live in <ANONYMIZED>.
detailed result:
{'items': [{'end': 85,
'entity_type': 'LOCATION',
'operator': 'replace',
'start': 73,
'text': '<ANONYMIZED>'},
{'end': 60,
'entity_type': 'PHONE_NUMBER',
'operator': 'mask',
'start': 48,
'text': '************'},
{'end': 37,
'entity_type': 'SENSITIVE',
'operator': 'redact',
'start': 37,
'text': ''},
{'end': 28,
'entity_type': 'PERSON',
'operator': 'replace',
'start': 16,
'text': '<ANONYMIZED>'}],
'text': 'His name is Mr. <ANONYMIZED> and his number is ************, he '
'live in <ANONYMIZED>.'}
复制代码
通过执行结果我们可以看到,"phone"为敏感信息列表中内容,匿名器根据设置直接文本中该内容替换成空。"Jones"和"Beijing"分别被PERSON辨认器和LOCATION辨认器辨认出来,由于设置中没有针对此两种类型敏感数据指定的脱敏操纵,则执行默认的脱敏操纵,即将敏感数据内容替换成""。"212-555-5555"被辨认处电话号码,由于设置中规则对于PHONE_NUMBER辨认器辨认的内容将替换成字符"*"。因此文本内容脱敏前后对好比下:
# 脱敏前 His name is Mr. Jones and his phone number is 212-555-5555, he live in Beijing.
# 脱敏后 His name is Mr. <ANONYMIZED> and his number is ************, he live in <ANONYMIZED>.
3.3 自界说匿名器
上面示例执行结果为:
加密后文本内容: My name is O+LlBEHWW8ilbUiYFMZU7XXbrOkFVpj7KVJD86sOywA=
提取到加密内容: O+LlBEHWW8ilbUiYFMZU7XXbrOkFVpj7KVJD86sOywA=
解密后内容: James Bond
留意:通过上面示例可以看到,Presidio内容的加密算法每次加密相同内容,加密后的结果是不一样的。可以多执行频频就可以看出来。
4 NLP模型和语言类型