File size: 1,517 Bytes
030aeb4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class MedicalPrivacyProcessor:
    def __init__(self):
        # Anonimleştirme için gerekli kaynakları yükle
        self.pii_patterns = {
            "isim": [r'\b[A-Z][a-z]+ [A-Z][a-z]+\b'],
            "tc_no": [r'\b[1-9][0-9]{10}\b'],
            "telefon": [r'\b0?5[0-9]{2} ?[0-9]{3} ?[0-9]{2} ?[0-9]{2}\b'],
            "email": [r'\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}\b'],
            "adres": [r'\b[A-Z][a-z]+ (Mahallesi|Mah\.)\b']
        }
    
    def anonymize_text(self, text):
        """Metindeki kişisel verileri tespit eder ve anonimleştirir"""
        if not text:
            return text, {}
        
        # Basit bir örnek: gerçek uygulamada daha gelişmiş olmalı
        identified_data = {}
        anonymized = text
        
        # Her bir PII (Personally Identifiable Information) tipini kontrol et
        import re
        for data_type, patterns in self.pii_patterns.items():
            matches = []
            for pattern in patterns:
                for match in re.finditer(pattern, text):
                    matches.append(match.group(0))
            
            # Eşleşen verileri anonimleştir
            for i, match in enumerate(matches):
                replacement = f"[{data_type.upper()}_{i+1}]"
                anonymized = anonymized.replace(match, replacement)
            
            if matches:
                identified_data[data_type] = matches
        
        return anonymized, identified_data