-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconstants.py
74 lines (67 loc) · 4.33 KB
/
constants.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
vowels = "aeiouüAEIOUÜ"
vowels_with_tones = "āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜ"
# vowels_with_tones.upper() = "ĀÁǍÀĒÉĚÈĪÍǏÌŌÓǑÒŪÚǓÙǕǗǙǛ"
# vowels_with_tones + vowels_with_tones.upper = "āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜĀÁǍÀĒÉĚÈĪÍǏÌŌÓǑÒŪÚǓÙǕǗǙǛ"
# NOTE: add apostrophe between syllables before a, e, and o ( http://pinyin.info/romanization/hanyu/apostrophes.html )
# Add tone mark to a, e, o in ou, then final vowel
initials = [
"b", "p", "m", "f", "d", "t", "n", "l", "g", "k", "h", "j", "q", "x", "zh",
"ch", "sh", "r", "z", "c", "s", "y"
# y is not a traditional initial but helpful for text processing b/c it is
# used in place of i at the beginning of syllables
]
finals = [
# Group a Finals
"a", "o", "e", "ai", "ei", "ao", "ou", "an", "en", "ang", "eng", "er",
# Group i Finals
"i", "ia", "io", "ie", "iai", "iao", "iu", "ian", "in", "iang", "ing",
# Group u Finals
"u", "ua", "uo", "uai", "ui", "uan", "un", "uang", "ong",
# Group ü Finals
"ü", "üe", "üan", "ün", "iong", "ue"
# ue is not a traditional final but used in place of üe after j,q,x,y
]
valid_pinyin_syllables = [
"a", "ai", "an", "ang", "ao", "ba", "bai", "ban", "bang", "bao", "bei",
"ben", "beng", "bi", "bian", "biao", "bie", "bin", "bing", "bo", "bu",
"ca", "cai", "can", "cang", "cao", "ce", "cen", "ceng", "cha", "chai",
"chan", "chang", "chao", "che", "chen", "cheng", "chi", "chong", "chou",
"chu", "chua", "chuai", "chuan", "chuang", "chui", "chun", "chuo", "ci",
"cong", "cou", "cu", "cuan", "cui", "cun", "cuo", "da", "dai", "dan",
"dang", "dao", "de", "dei", "den", "deng", "di", "dia", "dian", "diao",
"die", "ding", "diu", "dong", "dou", "du", "duan", "dui", "dun", "duo",
"e", "ei", "en", "eng", "er", "fa", "fan", "fang", "fei", "fen", "feng",
"fo", "fou", "fu", "ga", "gai", "gan", "gang", "gao", "ge", "gei", "gen",
"geng", "gong", "gou", "gu", "gua", "guai", "guan", "guang", "gui", "gun",
"guo", "ha", "hai", "han", "hang", "hao", "he", "hei", "hen", "heng",
"hong", "hou", "hu", "hua", "huai", "huan", "huang", "hui", "hun", "huo",
"ji", "jia", "jian", "jiang", "jiao", "jie", "jin", "jing", "jiong", "jiu",
"ju", "juan", "jue", "jun", "ka", "kai", "kan", "kang", "kao", "ke", "ken",
"keng", "kong", "kou", "ku", "kua", "kuai", "kuan", "kuang", "kui", "kun",
"kuo", "la", "lai", "lan", "lang", "lao", "le", "lei", "leng", "li", "lia",
"lian", "liang", "liao", "lie", "lin", "ling", "liu", "lo", "long", "lou",
"lu", "luan", "lun", "luo", "lü", "lüe", "ma", "mai", "man", "mang", "mao",
"me", "mei", "men", "meng", "mi", "mian", "miao", "mie", "min", "ming",
"miu", "mo", "mou", "mu", "na", "nai", "nan", "nang", "nao", "ne", "nei",
"nen", "neng", "ni", "nian", "niang", "niao", "nie", "nin", "ning", "niu",
"nong", "nou", "nu", "nuan", "nun", "nuo", "nü", "nüe", "o", "ou", "pa",
"pai", "pan", "pang", "pao", "pei", "pen", "peng", "pi", "pian", "piao",
"pie", "pin", "ping", "po", "pou", "pu", "qi", "qia", "qian", "qiang",
"qiao", "qie", "qin", "qing", "qiong", "qiu", "qu", "quan", "que", "qun",
"ran", "rang", "rao", "re", "ren", "reng", "ri", "rong", "rou", "ru",
"ruan", "rui", "run", "ruo", "sa", "sai", "san", "sang", "sao", "se",
"sen", "seng", "sha", "shai", "shan", "shang", "shao", "she", "shen",
"sheng", "shi", "shou", "shu", "shua", "shuai", "shuan", "shuang", "shui",
"shun", "shuo", "si", "song", "sou", "su", "suan", "sui", "sun", "suo",
"ta", "tai", "tan", "tang", "tao", "te", "teng", "ti", "tian", "tiao",
"tie", "ting", "tong", "tou", "tu", "tuan", "tui", "tun", "tuo", "wa",
"wai", "wan", "wang", "wei", "wen", "weng", "wo", "wu", "xi", "xia",
"xian", "xiang", "xiao", "xie", "xin", "xing", "xiong", "xiu", "xu",
"xuan", "xue", "xun", "ya", "yan", "yang", "yao", "ye", "yi", "yin",
"ying", "yo", "yong", "you", "yu", "yuan", "yue", "yun", "za", "zai",
"zan", "zang", "zao", "ze", "zei", "zen", "zeng", "zha", "zhai", "zhan",
"zhang", "zhao", "zhe", "zhei", "zhen", "zheng", "zhi", "zhong", "zhou",
"zhu", "zhua", "zhuai", "zhuan", "zhuang", "zhui", "zhun", "zhuo", "zi",
"zong", "zou", "zu", "zuan", "zui", "zun", "zuo", "r"
]
# r not always considered valid pinyin but "r5" often used in cedict for erhua