refactor(PII): Initializes engines in ChinesePIIDetector

Initializes the analyzer engines within the
ChinesePIIDetector class, ensuring proper
setup and custom recognizer loading during object
instantiation. This enhances the PII detection
process for Chinese-specific contexts.
This commit is contained in:
xming521
2025-07-10 21:00:06 +08:00
parent 3e7892fc76
commit 94402cfcc4
+10 -2
View File
@@ -1,7 +1,7 @@
from dataclasses import dataclass
from typing import List, Optional, cast
from presidio_analyzer import AnalyzerEngine, Pattern, PatternRecognizer
from presidio_analyzer import AnalyzerEngine, Pattern, PatternRecognizer, RecognizerRegistry
from presidio_analyzer.nlp_engine import NlpEngineProvider
from presidio_anonymizer import AnonymizerEngine
from presidio_anonymizer.entities.engine.recognizer_result import (
@@ -179,7 +179,9 @@ class ChinesePIIDetector(PIIDetector):
"""Chinese PII detector, extended to recognize Chinese-specific PII"""
def __init__(self, threshold: float = 0.5):
super().__init__(language="zh", threshold=threshold)
self.language = "zh"
self.threshold = threshold
self._init_engines()
# Filter out country-specific entities that are not relevant for Chinese context
country_prefixes = ["US_", "UK_", "SG_", "AU_", "IN_"]
@@ -196,6 +198,12 @@ class ChinesePIIDetector(PIIDetector):
]
logger.info(f"Chinese PII filtered entity types: {self.filtered_entities}")
def _init_engines(self):
registry = RecognizerRegistry()
self.analyzer = AnalyzerEngine(registry=registry)
self._add_custom_recognizers(language="zh")
def _add_custom_recognizers(self, language: str):
# Add parent class recognizers first
super()._add_custom_recognizers(language="zh")