-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmunicipality_normalization.py
More file actions
76 lines (70 loc) · 3.77 KB
/
Copy pathmunicipality_normalization.py
File metadata and controls
76 lines (70 loc) · 3.77 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from __future__ import annotations
import re
import unicodedata
def normalize_string(s):
if not isinstance(s, str):
return s
s = s.lower()
s = unicodedata.normalize("NFD", s)
s = "".join(c for c in s if unicodedata.category(c) != "Mn")
s = " ".join(s.split())
return s
def normalizeMunicipality(term):
_TODELETE = ["ΔΗΜΟΣ", "ΔΗΜΟΥ", "ΔΗΜΟ", "Δήμος", "Δ.", ":"]
for i in _TODELETE:
term = normalize_string(term).replace(normalize_string(i), "")
replacements_raw = {
"ΝΙΚΑΙΑΣ - ΑΓΙΟΥ Ι. ΡΕΝΤΗ": "ΝΙΚΑΙΑΣ - ΑΓΙΟΥ ΙΩΑΝΝΗ ΡΕΝΤΗ",
"ΛΙΒΑΔΕΙΑΣ": "ΛΕΒΑΔΕΩΝ",
"ΚΑΡΔΑΜΥΛΩΝ": "ΧΙΟΥ",
"ΦΙΛΛΙΠΙΑΔΑΣ": "ΖΗΡΟΥ",
"ΑΡΤΑΣ": "ΑΡΤΑΙΩΝ",
"ΑΙΤΩΛΙΚΟΥ": "ΙΕΡΑΣ ΠΟΛΗΣ ΜΕΣΟΛΟΓΓΙΟΥ",
"ΠΕΙΡΑΙΑ": "ΠΕΙΡΑΙΩΣ",
"ΑΣΤΡΟΥΣ": "ΒΟΡΕΙΑΣ ΚΥΝΟΥΡΙΑΣ",
"ΝΕΥΡΟΚΟΠΙΟΥ": "ΚΑΤΩ ΝΕΥΡΟΚΟΠΙΟΥ",
"ΝΑΥΠΛΙΟΥ": "ΝΑΥΠΛΙΕΩΝ",
"ΘΗΒΑΣ": "ΘΗΒΑΙΩΝ",
"ΛΕΧΑΙΝΩΝ": "ΑΝΔΡΑΒΙΔΑΣ - ΚΥΛΛΗΝΗΣ",
"ΖΑΚΥΝΘΙΩΝ": "ΖΑΚΥΝΘΟΥ",
"ΕΛΑΤΙΩΝ": "ΑΜΦΙΚΛΕΙΑΣ - ΕΛΑΤΕΙΑΣ",
"ΙΤΕΑΣ": "ΔΕΛΦΩΝ",
"ΑΡΕΟΠΟΛΕΩΣ": "ΑΝΑΤΟΛΙΚΗΣ ΜΑΝΗΣ",
"ΛΑΥΡΙΟΥ": "ΛΑΥΡΕΩΤΙΚΗΣ",
"ΔΕΛΒΙΝΑΚΙΟΥ": "ΠΩΓΩΝΙΟΥ",
"ΚΗΡΥΚΟΥ": "ΙΚΑΡΙΑΣ",
"ΝΑΥΠΑΚΤΟΥ": "ΝΑΥΠΑΚΤΙΑΣ",
"ΑΡΓΟΥΣ": "ΑΡΓΟΥΣ - ΜΥΚΗΝΩΝ",
"ΜΩΛΟΥ - ΑΓ. ΚΩΝΣΤΑΝΤΙΝΟΥ": "ΚΑΜΕΝΩΝ ΒΟΥΡΛΩΝ",
"ΚΟΡΙΝΘΟΥ": "ΚΟΡΙΝΘΙΩΝ",
"ΛΟΥΤΡΑΚΙΟΥ - ΑΓ. ΘΕΟΔΩΡΩΝ": "ΛΟΥΤΡΑΚΙΟΥ - ΠΕΡΑΧΩΡΑΣ - ΑΓΙΩΝ ΘΕΟΔΩΡΩΝ",
"ΣΤΑΓΥΡΩΝ - ΑΚΑΝΘΟΥ": "ΑΡΙΣΤΟΤΕΛΗ",
"ΔΕΣΦΙΝΗΣ": "ΔΕΛΦΩΝ",
"ΚΑΛΛΟΝΗΣ": "ΔΥΤΙΚΗΣ ΛΕΣΒΟΥ",
"ΓΑΡΓΑΛΙΑΝΩΝ": "ΤΡΙΦΥΛΙΑΣ",
"ΑΘΩΣ": "ΟΡΟΥΣ",
"ΒΑΘΕΟΣ": "ΣΑΜΟΥ",
"ΕΥΡΩΣΤΙΝΗΣ": "ΞΥΛΟΚΑΣΤΡΟΥ - ΕΥΡΩΣΤΙΝΗΣ",
"ΕΛΕΥΘΕΡΟΥΠΟΛΗΣ": "ΠΑΓΓΑΙΟΥ",
"ΧΡΥΣΟΥΠΟΛΗΣ": "ΝΕΣΤΟΥ",
"ΚΡΑΝΙΔΙΟΥ": "ΕΡΜΙΟΝΙΔΑΣ",
"ΛΑΡΙΣΑΣ": "ΛΑΡΙΣΑΙΩΝ",
"ΕΠΤΑΧΩΡΙΟΥ": "ΒΟΙΟΥ",
"ΒΡΥΣΣΩΝ": "ΑΠΟΚΟΡΩΝΟΥ",
"ΔΙΚΑΙΩΝ": "ΟΡΕΣΤΙΑΔΑΣ",
"ΘΕΣΠΡΩΤΙΚΟΥ": "ΖΗΡΟΥ",
"ΜΕΤΑΜΟΡΦΩΣΕΩΣ": "ΜΕΤΑΜΟΡΦΩΣΗΣ",
"ΑΚΤΙΟΥ ΒΟΝΙΤΣΑΣ": "ΑΚΤΙΟΥ - ΒΟΝΙΤΣΑΣ",
"ΑΡΓΟΣ ΟΡΕΣΤΙΚΟΥ": "ΑΡΓΟΥΣ - ΟΡΕΣΤΙΚΟΥ",
"ΑΡΓΟΥΣ ΟΡΕΣΤΙΚΟΥ": "ΑΡΓΟΥΣ - ΟΡΕΣΤΙΚΟΥ",
"ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ - ΘΡΑΚΗΣ": "ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ",
"ΠΕΡΙΦΕΡΕΙΑ ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ - ΘΡΑΚΗΣ": "ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ",
"ΠΕΤΡΟΥΠΟΛΕΩΣ": "ΠΕΤΡΟΥΠΟΛΗΣ",
"ΛΕΥΚΑΔΟΣ": "ΛΕΥΚΑΔΑΣ",
"ΛΟΥΤΡΑΚΙΟΥ": "ΔΗΜΟΣ ΛΟΥΤΡΑΚΙΟΥ - ΠΕΡΑΧΩΡΑΣ - ΑΓΙΩΝ ΘΕΟΔΩΡΩΝ",
}
replacements = {normalize_string(k): v for k, v in replacements_raw.items()}
term = re.sub(r"\s*-\s*", " - ", term)
term = term.replace("(", "").replace(")", "")
term = replacements.get(term, term)
return term.upper().strip()