Syllable segmentation in Welsh
Tags: welsh languagePythonnatural language processing19 Mar 2017 - MawKernewek
Building on previous work on syllable segmentation, I have now made an initial version of syllable segmentation in Welsh. This currently is implemented within the syllabenn_ranna_kw module, and there is also a test script regexp_test_cy.py at bitbucket.org/davidtreth/taklow-kernewek.
The output of the test script looks like this:
The main program splitting text into syllables in text mode syllabenn_ranna_kw.py is now able to process Welsh text (possibly erroneously). I will create a TkInter GUI app for it once I have debugged it a bit more.
Here is Mae Hen Wlad Fy Nhadau treated by the program:
Linenn 1
Mae:1 hen:1 wlad:1 fy:1 nhadau:2 yn:1 annwyl:2 i:1 mi:1 ,:0
Niver a sylabennow y'n linenn = 11
Linenn 2
Gwlad:1 beirdd:1 a:1 chantorion:3 ,:0 enwogion:3 o:1 fri:1 ;:0
Niver a sylabennow y'n linenn = 11
Linenn 3
Ei:1 gwrol:1 ryfelwyr:3 ,:0 gwladgarwyr:3 tra:1 mad:1 ,:0
Niver a sylabennow y'n linenn = 10
Linenn 4
Dros:1 ryddid:2 collasant:3 eu:1 gwaed:1 .:0
Niver a sylabennow y'n linenn = 8
Linenn 5
Niver a sylabennow y'n linenn = 0
Linenn 6
Gwlad:1 ,:0 gwlad:1 ,:0 pleidiol:2 wyf:1 i'm:1 gwlad:1 .:0
Niver a sylabennow y'n linenn = 7
Linenn 7
Tra:1 môr:1 yn:1 fur:1 i'r:1 bur:1 hoff:1 bau:1 ,:0
Niver a sylabennow y'n linenn = 8
Linenn 8
O:1 bydded:2 i'r:1 hen:1 iaith:1 barhau:2 .:0
Niver a sylabennow y'n linenn = 8
Linenn 9
Niver a sylabennow y'n linenn = 0
Linenn 10
Hen:1 Gymru:2 fynyddig:3 ,:0 paradwys:3 y:1 bardd:1 ,:0
Niver a sylabennow y'n linenn = 11
Linenn 11
Pob:1 dyffryn:2 ,:0 pob:1 clogwyn:2 ,:0 i'm:1 golwg:2 sydd:1 hardd:1 ;:0
Niver a sylabennow y'n linenn = 11
Linenn 12
Trwy:1 deimlad:2 gwladgarol:3 ,:0 mor:1 swynol:2 yw:1 si:1
Niver a sylabennow y'n linenn = 11
Linenn 13
Ei:1 nentydd:2 ,:0 afonydd:3 ,:0 i:1 mi:1 .:0
Niver a sylabennow y'n linenn = 8
Linenn 14
Niver a sylabennow y'n linenn = 0
Linenn 15
Os:1 treisiodd:2 y:1 gelyn:2 fy:1 ngwlad:1 tan:1 ei:1 droed:1 ,:0
Niver a sylabennow y'n linenn = 11
Linenn 16
Mae:1 hen:1 iaith:1 y:1 Cymry:2 mor:1 fyw:1 ag:1 erioed:2 ,:0
Niver a sylabennow y'n linenn = 11
Linenn 17
Ni:1 luddiwyd:2 yr:1 awen:2 gan:1 erchyll:2 law:1 brad:1 ,:0
Niver a sylabennow y'n linenn = 11
Linenn 18
Na:1 thelyn:2 berseiniol:3 fy:1 ngwlad:1 .:0
Niver a sylabennow y'n linenn = 8
...
An ger yw: gwrol
Niver a syllabennow yw: 1
Hag yns i: ['gwrol']
S1: GWROL, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
...
An ger yw: pleidiol
Niver a syllabennow yw: 2
Hag yns i: ['pleid', 'iol']
S1: PLEID, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: iol, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 7
...
The word "gwrol" is assumed to have gwr as a consonant cluster, and is thus analysed as 1 syllable rather than 2 it has if w is pronounced as a vowel, which I is the correct Welsh pronunciation of this word, according to recordings of the Welsh national anthem.
Also, "pleidiol" is analysed as two syllables, interpreting the second i as a semi-vowel. It should really be 3 syllables, interpreting it as a vowel, i.e. ["pleid", "i", "ol"].
The Welsh syllable segmentation has a set of regular expressions defined for Welsh, and a subclass of the Syllabenn object, however the Ger object only has the special cases (of abnormal stress) defined for Cornish in the file datageryow.py so most abnormally stressed words will not be picked up.
An ger yw: Mae
Niver a syllabennow yw: 1
Hag yns i: ['Mae']
S1: MAE, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: hen
Niver a syllabennow yw: 1
Hag yns i: ['hen']
S1: HEN, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: wlad
Niver a syllabennow yw: 1
Hag yns i: ['wlad']
S1: WLAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: fy
Niver a syllabennow yw: 1
Hag yns i: ['fy']
S1: FY, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: nhadau
Niver a syllabennow yw: 2
Hag yns i: ['nhad', 'au']
S1: NHAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: au, V, hirder = [1], hirder kowal = 1
Hirder ger kowal = 5
An ger yw: yn
Niver a syllabennow yw: 1
Hag yns i: ['yn']
S1: YN, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: annwyl
Niver a syllabennow yw: 2
Hag yns i: ['ann', 'wyl']
S1: ANN, VC, hirder = [1, 1], hirder kowal = 2
S2: wyl, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 5
An ger yw: i
Niver a syllabennow yw: 1
Hag yns i: ['i']
S1: I, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: mi
Niver a syllabennow yw: 1
Hag yns i: ['mi']
S1: MI, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: Gwlad
Niver a syllabennow yw: 1
Hag yns i: ['Gwlad']
S1: GWLAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: beirdd
Niver a syllabennow yw: 1
Hag yns i: ['beirdd']
S1: BEIRDD, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: a
Niver a syllabennow yw: 1
Hag yns i: ['a']
S1: a, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: chantorion
Niver a syllabennow yw: 3
Hag yns i: ['chant', 'or', 'ion']
S1: chant, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: OR, VC, hirder = [2, 1], hirder kowal = 3
S3: ion, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 9
An ger yw: enwogion
Niver a syllabennow yw: 3
Hag yns i: ['en', 'wog', 'ion']
S1: en, VC, hirder = [1, 1], hirder kowal = 2
S2: WOG, CVC, hirder = [1, 2, 1], hirder kowal = 4
S3: ion, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 9
An ger yw: o
Niver a syllabennow yw: 1
Hag yns i: ['o']
S1: O, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: fri
Niver a syllabennow yw: 1
Hag yns i: ['fri']
S1: FRI, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: Ei
Niver a syllabennow yw: 1
Hag yns i: ['Ei']
S1: EI, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: gwrol
Niver a syllabennow yw: 1
Hag yns i: ['gwrol']
S1: GWROL, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: ryfelwyr
Niver a syllabennow yw: 3
Hag yns i: ['ryf', 'el', 'wyr']
S1: ryf, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: EL, VC, hirder = [2, 1], hirder kowal = 3
S3: wyr, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 9
An ger yw: gwladgarwyr
Niver a syllabennow yw: 3
Hag yns i: ['gwlad', 'gar', 'wyr']
S1: gwlad, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: GAR, CVC, hirder = [1, 2, 1], hirder kowal = 4
S3: wyr, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 10
An ger yw: tra
Niver a syllabennow yw: 1
Hag yns i: ['tra']
S1: TRA, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: mad
Niver a syllabennow yw: 1
Hag yns i: ['mad']
S1: MAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: Dros
Niver a syllabennow yw: 1
Hag yns i: ['Dros']
S1: DROS, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: ryddid
Niver a syllabennow yw: 2
Hag yns i: ['rydd', 'id']
S1: RYDD, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: id, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: collasant
Niver a syllabennow yw: 3
Hag yns i: ['coll', 'as', 'ant']
S1: coll, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: AS, VC, hirder = [2, 1], hirder kowal = 3
S3: ant, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 8
An ger yw: eu
Niver a syllabennow yw: 1
Hag yns i: ['eu']
S1: EU, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: gwaed
Niver a syllabennow yw: 1
Hag yns i: ['gwaed']
S1: GWAED, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: Gwlad
Niver a syllabennow yw: 1
Hag yns i: ['Gwlad']
S1: GWLAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: gwlad
Niver a syllabennow yw: 1
Hag yns i: ['gwlad']
S1: GWLAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: pleidiol
Niver a syllabennow yw: 2
Hag yns i: ['pleid', 'iol']
S1: PLEID, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: iol, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 7
An ger yw: wyf
Niver a syllabennow yw: 1
Hag yns i: ['wyf']
S1: WYF, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: i'm
Niver a syllabennow yw: 1
Hag yns i: ["i'm"]
S1: I'M, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: gwlad
Niver a syllabennow yw: 1
Hag yns i: ['gwlad']
S1: GWLAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: Tra
Niver a syllabennow yw: 1
Hag yns i: ['Tra']
S1: TRA, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: môr
Niver a syllabennow yw: 1
Hag yns i: ['môr']
S1: MÔR, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: yn
Niver a syllabennow yw: 1
Hag yns i: ['yn']
S1: YN, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: fur
Niver a syllabennow yw: 1
Hag yns i: ['fur']
S1: FUR, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: i'r
Niver a syllabennow yw: 1
Hag yns i: ["i'r"]
S1: I'R, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: bur
Niver a syllabennow yw: 1
Hag yns i: ['bur']
S1: BUR, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: hoff
Niver a syllabennow yw: 1
Hag yns i: ['hoff']
S1: HOFF, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: bau
Niver a syllabennow yw: 1
Hag yns i: ['bau']
S1: BAU, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: O
Niver a syllabennow yw: 1
Hag yns i: ['O']
S1: O, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: bydded
Niver a syllabennow yw: 2
Hag yns i: ['bydd', 'ed']
S1: BYDD, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: ed, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: i'r
Niver a syllabennow yw: 1
Hag yns i: ["i'r"]
S1: I'R, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: hen
Niver a syllabennow yw: 1
Hag yns i: ['hen']
S1: HEN, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: iaith
Niver a syllabennow yw: 1
Hag yns i: ['iaith']
S1: IAITH, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: barhau
Niver a syllabennow yw: 2
Hag yns i: ['bar', 'hau']
S1: BAR, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: hau, CV, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: Hen
Niver a syllabennow yw: 1
Hag yns i: ['Hen']
S1: HEN, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: Gymru
Niver a syllabennow yw: 2
Hag yns i: ['Gym', 'ru']
S1: GYM, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: ru, CV, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: fynyddig
Niver a syllabennow yw: 3
Hag yns i: ['fyn', 'ydd', 'ig']
S1: fyn, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: YDD, VC, hirder = [2, 1], hirder kowal = 3
S3: ig, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 8
An ger yw: paradwys
Niver a syllabennow yw: 3
Hag yns i: ['par', 'ad', 'wys']
S1: par, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: AD, VC, hirder = [2, 1], hirder kowal = 3
S3: wys, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 9
An ger yw: y
Niver a syllabennow yw: 1
Hag yns i: ['y']
S1: y, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: bardd
Niver a syllabennow yw: 1
Hag yns i: ['bardd']
S1: BARDD, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: Pob
Niver a syllabennow yw: 1
Hag yns i: ['Pob']
S1: POB, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: dyffryn
Niver a syllabennow yw: 2
Hag yns i: ['dyff', 'ryn']
S1: DYFF, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: ryn, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 7
An ger yw: pob
Niver a syllabennow yw: 1
Hag yns i: ['pob']
S1: POB, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: clogwyn
Niver a syllabennow yw: 2
Hag yns i: ['clog', 'wyn']
S1: CLOG, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: wyn, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 7
An ger yw: i'm
Niver a syllabennow yw: 1
Hag yns i: ["i'm"]
S1: I'M, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: golwg
Niver a syllabennow yw: 2
Hag yns i: ['gol', 'wg']
S1: GOL, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: wg, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: sydd
Niver a syllabennow yw: 1
Hag yns i: ['sydd']
S1: SYDD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: hardd
Niver a syllabennow yw: 1
Hag yns i: ['hardd']
S1: HARDD, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: Trwy
Niver a syllabennow yw: 1
Hag yns i: ['Trwy']
S1: TRWY, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: deimlad
Niver a syllabennow yw: 2
Hag yns i: ['deim', 'lad']
S1: DEIM, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: lad, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 7
An ger yw: gwladgarol
Niver a syllabennow yw: 3
Hag yns i: ['gwlad', 'gar', 'ol']
S1: gwlad, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: GAR, CVC, hirder = [1, 2, 1], hirder kowal = 4
S3: ol, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 9
An ger yw: mor
Niver a syllabennow yw: 1
Hag yns i: ['mor']
S1: MOR, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: swynol
Niver a syllabennow yw: 2
Hag yns i: ['swyn', 'ol']
S1: SWYN, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: ol, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: yw
Niver a syllabennow yw: 1
Hag yns i: ['yw']
S1: YW, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: si
Niver a syllabennow yw: 1
Hag yns i: ['si']
S1: SI, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: Ei
Niver a syllabennow yw: 1
Hag yns i: ['Ei']
S1: EI, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: nentydd
Niver a syllabennow yw: 2
Hag yns i: ['nent', 'ydd']
S1: NENT, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: ydd, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 5
An ger yw: afonydd
Niver a syllabennow yw: 3
Hag yns i: ['af', 'on', 'ydd']
S1: af, VC, hirder = [1, 1], hirder kowal = 2
S2: ON, VC, hirder = [2, 1], hirder kowal = 3
S3: ydd, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 7
An ger yw: i
Niver a syllabennow yw: 1
Hag yns i: ['i']
S1: I, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: mi
Niver a syllabennow yw: 1
Hag yns i: ['mi']
S1: MI, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: Os
Niver a syllabennow yw: 1
Hag yns i: ['Os']
S1: OS, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: treisiodd
Niver a syllabennow yw: 2
Hag yns i: ['treis', 'iodd']
S1: TREIS, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: iodd, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 7
An ger yw: y
Niver a syllabennow yw: 1
Hag yns i: ['y']
S1: y, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: gelyn
Niver a syllabennow yw: 2
Hag yns i: ['gel', 'yn']
S1: GEL, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: yn, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: fy
Niver a syllabennow yw: 1
Hag yns i: ['fy']
S1: FY, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: ngwlad
Niver a syllabennow yw: 1
Hag yns i: ['ngwlad']
S1: NGWLAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: tan
Niver a syllabennow yw: 1
Hag yns i: ['tan']
S1: TAN, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: ei
Niver a syllabennow yw: 1
Hag yns i: ['ei']
S1: EI, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: droed
Niver a syllabennow yw: 1
Hag yns i: ['droed']
S1: DROED, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: Mae
Niver a syllabennow yw: 1
Hag yns i: ['Mae']
S1: MAE, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: hen
Niver a syllabennow yw: 1
Hag yns i: ['hen']
S1: HEN, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: iaith
Niver a syllabennow yw: 1
Hag yns i: ['iaith']
S1: IAITH, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: y
Niver a syllabennow yw: 1
Hag yns i: ['y']
S1: y, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: Cymry
Niver a syllabennow yw: 2
Hag yns i: ['Cym', 'ry']
S1: CYM, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: ry, CV, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: mor
Niver a syllabennow yw: 1
Hag yns i: ['mor']
S1: MOR, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: fyw
Niver a syllabennow yw: 1
Hag yns i: ['fyw']
S1: FYW, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: ag
Niver a syllabennow yw: 1
Hag yns i: ['ag']
S1: AG, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: erioed
Niver a syllabennow yw: 2
Hag yns i: ['er', 'ioed']
S1: ER, VC, hirder = [2, 1], hirder kowal = 3
S2: ioed, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 6
An ger yw: Ni
Niver a syllabennow yw: 1
Hag yns i: ['Ni']
S1: NI, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: luddiwyd
Niver a syllabennow yw: 2
Hag yns i: ['ludd', 'iwyd']
S1: LUDD, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: iwyd, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 7
An ger yw: yr
Niver a syllabennow yw: 1
Hag yns i: ['yr']
S1: YR, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: awen
Niver a syllabennow yw: 2
Hag yns i: ['aw', 'en']
S1: AW, V, hirder = [2], hirder kowal = 2
S2: en, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 4
An ger yw: gan
Niver a syllabennow yw: 1
Hag yns i: ['gan']
S1: GAN, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: erchyll
Niver a syllabennow yw: 2
Hag yns i: ['erch', 'yll']
S1: ERCH, VC, hirder = [1, 1], hirder kowal = 2
S2: yll, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 4
An ger yw: law
Niver a syllabennow yw: 1
Hag yns i: ['law']
S1: LAW, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: brad
Niver a syllabennow yw: 1
Hag yns i: ['brad']
S1: BRAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: Na
Niver a syllabennow yw: 1
Hag yns i: ['Na']
S1: Na, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: thelyn
Niver a syllabennow yw: 2
Hag yns i: ['thel', 'yn']
S1: THEL, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: yn, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: berseiniol
Niver a syllabennow yw: 3
Hag yns i: ['bers', 'ein', 'iol']
S1: bers, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: EIN, VC, hirder = [2, 1], hirder kowal = 3
S3: iol, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 9
An ger yw: fy
Niver a syllabennow yw: 1
Hag yns i: ['fy']
S1: FY, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: ngwlad
Niver a syllabennow yw: 1
Hag yns i: ['ngwlad']
S1: NGWLAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
The output of the test script looks like this:
This is a method, matching backwards from the end of the word. |
The main program splitting text into syllables in text mode syllabenn_ranna_kw.py is now able to process Welsh text (possibly erroneously). I will create a TkInter GUI app for it once I have debugged it a bit more.
Here is Mae Hen Wlad Fy Nhadau treated by the program:
Output in line mode
python3 syllabenn_ranna_kw.py --fwd --line --cyregexp maehenwlad.txtLinenn 1
Mae:1 hen:1 wlad:1 fy:1 nhadau:2 yn:1 annwyl:2 i:1 mi:1 ,:0
Niver a sylabennow y'n linenn = 11
Linenn 2
Gwlad:1 beirdd:1 a:1 chantorion:3 ,:0 enwogion:3 o:1 fri:1 ;:0
Niver a sylabennow y'n linenn = 11
Linenn 3
Ei:1 gwrol:1 ryfelwyr:3 ,:0 gwladgarwyr:3 tra:1 mad:1 ,:0
Niver a sylabennow y'n linenn = 10
Linenn 4
Dros:1 ryddid:2 collasant:3 eu:1 gwaed:1 .:0
Niver a sylabennow y'n linenn = 8
Linenn 5
Niver a sylabennow y'n linenn = 0
Linenn 6
Gwlad:1 ,:0 gwlad:1 ,:0 pleidiol:2 wyf:1 i'm:1 gwlad:1 .:0
Niver a sylabennow y'n linenn = 7
Linenn 7
Tra:1 môr:1 yn:1 fur:1 i'r:1 bur:1 hoff:1 bau:1 ,:0
Niver a sylabennow y'n linenn = 8
Linenn 8
O:1 bydded:2 i'r:1 hen:1 iaith:1 barhau:2 .:0
Niver a sylabennow y'n linenn = 8
Linenn 9
Niver a sylabennow y'n linenn = 0
Linenn 10
Hen:1 Gymru:2 fynyddig:3 ,:0 paradwys:3 y:1 bardd:1 ,:0
Niver a sylabennow y'n linenn = 11
Linenn 11
Pob:1 dyffryn:2 ,:0 pob:1 clogwyn:2 ,:0 i'm:1 golwg:2 sydd:1 hardd:1 ;:0
Niver a sylabennow y'n linenn = 11
Linenn 12
Trwy:1 deimlad:2 gwladgarol:3 ,:0 mor:1 swynol:2 yw:1 si:1
Niver a sylabennow y'n linenn = 11
Linenn 13
Ei:1 nentydd:2 ,:0 afonydd:3 ,:0 i:1 mi:1 .:0
Niver a sylabennow y'n linenn = 8
Linenn 14
Niver a sylabennow y'n linenn = 0
Linenn 15
Os:1 treisiodd:2 y:1 gelyn:2 fy:1 ngwlad:1 tan:1 ei:1 droed:1 ,:0
Niver a sylabennow y'n linenn = 11
Linenn 16
Mae:1 hen:1 iaith:1 y:1 Cymry:2 mor:1 fyw:1 ag:1 erioed:2 ,:0
Niver a sylabennow y'n linenn = 11
Linenn 17
Ni:1 luddiwyd:2 yr:1 awen:2 gan:1 erchyll:2 law:1 brad:1 ,:0
Niver a sylabennow y'n linenn = 11
Linenn 18
Na:1 thelyn:2 berseiniol:3 fy:1 ngwlad:1 .:0
Niver a sylabennow y'n linenn = 8
Selected words in long-form
python3 syllabenn_ranna_kw.py --fwd --cyregexp maehenwlad.txt | more...
An ger yw: gwrol
Niver a syllabennow yw: 1
Hag yns i: ['gwrol']
S1: GWROL, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
...
An ger yw: pleidiol
Niver a syllabennow yw: 2
Hag yns i: ['pleid', 'iol']
S1: PLEID, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: iol, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 7
...
The word "gwrol" is assumed to have gwr as a consonant cluster, and is thus analysed as 1 syllable rather than 2 it has if w is pronounced as a vowel, which I is the correct Welsh pronunciation of this word, according to recordings of the Welsh national anthem.
Also, "pleidiol" is analysed as two syllables, interpreting the second i as a semi-vowel. It should really be 3 syllables, interpreting it as a vowel, i.e. ["pleid", "i", "ol"].
The Welsh syllable segmentation has a set of regular expressions defined for Welsh, and a subclass of the Syllabenn object, however the Ger object only has the special cases (of abnormal stress) defined for Cornish in the file datageryow.py so most abnormally stressed words will not be picked up.
Appendix, full output of Mae Hen Wlad Fy Nhadau:
python3 syllabenn_ranna_kw.py --fwd --cyregexp maehenwlad.txtAn ger yw: Mae
Niver a syllabennow yw: 1
Hag yns i: ['Mae']
S1: MAE, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: hen
Niver a syllabennow yw: 1
Hag yns i: ['hen']
S1: HEN, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: wlad
Niver a syllabennow yw: 1
Hag yns i: ['wlad']
S1: WLAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: fy
Niver a syllabennow yw: 1
Hag yns i: ['fy']
S1: FY, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: nhadau
Niver a syllabennow yw: 2
Hag yns i: ['nhad', 'au']
S1: NHAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: au, V, hirder = [1], hirder kowal = 1
Hirder ger kowal = 5
An ger yw: yn
Niver a syllabennow yw: 1
Hag yns i: ['yn']
S1: YN, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: annwyl
Niver a syllabennow yw: 2
Hag yns i: ['ann', 'wyl']
S1: ANN, VC, hirder = [1, 1], hirder kowal = 2
S2: wyl, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 5
An ger yw: i
Niver a syllabennow yw: 1
Hag yns i: ['i']
S1: I, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: mi
Niver a syllabennow yw: 1
Hag yns i: ['mi']
S1: MI, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: Gwlad
Niver a syllabennow yw: 1
Hag yns i: ['Gwlad']
S1: GWLAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: beirdd
Niver a syllabennow yw: 1
Hag yns i: ['beirdd']
S1: BEIRDD, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: a
Niver a syllabennow yw: 1
Hag yns i: ['a']
S1: a, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: chantorion
Niver a syllabennow yw: 3
Hag yns i: ['chant', 'or', 'ion']
S1: chant, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: OR, VC, hirder = [2, 1], hirder kowal = 3
S3: ion, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 9
An ger yw: enwogion
Niver a syllabennow yw: 3
Hag yns i: ['en', 'wog', 'ion']
S1: en, VC, hirder = [1, 1], hirder kowal = 2
S2: WOG, CVC, hirder = [1, 2, 1], hirder kowal = 4
S3: ion, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 9
An ger yw: o
Niver a syllabennow yw: 1
Hag yns i: ['o']
S1: O, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: fri
Niver a syllabennow yw: 1
Hag yns i: ['fri']
S1: FRI, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: Ei
Niver a syllabennow yw: 1
Hag yns i: ['Ei']
S1: EI, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: gwrol
Niver a syllabennow yw: 1
Hag yns i: ['gwrol']
S1: GWROL, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: ryfelwyr
Niver a syllabennow yw: 3
Hag yns i: ['ryf', 'el', 'wyr']
S1: ryf, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: EL, VC, hirder = [2, 1], hirder kowal = 3
S3: wyr, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 9
An ger yw: gwladgarwyr
Niver a syllabennow yw: 3
Hag yns i: ['gwlad', 'gar', 'wyr']
S1: gwlad, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: GAR, CVC, hirder = [1, 2, 1], hirder kowal = 4
S3: wyr, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 10
An ger yw: tra
Niver a syllabennow yw: 1
Hag yns i: ['tra']
S1: TRA, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: mad
Niver a syllabennow yw: 1
Hag yns i: ['mad']
S1: MAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: Dros
Niver a syllabennow yw: 1
Hag yns i: ['Dros']
S1: DROS, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: ryddid
Niver a syllabennow yw: 2
Hag yns i: ['rydd', 'id']
S1: RYDD, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: id, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: collasant
Niver a syllabennow yw: 3
Hag yns i: ['coll', 'as', 'ant']
S1: coll, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: AS, VC, hirder = [2, 1], hirder kowal = 3
S3: ant, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 8
An ger yw: eu
Niver a syllabennow yw: 1
Hag yns i: ['eu']
S1: EU, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: gwaed
Niver a syllabennow yw: 1
Hag yns i: ['gwaed']
S1: GWAED, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: Gwlad
Niver a syllabennow yw: 1
Hag yns i: ['Gwlad']
S1: GWLAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: gwlad
Niver a syllabennow yw: 1
Hag yns i: ['gwlad']
S1: GWLAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: pleidiol
Niver a syllabennow yw: 2
Hag yns i: ['pleid', 'iol']
S1: PLEID, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: iol, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 7
An ger yw: wyf
Niver a syllabennow yw: 1
Hag yns i: ['wyf']
S1: WYF, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: i'm
Niver a syllabennow yw: 1
Hag yns i: ["i'm"]
S1: I'M, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: gwlad
Niver a syllabennow yw: 1
Hag yns i: ['gwlad']
S1: GWLAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: Tra
Niver a syllabennow yw: 1
Hag yns i: ['Tra']
S1: TRA, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: môr
Niver a syllabennow yw: 1
Hag yns i: ['môr']
S1: MÔR, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: yn
Niver a syllabennow yw: 1
Hag yns i: ['yn']
S1: YN, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: fur
Niver a syllabennow yw: 1
Hag yns i: ['fur']
S1: FUR, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: i'r
Niver a syllabennow yw: 1
Hag yns i: ["i'r"]
S1: I'R, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: bur
Niver a syllabennow yw: 1
Hag yns i: ['bur']
S1: BUR, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: hoff
Niver a syllabennow yw: 1
Hag yns i: ['hoff']
S1: HOFF, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: bau
Niver a syllabennow yw: 1
Hag yns i: ['bau']
S1: BAU, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: O
Niver a syllabennow yw: 1
Hag yns i: ['O']
S1: O, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: bydded
Niver a syllabennow yw: 2
Hag yns i: ['bydd', 'ed']
S1: BYDD, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: ed, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: i'r
Niver a syllabennow yw: 1
Hag yns i: ["i'r"]
S1: I'R, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: hen
Niver a syllabennow yw: 1
Hag yns i: ['hen']
S1: HEN, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: iaith
Niver a syllabennow yw: 1
Hag yns i: ['iaith']
S1: IAITH, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: barhau
Niver a syllabennow yw: 2
Hag yns i: ['bar', 'hau']
S1: BAR, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: hau, CV, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: Hen
Niver a syllabennow yw: 1
Hag yns i: ['Hen']
S1: HEN, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: Gymru
Niver a syllabennow yw: 2
Hag yns i: ['Gym', 'ru']
S1: GYM, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: ru, CV, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: fynyddig
Niver a syllabennow yw: 3
Hag yns i: ['fyn', 'ydd', 'ig']
S1: fyn, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: YDD, VC, hirder = [2, 1], hirder kowal = 3
S3: ig, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 8
An ger yw: paradwys
Niver a syllabennow yw: 3
Hag yns i: ['par', 'ad', 'wys']
S1: par, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: AD, VC, hirder = [2, 1], hirder kowal = 3
S3: wys, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 9
An ger yw: y
Niver a syllabennow yw: 1
Hag yns i: ['y']
S1: y, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: bardd
Niver a syllabennow yw: 1
Hag yns i: ['bardd']
S1: BARDD, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: Pob
Niver a syllabennow yw: 1
Hag yns i: ['Pob']
S1: POB, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: dyffryn
Niver a syllabennow yw: 2
Hag yns i: ['dyff', 'ryn']
S1: DYFF, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: ryn, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 7
An ger yw: pob
Niver a syllabennow yw: 1
Hag yns i: ['pob']
S1: POB, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: clogwyn
Niver a syllabennow yw: 2
Hag yns i: ['clog', 'wyn']
S1: CLOG, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: wyn, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 7
An ger yw: i'm
Niver a syllabennow yw: 1
Hag yns i: ["i'm"]
S1: I'M, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: golwg
Niver a syllabennow yw: 2
Hag yns i: ['gol', 'wg']
S1: GOL, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: wg, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: sydd
Niver a syllabennow yw: 1
Hag yns i: ['sydd']
S1: SYDD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: hardd
Niver a syllabennow yw: 1
Hag yns i: ['hardd']
S1: HARDD, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: Trwy
Niver a syllabennow yw: 1
Hag yns i: ['Trwy']
S1: TRWY, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: deimlad
Niver a syllabennow yw: 2
Hag yns i: ['deim', 'lad']
S1: DEIM, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: lad, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 7
An ger yw: gwladgarol
Niver a syllabennow yw: 3
Hag yns i: ['gwlad', 'gar', 'ol']
S1: gwlad, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: GAR, CVC, hirder = [1, 2, 1], hirder kowal = 4
S3: ol, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 9
An ger yw: mor
Niver a syllabennow yw: 1
Hag yns i: ['mor']
S1: MOR, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: swynol
Niver a syllabennow yw: 2
Hag yns i: ['swyn', 'ol']
S1: SWYN, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: ol, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: yw
Niver a syllabennow yw: 1
Hag yns i: ['yw']
S1: YW, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: si
Niver a syllabennow yw: 1
Hag yns i: ['si']
S1: SI, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: Ei
Niver a syllabennow yw: 1
Hag yns i: ['Ei']
S1: EI, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: nentydd
Niver a syllabennow yw: 2
Hag yns i: ['nent', 'ydd']
S1: NENT, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: ydd, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 5
An ger yw: afonydd
Niver a syllabennow yw: 3
Hag yns i: ['af', 'on', 'ydd']
S1: af, VC, hirder = [1, 1], hirder kowal = 2
S2: ON, VC, hirder = [2, 1], hirder kowal = 3
S3: ydd, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 7
An ger yw: i
Niver a syllabennow yw: 1
Hag yns i: ['i']
S1: I, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: mi
Niver a syllabennow yw: 1
Hag yns i: ['mi']
S1: MI, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: Os
Niver a syllabennow yw: 1
Hag yns i: ['Os']
S1: OS, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: treisiodd
Niver a syllabennow yw: 2
Hag yns i: ['treis', 'iodd']
S1: TREIS, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: iodd, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 7
An ger yw: y
Niver a syllabennow yw: 1
Hag yns i: ['y']
S1: y, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: gelyn
Niver a syllabennow yw: 2
Hag yns i: ['gel', 'yn']
S1: GEL, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: yn, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: fy
Niver a syllabennow yw: 1
Hag yns i: ['fy']
S1: FY, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: ngwlad
Niver a syllabennow yw: 1
Hag yns i: ['ngwlad']
S1: NGWLAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: tan
Niver a syllabennow yw: 1
Hag yns i: ['tan']
S1: TAN, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: ei
Niver a syllabennow yw: 1
Hag yns i: ['ei']
S1: EI, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: droed
Niver a syllabennow yw: 1
Hag yns i: ['droed']
S1: DROED, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: Mae
Niver a syllabennow yw: 1
Hag yns i: ['Mae']
S1: MAE, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: hen
Niver a syllabennow yw: 1
Hag yns i: ['hen']
S1: HEN, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: iaith
Niver a syllabennow yw: 1
Hag yns i: ['iaith']
S1: IAITH, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: y
Niver a syllabennow yw: 1
Hag yns i: ['y']
S1: y, V, hirder = [2], hirder kowal = 2
Hirder ger kowal = 2
An ger yw: Cymry
Niver a syllabennow yw: 2
Hag yns i: ['Cym', 'ry']
S1: CYM, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: ry, CV, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: mor
Niver a syllabennow yw: 1
Hag yns i: ['mor']
S1: MOR, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: fyw
Niver a syllabennow yw: 1
Hag yns i: ['fyw']
S1: FYW, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: ag
Niver a syllabennow yw: 1
Hag yns i: ['ag']
S1: AG, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: erioed
Niver a syllabennow yw: 2
Hag yns i: ['er', 'ioed']
S1: ER, VC, hirder = [2, 1], hirder kowal = 3
S2: ioed, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 6
An ger yw: Ni
Niver a syllabennow yw: 1
Hag yns i: ['Ni']
S1: NI, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: luddiwyd
Niver a syllabennow yw: 2
Hag yns i: ['ludd', 'iwyd']
S1: LUDD, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: iwyd, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 7
An ger yw: yr
Niver a syllabennow yw: 1
Hag yns i: ['yr']
S1: YR, VC, hirder = [2, 1], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: awen
Niver a syllabennow yw: 2
Hag yns i: ['aw', 'en']
S1: AW, V, hirder = [2], hirder kowal = 2
S2: en, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 4
An ger yw: gan
Niver a syllabennow yw: 1
Hag yns i: ['gan']
S1: GAN, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: erchyll
Niver a syllabennow yw: 2
Hag yns i: ['erch', 'yll']
S1: ERCH, VC, hirder = [1, 1], hirder kowal = 2
S2: yll, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 4
An ger yw: law
Niver a syllabennow yw: 1
Hag yns i: ['law']
S1: LAW, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: brad
Niver a syllabennow yw: 1
Hag yns i: ['brad']
S1: BRAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4
An ger yw: Na
Niver a syllabennow yw: 1
Hag yns i: ['Na']
S1: Na, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: thelyn
Niver a syllabennow yw: 2
Hag yns i: ['thel', 'yn']
S1: THEL, CVC, hirder = [1, 2, 1], hirder kowal = 4
S2: yn, VC, hirder = [1, 1], hirder kowal = 2
Hirder ger kowal = 6
An ger yw: berseiniol
Niver a syllabennow yw: 3
Hag yns i: ['bers', 'ein', 'iol']
S1: bers, CVC, hirder = [1, 1, 1], hirder kowal = 3
S2: EIN, VC, hirder = [2, 1], hirder kowal = 3
S3: iol, CVC, hirder = [1, 1, 1], hirder kowal = 3
Hirder ger kowal = 9
An ger yw: fy
Niver a syllabennow yw: 1
Hag yns i: ['fy']
S1: FY, CV, hirder = [1, 2], hirder kowal = 3
Hirder ger kowal = 3
An ger yw: ngwlad
Niver a syllabennow yw: 1
Hag yns i: ['ngwlad']
S1: NGWLAD, CVC, hirder = [1, 2, 1], hirder kowal = 4
Hirder ger kowal = 4