comtext-sr-pseudonymizer 0.5.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. comtext_sr_pseudonymizer/__init__.py +1 -0
  2. comtext_sr_pseudonymizer/constants.py +324 -0
  3. comtext_sr_pseudonymizer/data/__init__.py +0 -0
  4. comtext_sr_pseudonymizer/data/lookup/__init__.py +0 -0
  5. comtext_sr_pseudonymizer/data/lookup/city_lookup.txt +4112 -0
  6. comtext_sr_pseudonymizer/data/lookup/country_lookup.txt +63 -0
  7. comtext_sr_pseudonymizer/data/lookup/municipality_lookup.txt +167 -0
  8. comtext_sr_pseudonymizer/data/lookup/per_female_lookup.txt +911 -0
  9. comtext_sr_pseudonymizer/data/lookup/per_male_lookup.txt +1327 -0
  10. comtext_sr_pseudonymizer/data/lookup/per_surname_lookup.txt +8725 -0
  11. comtext_sr_pseudonymizer/data/replacement/__init__.py +0 -0
  12. comtext_sr_pseudonymizer/data/replacement/adr_street_pool.tsv +13101 -0
  13. comtext_sr_pseudonymizer/data/replacement/adr_zip_pool.tsv +143 -0
  14. comtext_sr_pseudonymizer/data/replacement/com_company_pool.tsv +7488 -0
  15. comtext_sr_pseudonymizer/data/replacement/idcom_company_pool.tsv +117632 -0
  16. comtext_sr_pseudonymizer/data/replacement/idcom_ngo_pool.tsv +35166 -0
  17. comtext_sr_pseudonymizer/data/replacement/orgoth_ngo_pool.tsv +6705 -0
  18. comtext_sr_pseudonymizer/data/replacement/per_female_pool.tsv +542 -0
  19. comtext_sr_pseudonymizer/data/replacement/per_male_pool.tsv +757 -0
  20. comtext_sr_pseudonymizer/data/replacement/per_surname_pool.tsv +4793 -0
  21. comtext_sr_pseudonymizer/data/replacement/top_city_pool.tsv +144 -0
  22. comtext_sr_pseudonymizer/data/replacement/top_municipality_pool.tsv +142 -0
  23. comtext_sr_pseudonymizer/data/srlex_filtered.pkl +0 -0
  24. comtext_sr_pseudonymizer/data/srlex_filtered.tsv +150358 -0
  25. comtext_sr_pseudonymizer/data_manager.py +153 -0
  26. comtext_sr_pseudonymizer/data_paths.py +49 -0
  27. comtext_sr_pseudonymizer/entities/__init__.py +35 -0
  28. comtext_sr_pseudonymizer/entities/adr.py +170 -0
  29. comtext_sr_pseudonymizer/entities/base_anonymizer.py +42 -0
  30. comtext_sr_pseudonymizer/entities/com.py +23 -0
  31. comtext_sr_pseudonymizer/entities/contact.py +98 -0
  32. comtext_sr_pseudonymizer/entities/corporate_base.py +125 -0
  33. comtext_sr_pseudonymizer/entities/court.py +76 -0
  34. comtext_sr_pseudonymizer/entities/date.py +180 -0
  35. comtext_sr_pseudonymizer/entities/entity_schema.py +45 -0
  36. comtext_sr_pseudonymizer/entities/helpers/__init__.py +6 -0
  37. comtext_sr_pseudonymizer/entities/helpers/address_parser.py +638 -0
  38. comtext_sr_pseudonymizer/entities/idcom.py +70 -0
  39. comtext_sr_pseudonymizer/entities/idper.py +128 -0
  40. comtext_sr_pseudonymizer/entities/idtax.py +79 -0
  41. comtext_sr_pseudonymizer/entities/money.py +224 -0
  42. comtext_sr_pseudonymizer/entities/numacc.py +114 -0
  43. comtext_sr_pseudonymizer/entities/numcar.py +112 -0
  44. comtext_sr_pseudonymizer/entities/numdoc.py +29 -0
  45. comtext_sr_pseudonymizer/entities/numplot.py +46 -0
  46. comtext_sr_pseudonymizer/entities/orgoth.py +27 -0
  47. comtext_sr_pseudonymizer/entities/per.py +77 -0
  48. comtext_sr_pseudonymizer/entities/top.py +66 -0
  49. comtext_sr_pseudonymizer/io_helper.py +219 -0
  50. comtext_sr_pseudonymizer/lex.py +170 -0
  51. comtext_sr_pseudonymizer/main.py +144 -0
  52. comtext_sr_pseudonymizer/patterns.py +111 -0
  53. comtext_sr_pseudonymizer-0.5.3.dist-info/METADATA +142 -0
  54. comtext_sr_pseudonymizer-0.5.3.dist-info/RECORD +58 -0
  55. comtext_sr_pseudonymizer-0.5.3.dist-info/WHEEL +5 -0
  56. comtext_sr_pseudonymizer-0.5.3.dist-info/entry_points.txt +2 -0
  57. comtext_sr_pseudonymizer-0.5.3.dist-info/licenses/LICENSE +202 -0
  58. comtext_sr_pseudonymizer-0.5.3.dist-info/top_level.txt +1 -0
@@ -0,0 +1 @@
1
+ from comtext_sr_pseudonymizer.main import run_anonymization
@@ -0,0 +1,324 @@
1
+ ROMAN_NUMBERS = ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X"]
2
+
3
+ SERBIAN_ALPHABET = "ABCČĆDĐEFGHIJKLMNOPRSŠTUVZŽ"
4
+
5
+ SERBIAN_PHONE_OPERATORS = {
6
+ "mobile":{
7
+ "064": "mts",
8
+ "065": "mts",
9
+ "066": "mts",
10
+ "062": "Yettel",
11
+ "063": "Yettel",
12
+ "069": "Yettel",
13
+ "060": "A1 Srbija",
14
+ "061": "A1 Srbija",
15
+ "068": "A1 Srbija",
16
+ "0677": "Globaltel",
17
+ "0678": "Globaltel",
18
+ },
19
+ "landline":
20
+ {
21
+ "010": "Pirot",
22
+ "011": "Beograd",
23
+ "012": "Požarevac",
24
+ "013": "Pančevo",
25
+ "014": "Valjevo",
26
+ "015": "Šabac",
27
+ "016": "Leskovac",
28
+ "017": "Vranje",
29
+ "018": "Niš",
30
+ "019": "Zaječar",
31
+ "020": "Novi Pazar",
32
+ "021": "Novi Sad",
33
+ "022": "Sremska Mitrovica",
34
+ "023": "Zrenjanin",
35
+ "0230": "Kikinda",
36
+ "024": "Subotica",
37
+ "025": "Sombor",
38
+ "026": "Smederevo",
39
+ "027": "Prokuplje",
40
+ "028": "Kosovska Mitrovica",
41
+ "0280": "Gnjilane",
42
+ "029": "Prizren",
43
+ "0290": "Uroševac",
44
+ "030": "Bor",
45
+ "031": "Užice",
46
+ "032": "Čačak",
47
+ "033": "Prijepolje",
48
+ "034": "Kragujevac",
49
+ "035": "Jagodina",
50
+ "036": "Kraljevo",
51
+ "037": "Kruševac",
52
+ "038": "Priština",
53
+ "039": "Peć",
54
+ "0390": "Đakovica"
55
+ }
56
+ }
57
+
58
+ NON_SERBIAN_CITIES = [
59
+ "Amsterdam", "Ankara", "Atina", "Bagdad", "Baku", "Bangkok",
60
+ "Barselona", "Bazel", "Beč", "Berlin", "Bern", "Bratislava",
61
+ "Brisel", "Budimpešta", "Buenos Ajres", "Bukurešt", "Cirih",
62
+ "Čikago", "Dablin", "Damas", "Doha", "Dubai", "Firenca","Frankfurt",
63
+ "Hamburg", "Hag", "Helsinki", "Hong Kong", "Istanbul", "Jakurta",
64
+ "Jerusalim", "Johanesburg", "Kairo", "Kopenhagen", "Kuala Lumpur",
65
+ "Kuvajt Siti", "Kijev", "Larnaka", "Lion", "Lisabon", "London",
66
+ "Los Anđeles", "Madrid", "Manila", "Marsej", "Meksiko Siti",
67
+ "Milano", "Minhen", "Moskva", "Najrobi", "Napulj", "Nica",
68
+ "Njujork", "Nju Delhi", "Oslo", "Pariz", "Peking", "Podgorica", "Prag",
69
+ "Rejkjavik", "Riga", "Rim", "Rijad", "Sao Paolo", "Sarajevo",
70
+ "Seul", "Sidnej", "Singapur", "Sofija", "Solun", "Stokholm",
71
+ "Strazbur", "Šangaj", "Talin", "Taškent", "Tbilis", "Teheran",
72
+ "Tel Aviv", "Tirana", "Tokio", "Toronto", "Tripoli", "Tunis",
73
+ "Varšava", "Vatikan", "Venecija", "Viljnus", "Vašington",
74
+ "Velington", "Ženeva"
75
+ ]
76
+
77
+ COUNTRIES = [
78
+ "Albanija", "Australija", "Austrija", "Belgija", "BiH",
79
+ "Bosna i Hercegovina", "Brazil", "Bugarska", "Belgija",
80
+ "Crna Gora", "Češka", "Češka Republika", "Danska", "Egipat",
81
+ "Federacija BiH", "Finska", "Francuska", "Francuska Republika",
82
+ "Grčka", "Helenska Republika", "Holandija", "Hrvatska", "Indija",
83
+ "Irska", "Italija", "Italijanska Republika", "Japan", "Kanada",
84
+ "Kina", "Kraljevina Belgija", "Kraljevina Holandija", "Kraljevina Španija",
85
+ "Mađarska", "Meksiko", "Narodna Republika Kina", "Nemačka", "Nizozemska", "Norveška",
86
+ "Poljska", "Republika Austrija", "Republika Hrvatska", "Republika Poljska",
87
+ "Republika Slovenija", "Republika Srbija", "Republika Srpska", "Republika Turska",
88
+ "Rumunija", "Rusija", "Ruska Federacija", "SAD", "Savezna Republika Nemačka",
89
+ "Severna Makedonija", "Sjedinjene Američke Države", "Slovačka", "Slovenija",
90
+ "Srbija", "Španija", "Švedska", "Švajcarska", "Švajcarska Konfederacija",
91
+ "Turska", "Ujedinjeno Kraljevstvo", "Ukrajina", "Velika Britanija"
92
+ ]
93
+
94
+ EMAIL_ENDINGS = [
95
+ "gmail.com",
96
+ "yahoo.com",
97
+ "outlook.com",
98
+ "icloud.com"
99
+ ]
100
+
101
+ MONTH_DICTIONARY = {
102
+ "1": ["januar", "januara", "jan.", "januarom", "januaru"],
103
+ "2": ["februar", "februara", "feb.", "februarom", "februaru"],
104
+ "3": ["mart", "marta", "mar.", "martom", "martu"],
105
+ "4": ["april", "aprila", "apr.", "aprilom", "aprilu"],
106
+ "5": ["maj", "maja", "maj.", "majom", "maju"],
107
+ "6": ["jun", "juna", "jun.", "junom", "junu"],
108
+ "7": ["jul", "jula", "jul.", "julom", "julu"],
109
+ "8": ["avgust", "avgusta", "avg.", "avgustom", "avgustu"],
110
+ "9": ["septembar", "septembra", "sept.", "septembrom", "septembru"],
111
+ "10": ["oktobar", "oktobra", "okt.", "oktobrom", "oktobru"],
112
+ "11": ["novembar", "novembra", "nov.", "novembrom", "novembru"],
113
+ "12": ["decembar", "decembra", "dec.", "decembrom", "decembru"]
114
+ }
115
+
116
+
117
+ IDPER_REGION_DICTIONARY = {
118
+ # 00–09: Foreigners
119
+ "01": ["Stranci u Bosni i Hercegovini"],
120
+ "02": ["Stranci u Crnoj Gori"],
121
+ "03": ["Stranci u Hrvatskoj"],
122
+ "04": ["Stranci u Makedoniji"],
123
+ "05": ["Stranci u Sloveniji"],
124
+ "07": ["Stranci u Srbiji (bez pokrajina)"],
125
+ "08": ["Stranci u Vojvodini"],
126
+ "09": ["Stranci na Kosovu i Metohiji"],
127
+
128
+ # 10–19: Bosnia and Herzegovina
129
+ "10": ["Banja Luka"],
130
+ "11": ["Bihac"],
131
+ "12": ["Doboj"],
132
+ "13": ["Gorazde"],
133
+ "14": ["Livno"],
134
+ "15": ["Mostar"],
135
+ "16": ["Prijedor"],
136
+ "17": ["Sarajevo"],
137
+ "18": ["Tuzla"],
138
+ "19": ["Zenica"],
139
+
140
+ # 20–29: Montenegro
141
+ "21": ["Podgorica"],
142
+ "26": ["Niksic"],
143
+ "29": ["Pljevlja"],
144
+
145
+ # 30–39: Croatia
146
+ "30": ["Osijek", "Slavonija region"],
147
+ "31": ["Bjelovar", "Virovitica", "Koprivnica", "Pakrac", "Podravina region"],
148
+ "32": ["Varazdin", "Medjimurje region"],
149
+ "33": ["Zagreb"],
150
+ "34": ["Karlovac"],
151
+ "35": ["Gospic", "Lika region"],
152
+ "36": ["Rijeka", "Pula", "Istra", "Primorje region"],
153
+ "37": ["Sisak", "Banovina region"],
154
+ "38": ["Split", "Zadar", "Dubrovnik", "Dalmacija region"],
155
+ "39": ["Ostalo"],
156
+
157
+ # 41–49: North Macedonia
158
+ "41": ["Bitolj"],
159
+ "42": ["Kumanovo"],
160
+ "43": ["Ohrid"],
161
+ "44": ["Prilep"],
162
+ "45": ["Skoplje"],
163
+ "46": ["Strumica"],
164
+ "47": ["Tetovo"],
165
+ "48": ["Veles"],
166
+ "49": ["Stip"],
167
+
168
+ # 50–59: Slovenia
169
+ "50": ["Slovenija"],
170
+
171
+ #70-80 Serbia central
172
+ "71": ["Beograd"],
173
+ "72": ["Arandjelovac", "Batocina", "Despotovac", "Jagodina", "Knic", "Kragujevac", "Lapovo", "Paracin", "Raca", "Rekovac", "Svilajnac", "Topola", "Cuprija"],
174
+ "73": ["Aleksinac", "Babusnica", "Bela Palanka", "Blace", "Dimitrovgrad", "Doljevac", "Gadzin Han", "Kursumlija", "Merosina", "Nis", "Niska Banja", "Pirot", "Prokuplje", "Razanj", "Svrljig", "Zitoradja"],
175
+ "74": ["Bojnik", "Bosilegrad", "Bujanovac", "Crna Trava", "Lebane", "Leskovac", "Medvedja", "Presevo", "Surdulica", "Trgoviste", "Vladicin Han", "Vlasotince", "Vranje"],
176
+ "75": ["Boljevac", "Bor", "Kladovo", "Knjazevac", "Majdanpek", "Negotin", "Soko Banja", "Zajecar"],
177
+ "76": ["Golubac", "Kucevo", "Malo Crnice", "Petrovac na Mlavi", "Pozarevac", "Smederevo", "Smederevska Palanka", "Velika Plana", "Veliko Gradiste", "Zabari", "Zagubica"],
178
+ "77": ["Bogatic", "Koceljeva", "Krupanj", "Lajkovac", "Loznica", "Ljig", "Ljubovija", "Mali Zvornik", "Mionica", "Osecina", "Ub", "Valjevo", "Vladimirci", "Sabac"],
179
+ "78": ["Aleksandrovac", "Brus", "Gornji Milanovac", "Kraljevo", "Krusevac", "Lucani", "Novi Pazar", "Raska", "Sjenica", "Trstenik", "Tutin", "Varvarin", "Vrnjacka Banja", "Cicevac", "Cacak"],
180
+ "79": ["Arilje", "Bajina Basta", "Ivanjica", "Kosjeric", "Nova Varos", "Pozega", "Priboj", "Prijepolje", "Uzice", "Cajetina"],
181
+
182
+ #80-90 Serbia vojvodina
183
+ "80": ["Bac", "Backa Palanka", "Backi Petrovac", "Beocin", "Novi Sad", "Sremski Karlovci", "Temerin", "Titel", "Zabalj"],
184
+ "81": ["Apatin", "Odžaci", "Sombor"],
185
+ "82": ["Ada", "Backa Topola", "Kanjiza", "Kula", "Mali Idjos", "Senta", "Subotica"],
186
+ "83": ["Becej", "Srbobran", "Vrbas"],
187
+ "84": ["Kikinda", "Nova Crnja", "Novi Knezevac", "Coka"],
188
+ "85": ["Novi Becej", "Secanj", "Zrenjanin", "Zitiste"],
189
+ "86": ["Alibunar", "Kovacica", "Kovin", "Opovo", "Pancevo"],
190
+ "87": ["Bela Crkva", "Plandiste", "Vrsac"],
191
+ "88": ["Indjija", "Irig", "Pecinci", "Ruma", "Stara Pazova"],
192
+ "89": ["Sremska Mitrovica", "Sid"],
193
+
194
+ #90-99 Kosovo
195
+ "91": ["Glogovac", "Kosovo Polje", "Lipljan", "Novo Brdo", "Obilic", "Podujevo", "Pristina"],
196
+ "92": ["Kosovska Mitrovica", "Leposavic", "Srbica", "Vucitrn", "Zubin Potok", "Zvecan"],
197
+ "93": ["Decani", "Istok", "Klina", "Pec"],
198
+ "94": ["Djakovica"],
199
+ "95": ["Dragas", "Gora", "Malisevo", "Opolje", "Orahovac", "Prizren", "Suva Reka"],
200
+ "96": ["Kacanik", "Urosevac", "Stimlje", "Strpce"],
201
+ "97": ["Gnjilane", "Kosovska Kamenica", "Vitina"]
202
+ }
203
+
204
+ NUMBERS_TO_WORDS_DICT = {
205
+ "1": "jedan",
206
+ "2": "dva",
207
+ "3": "tri",
208
+ "4": "četiri",
209
+ "5": "pet",
210
+ "6": "šest",
211
+ "7": "sedam",
212
+ "8": "osam",
213
+ "9": "devet",
214
+ "10": "deset",
215
+ "11": "jedanaest",
216
+ "12": "dvanaest",
217
+ "13": "trinaest",
218
+ "14": "četrnaest",
219
+ "15": "petnaest",
220
+ "16": "šesnaest",
221
+ "17": "sedamnaest",
222
+ "18": "osamnaest",
223
+ "19": "devetnaest",
224
+ "20": "dvadeset",
225
+ "30": "trideset",
226
+ "40": "četrdeset",
227
+ "50": "pedeset",
228
+ "60": "šezdeset",
229
+ "70": "sedamdeset",
230
+ "80": "osamdeset",
231
+ "90": "devedeset",
232
+ "100": "sto",
233
+ "200": "dvesta",
234
+ "300": "trista",
235
+ "400": "četiristo",
236
+ "500": "petsto",
237
+ "600": "šeststo",
238
+ "700": "sedamsto",
239
+ "800": "osamsto",
240
+ "900": "devetsto",
241
+ "1000": "hiljadu"
242
+ }
243
+ NUMBER_STEMS = ["jedan", "jedn", "dve", "hiljad", "milion", "milijard"]
244
+
245
+ MONEY_CURRENCY_DICT = {
246
+ "RSD": ["dinara", "dinar"],
247
+ "EUR": ["evra", "evro"],
248
+ "DEM": ["nemačkih maraka", "nemačka marka"],
249
+ "FFR": ["francuskih franaka", "francuski franak"],
250
+ "USD": ["dolara", "dolar"],
251
+ "GBP": ["funti", "funta"],
252
+ "KM": ["konvertibilnih maraka", "konvertibilna marka"],
253
+ "BAM": ["konvertibilnih maraka", "konvertibilna marka"],
254
+ "CHF": ["švajcarskih franaka", "švajcarski franak"],
255
+ "JPY": ["jena", "jen"],
256
+ "CNY": ["juana", "juan"],
257
+ "HUF": ["forinti", "forinta"],
258
+ "RUB": ["rubalja", "rublja"],
259
+ "AED": ["dirhama", "dirham"],
260
+ "INR": ["rupija", "rupija"],
261
+ "MKD": ["denara", "denar"],
262
+ "CAD": ["kanadskih dolara", "kanadski dolar"],
263
+ "AUD": ["australijskih dolara", "australijski dolar"],
264
+ "CZK": ["čeških kruna", "češka kruna"],
265
+ "DKK": ["danskih kruna", "danska kruna"],
266
+ "NOK": ["norveških kruna", "norveška kruna"],
267
+ "SEK": ["švedskih kruna", "švedska kruna"],
268
+ "TRY": ["turskih lira", "turska lira"],
269
+ "PLN": ["poljskih zlota", "poljski zlot"],
270
+ "KWD": ["kuvajtskih dinara", "kuvajtski dinar"],
271
+ "RON": ["rumunskih leja", "rumunski lej"],
272
+ "BGN": ["bugarskih leva", "bugarski lev"]
273
+ }
274
+
275
+ SERBIAN_BANK_CODES = {
276
+ "active":
277
+ {
278
+ "105": "AIK Banka",
279
+ "115": "Yettel Bank",
280
+ "145": "Adriatic Bank",
281
+ "155": "Halkbank",
282
+ "160": "Banca Intesa",
283
+ "165": "Addiko Bank",
284
+ "170": "UniCredit Bank Srbija",
285
+ "190": "Alta banka",
286
+ "200": "Banka Poštanska štedionica",
287
+ "205": "NLB Komercijalna banka",
288
+ "220": "ProCredit Bank",
289
+ "250": "Eurobank Direktna",
290
+ "265": "Raiffeisen banka",
291
+ "295": "Srpska banka",
292
+ "325": "OTP Banka Srbija",
293
+ "340": "Erste Bank",
294
+ "370": "3 Banka",
295
+ "375": "API Bank",
296
+ "380": "Mirabank",
297
+ "385": "Bank of China Srbija",
298
+ },
299
+ "special":
300
+ {
301
+ "840": "Uprava za trezor",
302
+ "908": "Narodna banka Srbije",
303
+ },
304
+ "legacy":
305
+ {
306
+ "310": "NLB Banka (now 205)",
307
+ "355": "Vojvođanska banka (now 325)",
308
+ "125": "Piraeus Bank (now 325)",
309
+ "240": "Findomestic banka (now 325)",
310
+ "140": "JUBMES banka (now 190)"
311
+ }
312
+ }
313
+ STATEHOOD_INDICATORS = ['drzav', 'držav', 'republika', 'federacija', 'kraljevina', 'kraljevstvo']
314
+
315
+ NUMCAR_PLATE_LIST = [
316
+ "AC", "AL", "AR", "BB", "BG", "BO", "BP", "BT", "BU", "BĆ", "BČ", "DE",
317
+ "GL", "GM", "IC", "IN", "JA", "KA", "KC", "KG", "KI", "KL", "KM", "KO",
318
+ "KU", "KV", "KŠ", "KŽ", "LB", "LE", "LO", "LU", "NG", "NI", "NP", "NS",
319
+ "NV", "PA", "PB", "PE", "PI", "PK", "PN", "PO", "PP", "PR", "PT", "PZ",
320
+ "PŽ", "RA", "RU", "SA", "SC", "SD", "SJ", "SM", "SO", "SP", "ST", "SU",
321
+ "SV", "SV", "TO", "TS", "TT", "UB", "UE", "UR", "VA", "VB", "VL", "VP",
322
+ "VR", "VS", "VŠ", "ZA", "ZR", "ĆU", "ČA", "ĐA", "ŠA", "ŠI"
323
+ ]
324
+
File without changes
File without changes