Anonymized text: Jan Kowalski mieszka w Warszawie i ma e-mail [email protected].
Deanonymized text: Jan Kowalski mieszka w Warszawie i ma e-mail [email protected].
Map: {}
Anonymized text: Jan Kowalski mieszka w Warszawie i ma e-mail [email protected].
i我期待“ Jan Kowalski”这个名字,并且电子邮件地址被匿名化,但输出保持不变。 我已经使用以下方式安装了pl_core_news_lg型号
python -m spacy download pl_core_news_lg
AM我缺少配置中的某些内容,还是Presidio不适当支持波兰实体识别? 关于如何使其在波兰语中检测名称的任何建议?
有趣的是,当我只使用
anonymizer_tool = PresidioReversibleAnonymizer()
输出看起来像这样:
Anonymized text: Elizabeth Tate mieszka w Warszawie i ma e-mail [email protected].
Deanonymized text: Jan Kowalski mieszka w Warszawie i ma e-mail [email protected].
Map: {'PERSON': {'Elizabeth Tate': 'Jan Kowalski'}, 'EMAIL_ADDRESS': {'[email protected]': '[email protected]'}}
您遇到了两个主要问题:
Spacy的波兰模型可能无法将“ Jan Kowalski”视为一个人
时必须明确指定语言=“ PL”
贝洛是使它起作用的逐步方法:1。验证Spacy实际上检测到“ Jan Kowalski” Presidio依靠Spacy(命名实体识别)。如果Spacy没有将“ Jan Kowalski”标记为一个人,那么Presidio就无需匿名。尝试:
import spacy
nlp = spacy.load("pl_core_news_lg")
doc = nlp("Jan Kowalski mieszka w Warszawie.")
for ent in doc.ents:
print(ent.text, ent.label_)
If spaCy doesn’t return PERSON, then you either need to train or fine-tune spaCy for Polish names, or define a custom recognizer in Presidio.
language="pl"
即使您设置anonymize()
languages_config
3。如果需要,请使用自定义模式
anonymized_text = anonymizer_tool.anonymize(text, language="pl")
然后将其注册为Presidio的分析仪。这样可以确保诸如“ Jan Kowalski”之类的抛光名称即使Spacy错过了它们也会被捡起。