TSjB commited on
Commit
3e06386
·
1 Parent(s): a5de855

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +292 -3
app.py CHANGED
@@ -26,7 +26,290 @@ def fix_tokenizer(tokenizer):
26
  fix_tokenizer(tokenizer_ru_qm)
27
  fix_tokenizer(tokenizer_qm_ru)
28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  # 4. Translate function
 
 
30
  def translatePy(text, model, tokenizer, src='ru_RU', trg='qm_XX', max_length='auto', num_beams=3, repetition_penalty=5.0, train_mode=False, n_out=None, **kwargs):
31
  tokenizer.src_lang = src
32
  encoded = tokenizer(text, return_tensors="pt", truncation=True, max_length=1024)
@@ -51,12 +334,18 @@ def translatePy(text, model, tokenizer, src='ru_RU', trg='qm_XX', max_length='au
51
  return out[0]
52
  return out
53
 
54
- def transl(text, til):
55
  str = ''
56
  if til == "Къарачай-Малкъар":
57
- str = translatePy(text, model_qm_ru, tokenizer_qm_ru, src = 'qm_XX', trg='ru_RU')
 
 
 
58
  elif til == "Русский":
59
- str = translatePy(text, model_ru_qm, tokenizer_ru_qm, src = 'ru_RU', trg='qm_XX')
 
 
 
60
 
61
  return str
62
 
 
26
  fix_tokenizer(tokenizer_ru_qm)
27
  fix_tokenizer(tokenizer_qm_ru)
28
 
29
+ # 4. Change letters
30
+
31
+ def fromModel(str, dialect = "qrc"):
32
+ if dialect == "qrc":
33
+ str = str.replace("тюйюл", "тюл")
34
+ str = str.replace("Тюйюл", "Тюл")
35
+ str = str.replace("уку", "гылын qуш")
36
+ str = str.replace("Уку", "Гылын qуш")
37
+ str = str.replace("хораз", "гугурукку")
38
+ str = str.replace("Хораз", "Гугурукку")
39
+ str = str.replace("юзмез", "qум")
40
+ str = str.replace("Юзмез", "Qум")
41
+ str = str.replace("jиля", "jыла")
42
+ str = str.replace("Jиля", "Jыла")
43
+ str = str.replace("ярабий", "арабин")
44
+ str = str.replace("арабий", "арабин")
45
+ str = str.replace("Ярабий", "Арабин")
46
+ str = str.replace("Арабий", "Арабин")
47
+ str = str.replace("нтта", "нтда")
48
+ str = str.replace("ртте", "ртде")
49
+ str = str.replace("jамауат", "jамаgат")
50
+ str = str.replace("jамаwат", "jамаgат")
51
+ str = str.replace("Jамауат", "Jамаgат")
52
+ str = str.replace("Jамаwат", "Jамаgат")
53
+ str = str.replace("шуёх", "шох")
54
+ str = str.replace("Шуёх", "Шох")
55
+ str = str.replace("шёндю", "бусаgат")
56
+ str = str.replace("Шёндю", "Бусаgат")
57
+ str = str.replace("уgай", "оgай")
58
+ str = str.replace("Уgай", "Оgай")
59
+ # str = str.replace("терк", "тез")
60
+ str = str.replace("саnа", "сенnе")
61
+ str = str.replace("сеnе", "сенnе")
62
+ str = str.replace("Саnа", "Сенnе")
63
+ str = str.replace("Сеnе", "Сенnе")
64
+ str = str.replace("маnа", "менnе")
65
+ str = str.replace("меnе", "менnе")
66
+ str = str.replace("Маnа", "Менnе")
67
+ str = str.replace("Меnе", "Менnе")
68
+ str = str.replace("аяq jол", "jахтана")
69
+ str = str.replace("Аяq jол", "Jахтана")
70
+ str = str.replace("сыbат", "сыфат")
71
+ str = str.replace("Сыbат", "Сыфат")
72
+ str = str.replace("b", "б")
73
+ str = str.replace("q", "къ")
74
+ str = str.replace("Q", "Къ")
75
+ str = str.replace("g", "гъ")
76
+ str = str.replace("G", "Гъ")
77
+ str = str.replace("j", "дж")
78
+ str = str.replace("J", "Дж")
79
+ str = str.replace("w", "ў")
80
+ str = str.replace("W", "Ў")
81
+ str = str.replace("n", "нг")
82
+ str = str.replace("N", "Нг")
83
+ elif dialect == "hlm":
84
+ str = str.replace("тюл", "тюйюл")
85
+ str = str.replace("Тюл", "Тюйюл")
86
+ str = str.replace("гылын qуш", "уку")
87
+ str = str.replace("Гылын qуш", "Уку")
88
+ str = str.replace("гугурукку", "хораз")
89
+ str = str.replace("Гугурукку", "Хораз")
90
+ str = str.replace("qум", "юзмез")
91
+ str = str.replace("Qум", "Юзмез")
92
+ str = str.replace("jыла", "jиля")
93
+ str = str.replace("Jыла", "Jиля")
94
+ str = str.replace("арабин", "ярабий")
95
+ str = str.replace("арабий", "ярабий")
96
+ str = str.replace("Арабин", "Ярабий")
97
+ str = str.replace("Арабий", "Ярабий")
98
+ str = str.replace("нтда", "нтта")
99
+ str = str.replace("ртде", "ртте")
100
+ str = str.replace("jамаgат", "jамаwат")
101
+ str = str.replace("Jамаgат", "Jамаwат")
102
+ str = str.replace("шох", "шуёх")
103
+ str = str.replace("Шох", "Шуёх")
104
+ str = str.replace("бусаgат", "шёндю")
105
+ str = str.replace("Бусаgат", "Шёндю")
106
+ str = str.replace("оgай", "уgай")
107
+ str = str.replace("Оgай", "Уgай")
108
+ str = str.replace("тез", "терк")
109
+ str = str.replace("сенnе", "саnа")
110
+ str = str.replace("сеnе", "саnа")
111
+ str = str.replace("Сенnе", "Саnа")
112
+ str = str.replace("Сеnе", "Саnа")
113
+ str = str.replace("менnе", "маnа")
114
+ str = str.replace("меnе", "маnа")
115
+ str = str.replace("Менnе", "Маnа")
116
+ str = str.replace("Меnе", "Маnа")
117
+ str = str.replace("jахтана", "аяq jол")
118
+ str = str.replace("Jахтана", "аяq jол")
119
+ str = str.replace("хо", "хаw")
120
+ str = str.replace("Хо", "Хаw")
121
+ str = str.replace("сыbат", "сыфат")
122
+ str = str.replace("Сыbат", "Сыфат")
123
+ str = str.replace("b", "п")
124
+ str = str.replace("q", "къ")
125
+ str = str.replace("Q", "Къ")
126
+ str = str.replace("g", "гъ")
127
+ str = str.replace("G", "Гъ")
128
+ str = str.replace("j", "ж")
129
+ str = str.replace("J", "Ж")
130
+ str = str.replace("w", "ў")
131
+ str = str.replace("W", "Ў")
132
+ str = str.replace("n", "нг")
133
+ str = str.replace("N", "Нг")
134
+ elif dialect == "mqr":
135
+ str = str.replace("тюл", "тюйюл")
136
+ str = str.replace("Тюл", "Тюйюл")
137
+ str = str.replace("гылын qуш", "уку")
138
+ str = str.replace("Гылын qуш", "Уку")
139
+ str = str.replace("гугурукку", "хораз")
140
+ str = str.replace("Гугурукку", "Хораз")
141
+ str = str.replace("qум", "юзмез")
142
+ str = str.replace("Qум", "Юзмез")
143
+ str = str.replace("jыла", "jиля")
144
+ str = str.replace("Jыла", "Jиля")
145
+ str = str.replace("арабин", "ярабий")
146
+ str = str.replace("арабий", "ярабий")
147
+ str = str.replace("Арабин", "Ярабий")
148
+ str = str.replace("Арабий", "Ярабий")
149
+ str = str.replace("нтда", "нтта")
150
+ str = str.replace("ртде", "ртте")
151
+ str = str.replace("jамаgат", "jамаwат")
152
+ str = str.replace("Jамаgат", "Jамаwат")
153
+ str = str.replace("шох", "шуёх")
154
+ str = str.replace("Шох", "Шуёх")
155
+ str = str.replace("бусаgат", "шёндю")
156
+ str = str.replace("Бусаgат", "Шёндю")
157
+ str = str.replace("оgай", "уgай")
158
+ str = str.replace("Оgай", "Уgай")
159
+ str = str.replace("тез", "терк")
160
+ str = str.replace("сенnе", "саnа")
161
+ str = str.replace("сеnе", "саnа")
162
+ str = str.replace("Сенnе", "Саnа")
163
+ str = str.replace("Сеnе", "Саnа")
164
+ str = str.replace("менnе", "маnа")
165
+ str = str.replace("меnе", "маnа")
166
+ str = str.replace("Менnе", "Маnа")
167
+ str = str.replace("Меnе", "Маnа")
168
+ str = str.replace("jахтана", "аяq jол")
169
+ str = str.replace("Jахтана", "аяq jол")
170
+ str = str.replace("хо", "хаw")
171
+ str = str.replace("Хо", "Хаw")
172
+ str = str.replace("сыbат", "сыфат")
173
+ str = str.replace("Сыbат", "Сыфат")
174
+ str = str.replace("b", "п")
175
+ str = str.replace("q", "къ")
176
+ str = str.replace("Q", "Къ")
177
+ str = str.replace("g", "гъ")
178
+ str = str.replace("G", "Гъ")
179
+ str = str.replace("j", "з")
180
+ str = str.replace("J", "З")
181
+ str = str.replace("w", "ў")
182
+ str = str.replace("W", "Ў")
183
+ str = str.replace("n", "нг")
184
+ str = str.replace("N", "Нг")
185
+ str = str.replace("ч", "ц")
186
+ str = str.replace("Ч", "Ц")
187
+ str = str.replace("п", "ф")
188
+ str = str.replace("П", "Ф")
189
+ str = str.replace("къ|гъ", "х")
190
+ return str
191
+
192
+
193
+ def toModel(str):
194
+ str = str.replace("дж", "j")
195
+ str = str.replace("Дж", "J")
196
+ str = str.replace("ДЖ", "J")
197
+ str = str.replace("ж", "j")
198
+ str = str.replace("Ж", "J")
199
+ str = str.replace("себеп", "себеb")
200
+ str = str.replace("себеб", "себеb")
201
+ str = str.replace("Себеп", "Себеb")
202
+ str = str.replace("Себеб", "Себеb")
203
+ str = str.replace("тюйюл", "тюл")
204
+ str = str.replace("Тюйюл", "Тюл")
205
+ str = str.replace("уку", "гылын qуш")
206
+ str = str.replace("Уку", "Гылын qуш")
207
+ str = str.replace("хораз", "гугурукку")
208
+ str = str.replace("Хораз", "Гугурукку")
209
+ str = str.replace("юзмез", "qум")
210
+ str = str.replace("Юзмез", "Qум")
211
+ str = str.replace("арап", "араb")
212
+ str = str.replace("араб", "араb")
213
+ str = str.replace("Арап", "Араb")
214
+ str = str.replace("Араб", "Араb")
215
+ str = str.replace("jиля", "jыла")
216
+ str = str.replace("jыла", "jыла")
217
+ str = str.replace("jыла", "jыла")
218
+ str = str.replace("Jиля", "Jыла")
219
+ str = str.replace("Jыла", "Jыла")
220
+ str = str.replace("Jыла", "Jыла")
221
+ str = str.replace("ярабий", "арабин")
222
+ str = str.replace("арабий", "арабин")
223
+ str = str.replace("Ярабий", "Арабин")
224
+ str = str.replace("Арабий", "Арабин")
225
+ str = str.replace("нтта", "нтда")
226
+ str = str.replace("ртте", "ртде")
227
+ str = str.replace("jамагъат", "jамаgат")
228
+ str = str.replace("jамауат", "jамаgат")
229
+ str = str.replace("jамагъат", "jамаgат")
230
+ str = str.replace("jамауат", "jамаgат")
231
+ str = str.replace("Jамагъат", "Jамаgат")
232
+ str = str.replace("Jамауат", "Jамаgат")
233
+ str = str.replace("Jамагъат", "Jамаgат")
234
+ str = str.replace("Jамаўат", "Jамаgат")
235
+ str = str.replace("шуёх", "шох")
236
+ str = str.replace("Шуёх", "Шох")
237
+ str = str.replace("шёндю", "бусаgат")
238
+ str = str.replace("бусагъат", "бусаgат")
239
+ str = str.replace("Шёндю", "Бусаgат")
240
+ str = str.replace("Бусагъат", "Бусаgат")
241
+ str = str.replace("угъай", "оgай")
242
+ str = str.replace("огъай", "оgай")
243
+ str = str.replace("Угъай", "Оgай")
244
+ str = str.replace("Огъай", "Оgай")
245
+ # str = str.replace("терк", "тез")
246
+ # str = str.replace("терк", "тез")
247
+ str = str.replace("санга", "сенnе")
248
+ str = str.replace("сенге", "сенnе")
249
+ str = str.replace("сеннге", "сенnе")
250
+ str = str.replace("Санга", "Сенnе")
251
+ str = str.replace("Сеннге", "Сенnе")
252
+ str = str.replace("Сенге", "Сенnе")
253
+ str = str.replace("манга", "менnе")
254
+ str = str.replace("меннге", "менnе")
255
+ str = str.replace("менге", "менnе")
256
+ str = str.replace("Манга", "Менnе")
257
+ str = str.replace("Меннге", "Менnе")
258
+ str = str.replace("Менге", "Менnе")
259
+ str = str.replace("аякъ jол", "jахтана")
260
+ str = str.replace("аякъ jол", "jахтана")
261
+ str = str.replace("jахтана", "jахтана")
262
+ str = str.replace("jахтана", "jахтана")
263
+ str = str.replace("Аякъ jол", "Jахтана")
264
+ str = str.replace("Аякъ jол", "Jахтана")
265
+ str = str.replace("Jахтана", "Jахтана")
266
+ str = str.replace("Jахтана", "Jахтана")
267
+ str = str.replace("къамж", "qамыzh")
268
+ str = str.replace("къамыж", "qамыzh")
269
+ str = str.replace("Къамж", "Qамыzh")
270
+ str = str.replace("Къамыж", "Qамыzh")
271
+ str = str.replace("къымыж", "qымыzh")
272
+ str = str.replace("къымыж", "qымыzh")
273
+ str = str.replace("Къымыж", "Qымыzh")
274
+ str = str.replace("Къымыж", "Qымыzh")
275
+ str = str.replace("хау", "хо")
276
+ str = str.replace("хаў", "хо")
277
+ str = str.replace("Хау", "Хо")
278
+ str = str.replace("Хаў", "Хо")
279
+ str = str.replace("уа", "wa")
280
+ str = str.replace("ўа", "wa")
281
+ str = str.replace("Уа", "Wa")
282
+ str = str.replace("Ўа", "Wa")
283
+ str = str.replace("п", "b")
284
+ str = str.replace("б", "b")
285
+ str = str.replace("къ", "q")
286
+ str = str.replace("Къ", "Q")
287
+ str = str.replace("КЪ", "Q")
288
+ str = str.replace("гъ", "g")
289
+ str = str.replace("Гъ", "G")
290
+ str = str.replace("ГЪ", "G")
291
+ str = str.replace("ц", "ч")
292
+ str = str.replace("Ц", "Ч")
293
+ str = str.replace("ф", "п")
294
+ str = str.replace("сыпат", "сыфат")
295
+ str = str.replace("Сыпат", "Сыфат")
296
+ str = str.replace("Ф", "П")
297
+ str = str.replace("(?<=[аыоуэеиёюя])у(?=[аыоуэеиёюя])|(?<=[аыоуэеиёюя])ў(?=[аыоуэеиёюя])|(?<=[АЫОУЭЕИЁЮЯ])у(?=[АЫОУЭЕИЁЮЯ])|(?<=[АЫОУЭЕИЁЮЯ])ў(?=[АЫОУЭЕИЁЮЯ])", "w")
298
+ str = str.replace("(?<=[аыоуэеиёюя])у|(?<=[аыоуэеиёюя])ў|(?<=[АЫОУЭЕИЁЮЯ])у|(?<=[АЫОУЭЕИЁЮЯ])ў", "w")
299
+ # str = str.replace("у(?=[аыоуэеиёюя])|ў(?=[аыоуэеиёюя])|у(?=[АЫОУЭЕИЁЮЯ])|ў(?=[АЫОУЭЕИЁЮЯ])", "w")
300
+ # str = str.replace("У(?=[аыоуэеиёюя])|Ў(?=[аыоуэеиёюя])|У(?=[АЫОУЭЕИЁЮЯ])|Ў(?=[АЫОУЭЕИЁЮЯ])", "W")
301
+ str = str.replace("zh", "ж")
302
+ str = str.replace("нг", "n")
303
+ str = str.replace("Нг", " N")
304
+ str = str.replace("НГ", " N")
305
+ return str
306
+
307
+
308
+
309
+
310
  # 4. Translate function
311
+
312
+ # 5. Translate
313
  def translatePy(text, model, tokenizer, src='ru_RU', trg='qm_XX', max_length='auto', num_beams=3, repetition_penalty=5.0, train_mode=False, n_out=None, **kwargs):
314
  tokenizer.src_lang = src
315
  encoded = tokenizer(text, return_tensors="pt", truncation=True, max_length=1024)
 
334
  return out[0]
335
  return out
336
 
337
+ def transl(text, til, change_letters = True):
338
  str = ''
339
  if til == "Къарачай-Малкъар":
340
+ if change_letters == True:
341
+ str = translatePy(toModel(text), model_qm_ru, tokenizer_qm_ru, src = 'qm_XX', trg='ru_RU')
342
+ else:
343
+ str = translatePy(text, model_qm_ru, tokenizer_qm_ru, src = 'qm_XX', trg='ru_RU')
344
  elif til == "Русский":
345
+ if change_letters == True:
346
+ str = translatePy(text, model_ru_qm, tokenizer_ru_qm, src = 'ru_RU', trg='qm_XX').fromModel()
347
+ else:
348
+ str = translatePy(text, model_ru_qm, tokenizer_ru_qm, src = 'ru_RU', trg='qm_XX')
349
 
350
  return str
351