Γιατί Η Μορφή Εγγράφου Σημαίνει
Έγγραφο Word (.docx):
- XML structure με πολλαπλά τμήματα
- Track changes αποθηκεύει παλαιά PII
- Comments αποθηκεύουν ονόματα συντακτών
- Document properties: Author, Last Modified By
PDF:
- Δύο τύποι: ψηφιακά δημιουργημένα (text layer) vs scanned (image layer)
- Για scanned: OCR χρειάζεται πρώτα
- Για ψηφιακά: XMP metadata + content streams
- Annotations, comments, embedded fonts με PII
Excel (.xlsx):
- Κελιά, formulas, named ranges
- PII μπορεί να βρίσκεται σε formulas (=VLOOKUP(A1, ...))
- Hidden sheets, hidden rows
- External data connections
Plain text (.txt, .csv, .json):
- Πιο απλό αλλά χωρίς δομή context
- CSV: επικεφαλίδες στήλης ως context για τύπο PII
- JSON: nested structures, arrays
Unified Parser Architecture
Επίπεδο 1: Format Detection
def detect_format(file_path):
magic = read_magic_bytes(file_path)
if magic == b'PK': # ZIP header
return 'docx' or 'xlsx' (check internal structure)
if magic == b'%PDF':
return 'pdf'
...
Επίπεδο 2: Format-Specific Extraction Κάθε parser εξάγει plain text + structure metadata
Επίπεδο 3: PII Detection Κοινή μηχανή ανίχνευσης PII για όλες τις μορφές
Επίπεδο 4: Format-Specific Reconstruction Αντικατάσταση PII διατηρώντας original μορφοποίηση
Πηγές: