techiaith-speech-normalizer 0.2.0__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.
- techiaith/speech_normalizer/__init__.py +9 -0
- techiaith/speech_normalizer/tokenization.py +33 -0
- techiaith/speech_normalizer/welsh_data.py +769 -0
- techiaith/speech_normalizer/welsh_normalizer.py +673 -0
- techiaith/speech_normalizer/welsh_number_normalizer.py +587 -0
- techiaith_speech_normalizer-0.2.0.dist-info/METADATA +372 -0
- techiaith_speech_normalizer-0.2.0.dist-info/RECORD +10 -0
- techiaith_speech_normalizer-0.2.0.dist-info/WHEEL +4 -0
- techiaith_speech_normalizer-0.2.0.dist-info/entry_points.txt +2 -0
- techiaith_speech_normalizer-0.2.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,769 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Welsh Language Data - Shared normalization patterns
|
|
4
|
+
|
|
5
|
+
This module contains all the linguistic data used by Welsh normalizers.
|
|
6
|
+
All normalization rules and lookup tables are centralized here to ensure
|
|
7
|
+
consistency across different normalizer implementations.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
# ============================================================================
|
|
11
|
+
# PRONOUN NORMALIZATIONS
|
|
12
|
+
# ============================================================================
|
|
13
|
+
PRONOUN_CORRECTIONS = {
|
|
14
|
+
"nw": "nhw",
|
|
15
|
+
"n'w": "nhw",
|
|
16
|
+
"nw'n": "nhw'n",
|
|
17
|
+
"nw'm": "nhw'm",
|
|
18
|
+
"nw'r": "nhw'r",
|
|
19
|
+
"nhwn": "nhw'n",
|
|
20
|
+
"'u": "eu",
|
|
21
|
+
"'ych": "eich",
|
|
22
|
+
"'yng": "ein",
|
|
23
|
+
"'ym": "ein",
|
|
24
|
+
"wnna": "hwnna",
|
|
25
|
+
"wnna'n": "hwnna'n",
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
# ============================================================================
|
|
29
|
+
# VERB CONTRACTIONS
|
|
30
|
+
# ============================================================================
|
|
31
|
+
VERB_CONTRACTIONS = {
|
|
32
|
+
"ca'l": "cael",
|
|
33
|
+
"ca'": "cael",
|
|
34
|
+
"ga'l": "gael",
|
|
35
|
+
"ga'": "ga",
|
|
36
|
+
"cha'l": "chael",
|
|
37
|
+
"bo'": "bod",
|
|
38
|
+
"fo'": "fod",
|
|
39
|
+
"gor'o'": "gorfod",
|
|
40
|
+
"gor'o": "gorfod",
|
|
41
|
+
"gorfo": "gorfod",
|
|
42
|
+
"goro": "gorfod",
|
|
43
|
+
"goffod": "gorfod",
|
|
44
|
+
"goso'": "gosod",
|
|
45
|
+
"'neud": "wneud",
|
|
46
|
+
"neud": "wneud",
|
|
47
|
+
"neu'": "neud",
|
|
48
|
+
"gneu": "gwneud",
|
|
49
|
+
"g'neud": "gwneud",
|
|
50
|
+
"gneud": "gwneud",
|
|
51
|
+
"nath": "wnaeth",
|
|
52
|
+
"natha": "wnaeth",
|
|
53
|
+
"nathon": "wnaethon",
|
|
54
|
+
"nathoch": "wnaethoch",
|
|
55
|
+
"nethon": "wnaethon",
|
|
56
|
+
"netho": "wnaethon",
|
|
57
|
+
"neith": "wnaiff",
|
|
58
|
+
"nei": "wnei",
|
|
59
|
+
"neshi": "wnes i",
|
|
60
|
+
"nesh": "wnes",
|
|
61
|
+
"'nes": "wnes",
|
|
62
|
+
"newch": "wnewch",
|
|
63
|
+
"newn": "wnawn",
|
|
64
|
+
"by'": "bydd",
|
|
65
|
+
"fy'": "fydd",
|
|
66
|
+
"gewn": "gawn",
|
|
67
|
+
"gesh": "ges",
|
|
68
|
+
"gathon": "gaethon",
|
|
69
|
+
"gethon": "gaethon",
|
|
70
|
+
"'di": "ydy",
|
|
71
|
+
"'dy": "ydy",
|
|
72
|
+
"wt": "wyt",
|
|
73
|
+
"wi": "dw i",
|
|
74
|
+
"dwi": "dw i",
|
|
75
|
+
"ydan": "ydym",
|
|
76
|
+
"ydach": "ydych",
|
|
77
|
+
"dach": "dych",
|
|
78
|
+
"odd": "oedd",
|
|
79
|
+
"o'dd": "oedd",
|
|
80
|
+
"o'd'd": "oedd",
|
|
81
|
+
"do'dd": "doedd",
|
|
82
|
+
"do'": "doedd",
|
|
83
|
+
"oddan": "oedden",
|
|
84
|
+
"oddwn": "oeddwn",
|
|
85
|
+
"odden": "oedden",
|
|
86
|
+
"oddyn": "oedden",
|
|
87
|
+
"oeddan": "oedden",
|
|
88
|
+
"o'dden": "oedden",
|
|
89
|
+
"oddach": "oeddech",
|
|
90
|
+
"oddat": "oeddet",
|
|
91
|
+
"odda": "roedd",
|
|
92
|
+
"'swn": "baswn",
|
|
93
|
+
"'sa": "basai",
|
|
94
|
+
"swn": "baswn",
|
|
95
|
+
"sa": "basai",
|
|
96
|
+
"sa'n": "basai'n",
|
|
97
|
+
"dyla": "dylai",
|
|
98
|
+
"dylia": "dylai",
|
|
99
|
+
"'ddan": "oedden",
|
|
100
|
+
"'sych": "bysych",
|
|
101
|
+
"'tai": "petai",
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
# ============================================================================
|
|
105
|
+
# MAE CONTRACTIONS
|
|
106
|
+
# ============================================================================
|
|
107
|
+
MAE_CONTRACTIONS = {
|
|
108
|
+
"ma'": "mae",
|
|
109
|
+
"ma'r": "mae'r",
|
|
110
|
+
"ma'n": "mae'n",
|
|
111
|
+
"m'e": "mae",
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
# ============================================================================
|
|
115
|
+
# OTHER CONTRACTIONS
|
|
116
|
+
# ============================================================================
|
|
117
|
+
OTHER_CONTRACTIONS = {
|
|
118
|
+
"ne'": "neu",
|
|
119
|
+
"'na": "yna",
|
|
120
|
+
"'ne": "yna",
|
|
121
|
+
"'ma": "yma",
|
|
122
|
+
"fama": "fan yma",
|
|
123
|
+
"fyma": "fan yma",
|
|
124
|
+
"fana": "fan yna",
|
|
125
|
+
"fan'na": "fan yna",
|
|
126
|
+
"fyna": "fan yna",
|
|
127
|
+
"fan'cw": "fan acw",
|
|
128
|
+
"'lly": "felly",
|
|
129
|
+
"'elly": "felly",
|
|
130
|
+
"lly": "felly",
|
|
131
|
+
"'llu": "felly",
|
|
132
|
+
"'fo": "efo",
|
|
133
|
+
"'da": "gyda",
|
|
134
|
+
"timod": "ti'n gwybod",
|
|
135
|
+
"t'mod": "ti'n gwybod",
|
|
136
|
+
"t'bo'": "ti'n gwybod",
|
|
137
|
+
"t'mo": "ti'n gwybod",
|
|
138
|
+
"'wan": "rŵan",
|
|
139
|
+
"rwan": "rŵan",
|
|
140
|
+
"ŵan": "rŵan",
|
|
141
|
+
"'w'rach": "hwyrach",
|
|
142
|
+
"'chos": "achos",
|
|
143
|
+
"'c'os": "achos",
|
|
144
|
+
"chos": "achos",
|
|
145
|
+
"'im": "dim",
|
|
146
|
+
"im": "dim",
|
|
147
|
+
"'nol": "yn ôl",
|
|
148
|
+
"'fyd": "hefyd",
|
|
149
|
+
"'to": "eto",
|
|
150
|
+
"'stafell": "ystafell",
|
|
151
|
+
"'sgubor": "ysgubor",
|
|
152
|
+
"'mlan": "ymlaen",
|
|
153
|
+
"'mlaen": "ymlaen",
|
|
154
|
+
"bla'n": "blaen",
|
|
155
|
+
"'run": "yr un",
|
|
156
|
+
"run": "yr un",
|
|
157
|
+
"'biti": "piti",
|
|
158
|
+
"'wna": "hwnna",
|
|
159
|
+
"'ddo": "iddo",
|
|
160
|
+
"'chydig": "ychydig",
|
|
161
|
+
"'lla": "efallai",
|
|
162
|
+
# "'yn": "fy",
|
|
163
|
+
"'i'n": "hi'n",
|
|
164
|
+
"o'no": "ohono",
|
|
165
|
+
"'ta'": "yntau",
|
|
166
|
+
"'am": "yna ddim",
|
|
167
|
+
"'ndoes": "onid oes",
|
|
168
|
+
"'thrawon": "athrawon",
|
|
169
|
+
"oe'": "oed",
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
# ============================================================================
|
|
173
|
+
# VOWEL REDUCTIONS - PLURALS
|
|
174
|
+
# ============================================================================
|
|
175
|
+
PLURAL_REDUCTIONS = {
|
|
176
|
+
# North forms (-a)
|
|
177
|
+
"petha": "pethau",
|
|
178
|
+
"betha": "bethau",
|
|
179
|
+
"pwysa": "pwysau",
|
|
180
|
+
"bwysa'": "bwysau",
|
|
181
|
+
"lleisia": "lleisiau",
|
|
182
|
+
"lleisia'": "lleisiau",
|
|
183
|
+
"lleisa": "lleisiau",
|
|
184
|
+
"profiada": "profiadau",
|
|
185
|
+
"brofiada": "brofiadau",
|
|
186
|
+
"sgilia": "sgiliau",
|
|
187
|
+
"sgilia'": "sgiliau",
|
|
188
|
+
"hawlia'": "hawliau",
|
|
189
|
+
"ffinia'": "ffiniau",
|
|
190
|
+
"llunia'": "lluniau",
|
|
191
|
+
"norma'": "normau",
|
|
192
|
+
"cama'": "camau",
|
|
193
|
+
"cyfrynga'": "cyfryngau",
|
|
194
|
+
"emosiyna": "emosiynau",
|
|
195
|
+
"hemosiyna": "hemosiynau",
|
|
196
|
+
"dyddia'": "dyddiau",
|
|
197
|
+
"dyddia": "dyddiau",
|
|
198
|
+
"sesiyna": "sesiynau",
|
|
199
|
+
"problema": "problemau",
|
|
200
|
+
"gema": "gemau",
|
|
201
|
+
"gema'": "gemau",
|
|
202
|
+
"gweithgaredda": "gweithgareddau",
|
|
203
|
+
"anawstera": "anawsterau",
|
|
204
|
+
"grwpia'": "grwpiau",
|
|
205
|
+
"heria'": "heriau",
|
|
206
|
+
"radda": "raddau",
|
|
207
|
+
"gwasanaetha'": "gwasanaethau",
|
|
208
|
+
"wasanaetha'": "wasanaethau",
|
|
209
|
+
"bywyda": "bywydau",
|
|
210
|
+
"asiantaetha": "asiantaethau",
|
|
211
|
+
"sgyrsia'": "sgyrsiau",
|
|
212
|
+
"syniada": "syniadau",
|
|
213
|
+
"newidiada": "newidiadau",
|
|
214
|
+
"ffrindia": "ffrindiau",
|
|
215
|
+
"elfenna'": "elfennau",
|
|
216
|
+
"elfenna": "elfennau",
|
|
217
|
+
"dyheada": "dyheadau",
|
|
218
|
+
"pyncia'": "pynciau",
|
|
219
|
+
"penderfyniada": "penderfyniadau",
|
|
220
|
+
"mudiada": "mudiadau",
|
|
221
|
+
"gyfnoda": "gyfnodau",
|
|
222
|
+
"sylwada'": "sylwadau",
|
|
223
|
+
"patryma": "patrymau",
|
|
224
|
+
"ddatblygiada": "ddatblygiadau",
|
|
225
|
+
"cyrsia": "cyrsiau",
|
|
226
|
+
"terma": "termau",
|
|
227
|
+
"clwbia": "clybiau",
|
|
228
|
+
"systema": "systemau",
|
|
229
|
+
"diwyllianna": "diwylliannau",
|
|
230
|
+
"geiria'": "geiriau",
|
|
231
|
+
"apia": "apiau",
|
|
232
|
+
"agwedda'": "agweddau",
|
|
233
|
+
"sefydliada": "sefydliadau",
|
|
234
|
+
"cymuneda": "cymunedau",
|
|
235
|
+
"gwefanna": "gwefannau",
|
|
236
|
+
"anwyldera": "anhwylderau",
|
|
237
|
+
"tegana": "teganau",
|
|
238
|
+
"brojecta": "brojectau",
|
|
239
|
+
"anabledda": "anableddau",
|
|
240
|
+
"cyfrifoldeba": "cyfrifoldebau",
|
|
241
|
+
"perthnasa'": "perthnasau",
|
|
242
|
+
"adolygiada": "adolygiadau",
|
|
243
|
+
"awdurdoda'": "awdurdodau",
|
|
244
|
+
"polisia": "polisïau",
|
|
245
|
+
"darpariaetha": "darpariaethau",
|
|
246
|
+
"effeithia'": "effeithiau",
|
|
247
|
+
"cyffuria": "cyffuriau",
|
|
248
|
+
"delwedda'": "delweddau",
|
|
249
|
+
"amgylchiada": "amgylchiadau",
|
|
250
|
+
"ffactora'": "ffactorau",
|
|
251
|
+
"oria": "oriau",
|
|
252
|
+
"cwestiyna'": "cwestiynau",
|
|
253
|
+
"adroddiada": "adroddiadau",
|
|
254
|
+
"trefniada": "trefniadau",
|
|
255
|
+
"bwyntia'": "bwyntiau",
|
|
256
|
+
"saithdega": "saithdegau",
|
|
257
|
+
"chwedega": "chwedegau",
|
|
258
|
+
"harddega": "harddegau",
|
|
259
|
+
"disgwyliada": "disgwyliadau",
|
|
260
|
+
"weithia": "weithiau",
|
|
261
|
+
"weithia'": "weithiau",
|
|
262
|
+
"sylwada": "sylwadau",
|
|
263
|
+
|
|
264
|
+
# South forms (-e)
|
|
265
|
+
"pethe": "pethau",
|
|
266
|
+
"bethe": "bethau",
|
|
267
|
+
"gore": "gorau",
|
|
268
|
+
"coese": "coesau",
|
|
269
|
+
"enwe": "enwau",
|
|
270
|
+
"pwyse": "pwysau",
|
|
271
|
+
"geirie": "geiriau",
|
|
272
|
+
"ffrindie": "ffrindiau",
|
|
273
|
+
"cymeriade": "cymeriadau",
|
|
274
|
+
"effeithie": "effeithiau",
|
|
275
|
+
"canlyniade": "canlyniadau",
|
|
276
|
+
"potie": "potiau",
|
|
277
|
+
"orie": "oriau",
|
|
278
|
+
"delwedde": "delweddau",
|
|
279
|
+
"astudiaethe": "astudiaethau",
|
|
280
|
+
"risge": "risgiau",
|
|
281
|
+
"anabledde": "anableddau",
|
|
282
|
+
"trafodaethe": "trafodaethau",
|
|
283
|
+
"terme": "termau",
|
|
284
|
+
"elfenne": "elfennau",
|
|
285
|
+
"cymwystere": "cymwysterau",
|
|
286
|
+
"syniade": "syniadau",
|
|
287
|
+
"asiantaethe": "asiantaethau",
|
|
288
|
+
"gwasanaethe": "gwasanaethau",
|
|
289
|
+
"radde": "raddau",
|
|
290
|
+
"cyfrynge": "cyfryngau",
|
|
291
|
+
"hawlie": "hawliau",
|
|
292
|
+
"profiade": "profiadau",
|
|
293
|
+
"brofiade": "brofiadau",
|
|
294
|
+
"weithie": "weithiau",
|
|
295
|
+
"resyme": "resymau",
|
|
296
|
+
"idiome": "idiomau",
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
# ============================================================================
|
|
300
|
+
# VERB REDUCTIONS
|
|
301
|
+
# ============================================================================
|
|
302
|
+
VERB_REDUCTIONS = {
|
|
303
|
+
"dechre": "dechrau",
|
|
304
|
+
"dechra": "dechrau",
|
|
305
|
+
"dechra'": "dechrau",
|
|
306
|
+
"ddechre": "ddechrau",
|
|
307
|
+
"gweitho": "gweithio",
|
|
308
|
+
"gwithio": "gweithio",
|
|
309
|
+
"withio": "weithio",
|
|
310
|
+
"gwitho": "gweithio",
|
|
311
|
+
"disgwl": "disgwyl",
|
|
312
|
+
"gobitho": "gobeithio",
|
|
313
|
+
"grando": "gwrando",
|
|
314
|
+
"gwryndo": "gwrando",
|
|
315
|
+
"gadal": "gadael",
|
|
316
|
+
"gadel": "gadael",
|
|
317
|
+
"gada'l": "gadael",
|
|
318
|
+
"gade'l": "gadael",
|
|
319
|
+
"adal": "adael",
|
|
320
|
+
"cyrradd": "cyrraedd",
|
|
321
|
+
"gyrradd": "gyrraedd",
|
|
322
|
+
"diodde": "dioddef",
|
|
323
|
+
"gyfadde": "gyfaddef",
|
|
324
|
+
"gyfadda": "gyfaddef",
|
|
325
|
+
"cwmpo": "cwympo",
|
|
326
|
+
"lico": "licio",
|
|
327
|
+
"timlo": "teimlo",
|
|
328
|
+
"chwara": "chwarae",
|
|
329
|
+
"chware": "chwarae",
|
|
330
|
+
"clwad": "clywed",
|
|
331
|
+
"clywad": "clywed",
|
|
332
|
+
"glywad": "glywed",
|
|
333
|
+
"glwad": "glywed",
|
|
334
|
+
"cl'wad": "clywed",
|
|
335
|
+
"deu": "dweud",
|
|
336
|
+
"deud": "dweud",
|
|
337
|
+
"deu'": "dweud",
|
|
338
|
+
"ddeu": "ddweud",
|
|
339
|
+
"weud": "ddweud",
|
|
340
|
+
"deutha": "dweud wrth",
|
|
341
|
+
"daetho": "dweud wrth",
|
|
342
|
+
"ymatab": "ymateb",
|
|
343
|
+
"myn'": "mynd",
|
|
344
|
+
"arfar": "arfer",
|
|
345
|
+
"ymarfar": "ymarfer",
|
|
346
|
+
"bita": "bwyta",
|
|
347
|
+
"dadla": "dadlau",
|
|
348
|
+
"ffindio": "ffeindio",
|
|
349
|
+
"ffeithio": "effeithio",
|
|
350
|
+
"cerddad": "cerdded",
|
|
351
|
+
"iste": "eistedd",
|
|
352
|
+
"cyfadda": "cyfaddef",
|
|
353
|
+
"gorffan": "gorffen",
|
|
354
|
+
"darllan": "darllen",
|
|
355
|
+
"edrach": "edrych",
|
|
356
|
+
"angan": "angen",
|
|
357
|
+
"hangan": "hangen",
|
|
358
|
+
"gweud": "dweud",
|
|
359
|
+
"roid": "roi",
|
|
360
|
+
"rhoid": "rhoi",
|
|
361
|
+
"styried": "ystyried",
|
|
362
|
+
"ystyriad": "ystyried",
|
|
363
|
+
"atab": "ateb",
|
|
364
|
+
"wela'": "welaf",
|
|
365
|
+
"gwel'": "gweld",
|
|
366
|
+
"ath": "aeth",
|
|
367
|
+
"dath": "daeth",
|
|
368
|
+
"ddath": "ddaeth",
|
|
369
|
+
"ddoth": "ddaeth",
|
|
370
|
+
"'wharae": "chwarae",
|
|
371
|
+
"'drycha": "edrycha",
|
|
372
|
+
"'drychwch": "edrychwch",
|
|
373
|
+
"ty'd": "tyrd",
|
|
374
|
+
"'nabod": "adnabod",
|
|
375
|
+
"gwbod": "gwybod",
|
|
376
|
+
"gwbo": "gwybod",
|
|
377
|
+
"gwy'": "gwybod",
|
|
378
|
+
"gw'bo'": "gwybod",
|
|
379
|
+
"wbod": "wybod",
|
|
380
|
+
"w'bod": "wybod",
|
|
381
|
+
"me'wl": "meddwl",
|
|
382
|
+
"mewl": "meddwl",
|
|
383
|
+
"me'l": "meddwl",
|
|
384
|
+
"m'wl": "meddwl",
|
|
385
|
+
"meddw'": "meddwl",
|
|
386
|
+
"cymyd": "cymryd",
|
|
387
|
+
"cymud": "cymryd",
|
|
388
|
+
"dalld": "deall",
|
|
389
|
+
"diall": "deall",
|
|
390
|
+
"deallt": "deall",
|
|
391
|
+
"camtrin": "cam-trin",
|
|
392
|
+
"cyffwr": "cyffwrdd",
|
|
393
|
+
"sicrau": "sicrhau",
|
|
394
|
+
"cydnabot": "cydnabod",
|
|
395
|
+
"sy": "sydd",
|
|
396
|
+
"su'": "sydd",
|
|
397
|
+
"sy'": "sydd",
|
|
398
|
+
"isie": "eisiau",
|
|
399
|
+
"isia": "eisiau",
|
|
400
|
+
"isio": "eisiau",
|
|
401
|
+
"isio'i": "eisiau ei",
|
|
402
|
+
"isio'u": "eisiau eu",
|
|
403
|
+
"eisia": "eisiau",
|
|
404
|
+
"gafal": "gafael",
|
|
405
|
+
"angofio": "anghofio",
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
# ============================================================================
|
|
409
|
+
# ADJECTIVE REDUCTIONS - AF
|
|
410
|
+
# ============================================================================
|
|
411
|
+
ADJECTIVE_REDUCTIONS = {
|
|
412
|
+
"nesa": "nesaf",
|
|
413
|
+
"nesa'": "nesaf",
|
|
414
|
+
"ola": "olaf",
|
|
415
|
+
"ola'": "olaf",
|
|
416
|
+
"gora": "gorau",
|
|
417
|
+
"gora'": "gorau",
|
|
418
|
+
"ora'": "orau",
|
|
419
|
+
"cynta": "cyntaf",
|
|
420
|
+
"cynta'": "cyntaf",
|
|
421
|
+
"gynta'": "gyntaf",
|
|
422
|
+
"gynta": "gyntaf",
|
|
423
|
+
"cynhara": "cynharaf",
|
|
424
|
+
"eitha": "eithaf",
|
|
425
|
+
"eitha'": "eithaf",
|
|
426
|
+
"itha": "eithaf",
|
|
427
|
+
"mwya": "mwyaf",
|
|
428
|
+
"mwya'": "mwyaf",
|
|
429
|
+
"fwya'": "fwyaf",
|
|
430
|
+
"fwya": "fwyaf",
|
|
431
|
+
"isa": "isaf",
|
|
432
|
+
"gry": "gryf",
|
|
433
|
+
"ifan'": "ifanc",
|
|
434
|
+
"gra": "gryf",
|
|
435
|
+
"gre": "gref",
|
|
436
|
+
"uchal": "uchel",
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
# ============================================================================
|
|
440
|
+
# VOWEL REDUCTIONS - INTERNAL
|
|
441
|
+
# ============================================================================
|
|
442
|
+
INTERNAL_REDUCTIONS = {
|
|
443
|
+
"m'wn": "mewn",
|
|
444
|
+
"mew'": "mewn",
|
|
445
|
+
"meddwlgarwch": "meddylgarwch",
|
|
446
|
+
"sicir": "sicr",
|
|
447
|
+
"amsar": "amser",
|
|
448
|
+
"mowr": "mawr",
|
|
449
|
+
"amal": "aml",
|
|
450
|
+
"wthnos": "wythnos",
|
|
451
|
+
"wsos": "wythnos",
|
|
452
|
+
"ymlan": "ymlaen",
|
|
453
|
+
"hunen": "hunain",
|
|
454
|
+
"angenion": "anghenion",
|
|
455
|
+
"hannar": "hanner",
|
|
456
|
+
"hwna": "hwnna",
|
|
457
|
+
"ynny": "hynny",
|
|
458
|
+
"hynna'": "hynnaf",
|
|
459
|
+
"'ynny": "hynny",
|
|
460
|
+
"'ny": "hynny",
|
|
461
|
+
"yne": "hynny",
|
|
462
|
+
"chydig": "ychydig",
|
|
463
|
+
"chdig": "ychydig",
|
|
464
|
+
"rei": "rhai",
|
|
465
|
+
"rhei": "rhai",
|
|
466
|
+
"eryll": "eraill",
|
|
467
|
+
"hunianiaeth": "hunaniaeth",
|
|
468
|
+
"hunanieth": "hunaniaeth",
|
|
469
|
+
"ymwybyddieth": "ymwybyddiaeth",
|
|
470
|
+
"trw": "trwy",
|
|
471
|
+
"trw'r": "trwy'r",
|
|
472
|
+
"drw": "drwy",
|
|
473
|
+
"drw": "drwy",
|
|
474
|
+
"drost": "dros",
|
|
475
|
+
"wth": "wrth",
|
|
476
|
+
"llawar": "llawer",
|
|
477
|
+
"elle": "efallai",
|
|
478
|
+
"ella": "efallai",
|
|
479
|
+
"e'lla": "efallai",
|
|
480
|
+
"gwanol": "gwahanol",
|
|
481
|
+
"gwahaniath": "gwahaniaeth",
|
|
482
|
+
"gwahanieth": "gwahaniaeth",
|
|
483
|
+
"wahanieth": "wahaniaeth",
|
|
484
|
+
"hydnod": "hyd yn oed",
|
|
485
|
+
"hanas": "hanes",
|
|
486
|
+
"cyfla": "cyfle",
|
|
487
|
+
"enghraiff": "enghraifft",
|
|
488
|
+
"enhraifft": "enghraifft",
|
|
489
|
+
"pentre": "pentref",
|
|
490
|
+
"pentra": "pentref",
|
|
491
|
+
"cartra": "cartref",
|
|
492
|
+
"cartre": "cartref",
|
|
493
|
+
"traffath": "trafferth",
|
|
494
|
+
"negas": "neges",
|
|
495
|
+
"blesar": "bleser",
|
|
496
|
+
"plesar": "pleser",
|
|
497
|
+
"gynhenydd": "gynhenid",
|
|
498
|
+
"ersdalwm": "ers dalwm",
|
|
499
|
+
"problam": "problem",
|
|
500
|
+
"broblam": "broblem",
|
|
501
|
+
"cwbwl": "cwbl",
|
|
502
|
+
"gwbwl": "gwbl",
|
|
503
|
+
"dat": "dad",
|
|
504
|
+
"amrywieth": "amrywiaeth",
|
|
505
|
+
"ystol": "ystod",
|
|
506
|
+
"pŵar": "pŵer",
|
|
507
|
+
"cwricilwm": "cwricwlwm",
|
|
508
|
+
"darpariath": "darpariaeth",
|
|
509
|
+
"cymddeithasol": "cymdeithasol",
|
|
510
|
+
"trosglwyddiadwy": "trosglwyddadwy",
|
|
511
|
+
"ugian": "ugain",
|
|
512
|
+
"ugen": "ugain",
|
|
513
|
+
"bymthag": "bymtheg",
|
|
514
|
+
"ddeugen": "ddeugain",
|
|
515
|
+
"Portsmuth": "Portsmouth",
|
|
516
|
+
"mown": "mewn",
|
|
517
|
+
"withia": "weithiau",
|
|
518
|
+
"withia'": "weithiau",
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
# ============================================================================
|
|
522
|
+
# SPELLING STANDARDIZATIONS
|
|
523
|
+
# ============================================================================
|
|
524
|
+
SPELLING_CORRECTIONS = {
|
|
525
|
+
"gyment": "gymaint",
|
|
526
|
+
"cyment": "cymaint",
|
|
527
|
+
"rwbeth": "rhywbeth",
|
|
528
|
+
"rwbath": "rhywbeth",
|
|
529
|
+
"r'wbath": "rhywbeth",
|
|
530
|
+
"wbath": "rhywbeth",
|
|
531
|
+
"rhwbath": "rhywbeth",
|
|
532
|
+
"rywbath": "rhywbeth",
|
|
533
|
+
"rhwbeth": "rhywbeth",
|
|
534
|
+
"rwle": "rywle",
|
|
535
|
+
"gellu": "gallu",
|
|
536
|
+
"efyd": "hefyd",
|
|
537
|
+
"gwrnado": "gwrando",
|
|
538
|
+
"cymra'g": "cymraeg",
|
|
539
|
+
"gymra'g": "gymraeg",
|
|
540
|
+
"gymraig": "gymraeg",
|
|
541
|
+
"lloeger": "lloegr",
|
|
542
|
+
"ytrach": "hytrach",
|
|
543
|
+
"sicirhau": "sicrhau",
|
|
544
|
+
"jys": "jyst",
|
|
545
|
+
"sud": "sut",
|
|
546
|
+
"be'": "beth",
|
|
547
|
+
"be": "beth",
|
|
548
|
+
"rhyfadd": "rhyfedd",
|
|
549
|
+
"cymru": "Cymru",
|
|
550
|
+
"gymru": "Gymru",
|
|
551
|
+
"cymraeg": "Cymraeg",
|
|
552
|
+
"gymraeg": "Gymraeg",
|
|
553
|
+
"ewrop": "Ewrop",
|
|
554
|
+
"sgandenafia": "Sgandinafia",
|
|
555
|
+
"bobol": "bobl",
|
|
556
|
+
"pobol": "pobl",
|
|
557
|
+
"cwpwl": "cwpl",
|
|
558
|
+
"powb": "pawb",
|
|
559
|
+
"rywyn": "rywun",
|
|
560
|
+
"rwun": "rywun",
|
|
561
|
+
"unryw": "unrhyw",
|
|
562
|
+
"ffor": "ffordd",
|
|
563
|
+
"ginnon": "gennym",
|
|
564
|
+
"ganddon": "gennym",
|
|
565
|
+
"ginon": "gennym",
|
|
566
|
+
"gennyn": "gennym",
|
|
567
|
+
"genddyn": "ganddyn",
|
|
568
|
+
"gannyn": "ganddyn",
|
|
569
|
+
"sgynnoch": "oes gynnoch",
|
|
570
|
+
"sgennych": "oes gennych",
|
|
571
|
+
"dwytha": "diwetha",
|
|
572
|
+
"dwetha": "diwetha",
|
|
573
|
+
"'nde": "ynde",
|
|
574
|
+
"nacdi": "nac ydi",
|
|
575
|
+
"on'": "ond",
|
|
576
|
+
"ont": "ond",
|
|
577
|
+
"on'd": "onid",
|
|
578
|
+
"ne'n": "neu'n",
|
|
579
|
+
"ynnyn": "ynddyn",
|
|
580
|
+
"ch'mod": "chi'n gwybod",
|
|
581
|
+
"chi'mod": "chi'n gwybod",
|
|
582
|
+
"ch'mo'": "chi'n gwybod",
|
|
583
|
+
"ch'mo": "chi'n gwybod",
|
|
584
|
+
"ch'mbo'": "chi'n gwybod",
|
|
585
|
+
"d'chmod": "dach chi'n gwybod",
|
|
586
|
+
"d'ch'mod": "dach chi'n gwybod",
|
|
587
|
+
"d'ch'od": "dach chi'n gwybod",
|
|
588
|
+
"dach'mod": "dach chi'n gwybod",
|
|
589
|
+
"dach'bo'": "dach chi'n gwybod",
|
|
590
|
+
"ch'bo'": "chi'n gwybod",
|
|
591
|
+
"ch'od": "chi'n gwybod",
|
|
592
|
+
"ch'bod": "chi'n gwybod",
|
|
593
|
+
"dych'bo'": "dach chi'n gwybod",
|
|
594
|
+
"dych'mod": "dach chi'n gwybod",
|
|
595
|
+
"t'o'": "ti'n gwybod",
|
|
596
|
+
"t'mo'": "ti'n gwybod",
|
|
597
|
+
"t'bo'": "ti'n gwybod",
|
|
598
|
+
"t'w'o'": "ti'n gwybod",
|
|
599
|
+
"t'wo'": "ti'n gwybod",
|
|
600
|
+
"t'wod": "ti'n gwybod",
|
|
601
|
+
"t'": "ti'n gwybod",
|
|
602
|
+
"ti'o'": "ti'n gwybod",
|
|
603
|
+
"sti": "wyddost ti",
|
|
604
|
+
"d'chi'n": "rydych chi'n",
|
|
605
|
+
"sbio": "sbïo",
|
|
606
|
+
"ano": "arno",
|
|
607
|
+
"ry": "rhy",
|
|
608
|
+
"dou": "dau",
|
|
609
|
+
"ddou": "ddau",
|
|
610
|
+
"flan": "ymlaen",
|
|
611
|
+
"dy'": "dydd",
|
|
612
|
+
"camra": "camera",
|
|
613
|
+
"barbiciw": "barbeciw",
|
|
614
|
+
"capal": "capel",
|
|
615
|
+
"nyrfys": "nerfus",
|
|
616
|
+
"coedan": "coeden",
|
|
617
|
+
"ogyn": "hogyn",
|
|
618
|
+
"wedig": "enwedig",
|
|
619
|
+
"fforyma": "fforymau",
|
|
620
|
+
"cynor": "cyngor",
|
|
621
|
+
"pethan": "petha'n",
|
|
622
|
+
"osa": "oes yna",
|
|
623
|
+
"jiom": "dydi o ddim",
|
|
624
|
+
"diom": "dydi o ddim",
|
|
625
|
+
"rhai'": "rhaid",
|
|
626
|
+
"rai'": "raid",
|
|
627
|
+
"mlynadd": "mlynedd",
|
|
628
|
+
"blynadd": "blynedd",
|
|
629
|
+
"flynadd": "flynedd",
|
|
630
|
+
"adag": "adeg",
|
|
631
|
+
"ama": "amau",
|
|
632
|
+
"hy'": "hyd",
|
|
633
|
+
"y'": "yn",
|
|
634
|
+
"teuluodd": "teuluoedd",
|
|
635
|
+
"deuluodd": "deuluoedd",
|
|
636
|
+
"blynyddodd": "blynyddoedd",
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
# ============================================================================
|
|
640
|
+
# HESITATION STANDARDIZATION
|
|
641
|
+
# ============================================================================
|
|
642
|
+
HESITATION_STANDARDIZATION = {
|
|
643
|
+
"yy": "yym",
|
|
644
|
+
"yrm": "yym",
|
|
645
|
+
"ymm": "yym",
|
|
646
|
+
"yrr": "yym",
|
|
647
|
+
#"hmm": "yym",
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
# ============================================================================
|
|
651
|
+
# CONTEXT RULES FOR MA'
|
|
652
|
+
# ============================================================================
|
|
653
|
+
|
|
654
|
+
# Lookup table for normalizing followers after "ma'"
|
|
655
|
+
# ma' ALWAYS becomes mae
|
|
656
|
+
# This maps the follower word to what the follower should become
|
|
657
|
+
# e.g., "ma' nw" -> "mae nhw" (nw becomes nhw)
|
|
658
|
+
# "ma' nhw" -> "mae nhw" (nhw stays nhw)
|
|
659
|
+
# "ma' wnna" -> "mae hwnna" (wnna becomes hwnna)
|
|
660
|
+
# "ma' 'na" -> "mae 'na" ('na stays 'na)
|
|
661
|
+
MA_FOLLOWERS = {
|
|
662
|
+
# Existential/possessive patterns (follower stays same)
|
|
663
|
+
"'na": "yna", # ma' 'na -> mae yna (there is)
|
|
664
|
+
"na": "yna", # ma' na -> mae yna
|
|
665
|
+
"'di": "wedi", # ma' 'di -> mae wedi
|
|
666
|
+
# "'da": "gyda", # ma' 'da fi -> mae gyda fi (I have)
|
|
667
|
+
|
|
668
|
+
# Pronouns (follower normalized to standard form)
|
|
669
|
+
"nw": "nhw", # ma' nw -> mae nhw
|
|
670
|
+
"n'w": "nhw", # ma' n'w -> mae nhw
|
|
671
|
+
"nw'": "nhw", # ma' nw' -> mae nhw
|
|
672
|
+
"nw'n": "nhw'n", # ma' nw'n -> mae nhw'n
|
|
673
|
+
"nw'm": "nhw'm", # ma' nw'm -> mae nhw'm
|
|
674
|
+
"fe": "fe", # ma' fe -> mae fe
|
|
675
|
+
"fe'n": "fe'n", # ma' fe'n -> mae fe'n
|
|
676
|
+
"o": "o", # ma' o -> mae o
|
|
677
|
+
"o'n": "o'n", # ma' o'n -> mae o'n
|
|
678
|
+
"hi": "hi", # ma' hi -> mae hi
|
|
679
|
+
"hi'n": "hi'n", # ma' hi'n -> mae hi'n
|
|
680
|
+
"nhw": "nhw", # ma' nhw -> mae nhw
|
|
681
|
+
"nhw'n": "nhw'n", # ma' nhw'n -> mae nhw'n
|
|
682
|
+
|
|
683
|
+
# Possession markers (follower stays same)
|
|
684
|
+
"gen": "gen", # ma' gen i -> mae gen i
|
|
685
|
+
"genna": "genna", # ma' genna i -> mae genna i
|
|
686
|
+
"genno": "genno", # ma' genno fo -> mae genno fo
|
|
687
|
+
"genni": "genni", # ma' genni -> mae genni
|
|
688
|
+
"gyda": "gyda", # ma' gyda fi -> mae gyda fi
|
|
689
|
+
"gynnon": "gynnon", # ma' gynnon ni -> mae gynnon ni
|
|
690
|
+
"gynno": "gynno", # ma' gynno fo -> mae gynno fo
|
|
691
|
+
"gynni": "gynni", # ma' gynni hi -> mae gynni hi
|
|
692
|
+
"gynna": "gynna", # ma' gynna i -> mae gynna i
|
|
693
|
+
"gynnoch": "gynnoch", # ma' gynnoch chi -> mae gynnoch chi
|
|
694
|
+
"gennych": "gennych", # ma' gennych chi -> mae gennych chi
|
|
695
|
+
"gennyn": "gennyn", # ma' gennyn nhw -> mae gennyn nhw
|
|
696
|
+
"ganddyn": "ganddyn", # ma' ganddyn nhw -> mae ganddyn nhw
|
|
697
|
+
"ganddo": "ganddo", # ma' ganddo (ni/fo) -> mae ganddo (ni/fo)
|
|
698
|
+
|
|
699
|
+
|
|
700
|
+
# Demonstrative patterns (follower stays same or gets normalized)
|
|
701
|
+
"hwnna": "hwnna", # ma' hwnna -> mae hwnna
|
|
702
|
+
"hwnna'n": "hwnna'n", # ma' hwnna'n -> mae hwnna'n
|
|
703
|
+
"honna": "honna", # ma' honna -> mae honna
|
|
704
|
+
"honna'n": "honna'n", # ma' honna'n -> mae honna'n
|
|
705
|
+
"hynny": "hynny", # ma' hynny -> mae hynny
|
|
706
|
+
"hynny'n": "hynny'n", # ma' hynny'n -> mae hynny'n
|
|
707
|
+
"hynna": "hynna", # ma' hynna -> mae hynna
|
|
708
|
+
"hynna'n": "hynna'n", # ma' hynna'n -> mae hynna'n
|
|
709
|
+
"hwn": "hwn", # ma' hwn -> mae hwn
|
|
710
|
+
"hon": "hon", # ma' hon -> mae hon
|
|
711
|
+
|
|
712
|
+
# Modal patterns (follower normalized to standard form)
|
|
713
|
+
"raid": "rhaid", # ma' raid -> mae rhaid (must)
|
|
714
|
+
"rhaid": "rhaid", # ma' rhaid -> mae rhaid
|
|
715
|
+
"angen": "angen", # ma' angen -> mae angen (need)
|
|
716
|
+
"isio": "eisiau", # ma' isio -> mae eisiau (want)
|
|
717
|
+
"isho": "eisiau", # ma' isho -> mae eisiau
|
|
718
|
+
"isie": "eisiau", # ma' isie -> mae eisiau
|
|
719
|
+
"eisiau": "eisiau", # ma' eisiau -> mae eisiau
|
|
720
|
+
"'sha": "eisiau", # ma' 'sha -> mae eisiau
|
|
721
|
+
|
|
722
|
+
# Repetition (hesitation) (follower normalized to standard form)
|
|
723
|
+
"ma'": "mae", # ma' ma' -> mae mae
|
|
724
|
+
"ma'r": "mae'r", # ma' ma'r -> mae mae'r
|
|
725
|
+
"ma'n": "mae'n", # ma' ma'n -> mae mae'n
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
# ============================================================================
|
|
729
|
+
# CONTEXT RULES FOR 'DI
|
|
730
|
+
# ============================================================================
|
|
731
|
+
|
|
732
|
+
# Pronouns that precede 'di (safe to expand 'di → wedi after these)
|
|
733
|
+
DI_WEDI_SAFE_PRECEDERS = {
|
|
734
|
+
"dwi", "dw", "fi", "i", "ti", "ni", "chi", "nhw", "nw", "n'w",
|
|
735
|
+
"sy", "sydd", "oedd", "o'dd", "ma'", "mae", "e", "o"
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
# ============================================================================
|
|
739
|
+
# MULTI-WORD REPLACEMENTS
|
|
740
|
+
# ============================================================================
|
|
741
|
+
|
|
742
|
+
# Multi-word phrase replacements
|
|
743
|
+
# Format: "phrase in lowercase" : "normalized phrase"
|
|
744
|
+
# These are checked BEFORE single-word replacements
|
|
745
|
+
MULTI_WORD_REPLACEMENTS = {
|
|
746
|
+
"o's gynnoch": "oes gynnoch",
|
|
747
|
+
"o's gynno": "oes gynno",
|
|
748
|
+
"o's gynni": "oes gynni",
|
|
749
|
+
"o's gynna": "oes gynna",
|
|
750
|
+
"o's gen": "oes gen",
|
|
751
|
+
"o's gyda": "oes gyda",
|
|
752
|
+
"o's 'na": "oes yna",
|
|
753
|
+
"dan dred": "dan draed",
|
|
754
|
+
"dan dra'": "dan draed",
|
|
755
|
+
"neshi dweud": "nes i ddweud",
|
|
756
|
+
"neshi deud": "nes i ddeud",
|
|
757
|
+
"neshi wneud": "nes i wneud",
|
|
758
|
+
"neshi neud": "nes i neud",
|
|
759
|
+
"ti 'bo": "ti'n gwybod",
|
|
760
|
+
"ti bo": "ti'n gwybod",
|
|
761
|
+
"'na beth yw": "dyna beth yw",
|
|
762
|
+
"na beth yw": "dyna beth yw",
|
|
763
|
+
"fel 'na": "fel yna",
|
|
764
|
+
"fel 'a": "fel yna",
|
|
765
|
+
"fel na": "fel yna",
|
|
766
|
+
"dwi'm": "dw i ddim",
|
|
767
|
+
"dwim": "dw i ddim",
|
|
768
|
+
"dwi'n": "dw i'n",
|
|
769
|
+
}
|