Split Vietnamese syllable into onset and rime
Split Vietnamese syllable into onset and rime
Spliting library (written in Python): vietnamese_syllable_regex, (test)
Documentation here.
Các kí tự nguyên âm có dấu:
aàáảãạ
oòóỏõọ
ôồốổỗộ
ơờớởỡợ
uùúủũụ
ưừứửữự
ăằắẳẵặ
âầấẩẫậ
eèéẻẽẹ
êềếểễệ
iìíỉĩị
yỳýỷỹỵ
qu_
, gi_
“giê([mu]|[cpt]|ng?)” # -> iê_
“gin?|gi(p|ich)” # -> i*
- tính vần đằng sau qu/gi
```python
"quy.*" # -> i*
"qu(.+)" # rồi kiểm tra vần hợp lệ
"gi(.+)"
-> trường hợp iê_
biến thành yê_
"(i[^ê]|[^i]).+" # rồi kiểm tra vần hợp lệ
## nhóm `y_`
"yê([mu]|ng?)"
"yêt"
"[bdđlmnprsvx]|[cknp]?h|t[hr]?"
"k|n?gh"
"c|n?g"
"[aàáảãạeèéẻẽẹêềếểễệiìíỉĩịoòóỏõọôồốổỗộơờớởỡợuùúủũụưừứửữựyỳýỷỹỵ]"
"[oòóỏõọ][ae]"
"[uùúủũụ][êy]"
"o[aàáảãạeèéẻẽẹ]"
"u[êềếểễệyỳýỷỹỵ]"
gồm 2 nhóm:
[cpt]|ch
: sắc/nặng
"([ăâeou]|iê|o?a|u?ô|ươ)[cpt]"
"[êiơ][pt]"
"(ư|oă)[ct]"
"ooc"
"(oe|uâ|uyê?)t"
"([êi]|o?a|u[êy])ch"
[aimouy]|n[gh]?
: mọi dấu
"([iuư]|uy)a"
"([ouư]|o?a|u?ô|ư?ơ)i"
"o?[ae]o"
"([aâiư]|uy|ươ|i?ê)u"
"(o?a|u?â)y"
"([âeouư]|o?[aă]|iê|u?ô|ươ)(m|ng?)" # có m, n, g
"([êiơ]|oe)[mn]" # chỉ m, n
"uâng?" # chỉ n, ng
"uyê?n" # chỉ n
"oong" # chỉ ng
"([êi]|o?a|u[êy])nh"
"a([imouy]|n[gh]?)"
"a([cpt]|ch)"
"ă(m|ng?)"
"ă[cpt]"
"â([muy]|ng?)"
"â[cpt]"
"e([mo]|ng?)"
"e[cpt]"
"ê([mu]|nh?)"
"ê([pt]|ch)"
"i([amu]|nh?)"
"i([pt]|ch)"
"iê([mu]|ng?)"
"iê[cpt]"
"o([im]|ng?)"
"o[cpt]"
"oa([imoy]|n[gh]?)"
"oa([cpt]|ch)"
"oă(m|ng?)"
"oă[cpt]"
"oe[mno]"
"oet"
"oong"
"ooc"
"ô([im]|ng?)"
"ô[cpt]"
"ơ[imn]"
"ơ[pt]"
"u([aim]|ng?)"
"u[cpt]"
"uâ(y|ng?)"
"uât"
"uênh"
"uêch"
"uô([im]|ng?)"
"uô[cpt]"
"uơ"
"uy([au]|nh?)"
"uy([pt]|ch)"
"uyên"
"uyêt"
"ư([aimu]|ng?)"
"ư[ct]" # ư[cpt]
"ươ([imu]|ng?)"
"ươ[cpt]"
"yê([mu]|ng?)"
"yêt"