项目作者: tunc2112

项目描述 :
Split Vietnamese syllable into onset and rime
高级语言: Python
项目地址: git://github.com/tunc2112/vietnamese-syllable-regex.git
创建时间: 2020-01-26T07:26:24Z
项目社区:https://github.com/tunc2112/vietnamese-syllable-regex

开源协议:MIT License

下载


vietnamese-syllable-regex

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:

  1. aàáảãạ
  2. oòóỏõọ
  3. ôồốổỗộ
  4. ơờớởỡợ
  5. uùúủũụ
  6. ưừứửữự
  7. ăằắẳẵặ
  8. âầấẩẫậ
  9. eèéẻẽẹ
  10. êềếểễệ
  11. iìíỉĩị
  12. yỳýỷỹỵ

phụ âm

phụ âm đặc biệt

nhóm qu_, gi_

  • tính vần u/i
    ```python
    “quôc” # -> uôc, chỉ có 1 TH là “quốc”

“giê([mu]|[cpt]|ng?)” # -> iê_
“gin?|gi(p|ich)” # -> i*

  1. - tính vn đằng sau qu/gi
  2. ```python
  3. "quy.*" # -> i*
  4. "qu(.+)" # rồi kiểm tra vần hợp lệ
  5. "gi(.+)"

không có phụ âm đầu, chỉ có vần

-> trường hợp iê_ biến thành yê_

  1. "(i[^ê]|[^i]).+" # rồi kiểm tra vần hợp lệ
  2. ## nhóm `y_`
  3. "yê([mu]|ng?)"
  4. "yêt"

phụ âm thường

nhóm đi với mọi vần

  1. "[bdđlmnprsvx]|[cknp]?h|t[hr]?"

nhóm eiy (“eêiy”):

  1. "k|n?gh"

nhóm aou (“aăâoôơuư”):

  1. "c|n?g"

vần

vần đơn

  1. "[aàáảãạeèéẻẽẹêềếểễệiìíỉĩịoòóỏõọôồốổỗộơờớởỡợuùúủũụưừứửữựyỳýỷỹỵ]"

“oa”, “oe”, “uê”, “uy” có 2 cách bỏ dấu

bỏ dấu kiểu cũ

  1. "[oòóỏõọ][ae]"
  2. "[uùúủũụ][êy]"

bỏ dấu kiểu mới

  1. "o[aàáảãạeèéẻẽẹ]"
  2. "u[êềếểễệyỳýỷỹỵ]"

bình thường

gồm 2 nhóm:

  • sắc/nặng
  • mọi dấu

rút gọn

[cpt]|ch: sắc/nặng
  1. "([ăâeou]|iê|o?a|u?ô|ươ)[cpt]"
  2. "[êiơ][pt]"
  3. "(ư|oă)[ct]"
  4. "ooc"
  5. "(oe|uâ|uyê?)t"
  6. "([êi]|o?a|u[êy])ch"
[aimouy]|n[gh]?: mọi dấu
  1. "([iuư]|uy)a"
  2. "([ouư]|o?a|u?ô|ư?ơ)i"
  3. "o?[ae]o"
  4. "([aâiư]|uy|ươ|i?ê)u"
  5. "(o?a|u?â)y"
  6. "([âeouư]|o?[aă]|iê|u?ô|ươ)(m|ng?)" # có m, n, g
  7. "([êiơ]|oe)[mn]" # chỉ m, n
  8. "uâng?" # chỉ n, ng
  9. "uyê?n" # chỉ n
  10. "oong" # chỉ ng
  11. "([êi]|o?a|u[êy])nh"

đầy đủ

  1. "a([imouy]|n[gh]?)"
  2. "a([cpt]|ch)"
  3. "ă(m|ng?)"
  4. "ă[cpt]"
  5. "â([muy]|ng?)"
  6. "â[cpt]"
  7. "e([mo]|ng?)"
  8. "e[cpt]"
  9. "ê([mu]|nh?)"
  10. "ê([pt]|ch)"
  11. "i([amu]|nh?)"
  12. "i([pt]|ch)"
  13. "iê([mu]|ng?)"
  14. "iê[cpt]"
  15. "o([im]|ng?)"
  16. "o[cpt]"
  17. "oa([imoy]|n[gh]?)"
  18. "oa([cpt]|ch)"
  19. "oă(m|ng?)"
  20. "oă[cpt]"
  21. "oe[mno]"
  22. "oet"
  23. "oong"
  24. "ooc"
  25. "ô([im]|ng?)"
  26. "ô[cpt]"
  27. "ơ[imn]"
  28. "ơ[pt]"
  29. "u([aim]|ng?)"
  30. "u[cpt]"
  31. "uâ(y|ng?)"
  32. "uât"
  33. "uênh"
  34. "uêch"
  35. "uô([im]|ng?)"
  36. "uô[cpt]"
  37. "uơ"
  38. "uy([au]|nh?)"
  39. "uy([pt]|ch)"
  40. "uyên"
  41. "uyêt"
  42. "ư([aimu]|ng?)"
  43. "ư[ct]" # ư[cpt]
  44. "ươ([imu]|ng?)"
  45. "ươ[cpt]"
  46. "yê([mu]|ng?)"
  47. "yêt"

Tham khảo