Spaces:
Running
Running
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 |