# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-ASCII_CHEWING_SHENGMU_MAP = {
+ASCII_CHEWING_INITIAL_MAP = {
"CHEWING_B" : "ㄅ",
"CHEWING_C" : "ㄘ",
"CHEWING_CH" : "ㄔ",
"CHEWING_ZH" : "ㄓ",
}
-CHEWING_ASCII_SHENGMU_MAP = dict([(v, k) for k, v in ASCII_CHEWING_SHENGMU_MAP.items()])
+CHEWING_ASCII_INITIAL_MAP = dict([(v, k) for k, v in ASCII_CHEWING_INITIAL_MAP.items()])
ASCII_CHEWING_MIDDLE_MAP = {
"CHEWING_I" : "ㄧ",
CHEWING_ASCII_MIDDLE_MAP = dict([(v, k) for k, v in ASCII_CHEWING_MIDDLE_MAP.items()])
-ASCII_CHEWING_YUNMU_MAP = {
+ASCII_CHEWING_FINAL_MAP = {
"CHEWING_A" : "ㄚ",
"CHEWING_AI" : "ㄞ",
"CHEWING_AN" : "ㄢ",
"CHEWING_OU" : "ㄡ",
}
-CHEWING_ASCII_YUNMU_MAP = dict([(v, k) for k, v in ASCII_CHEWING_YUNMU_MAP.items()])
+CHEWING_ASCII_FINAL_MAP = dict([(v, k) for k, v in ASCII_CHEWING_FINAL_MAP.items()])
import chewing
from fuzzy import *
+
def check_pinyin_chewing_map():
for pinyin_key in pinyin.PINYIN_DICT.keys():
if pinyin_key in bopomofo.PINYIN_BOPOMOFO_MAP.keys():
else:
print("pinyin %s has no chewing mapping", pinyin_key)
+def get_chewing(pinyin_key):
+ initial = 'CHEWING_ZERO_INITIAL'
+ middle = 'CHEWING_ZERO_MIDDLE'
+ final = 'CHEWING_ZERO_FINAL'
+ assert pinyin_key != None
+ assert pinyin_key in bopomofo.PINYIN_BOPOMOFO_MAP
+ bopomofo_str = bopomofo.PINYIN_BOPOMOFO_MAP[pinyin_key]
+ for char in bopomofo_str:
+ if char in chewing.CHEWING_ASCII_INITIAL_MAP:
+ initial = chewing.CHEWING_ASCII_INITIAL_MAP[char]
+ if char in chewing.CHEWING_ASCII_MIDDLE_MAP:
+ middle = chewing.CHEWING_ASCII_MIDDLE_MAP[char]
+ if char in chewing.CHEWING_ASCII_FINAL_MAP:
+ final = chewing.CHEWING_ASCII_FINAL_MAP[char]
+ return initial, middle, final
### main function ###
if __name__ == "__main__":
#pre-check here
check_pinyin_chewing_map()
+ #dump
+ for pinyin_key in pinyin.PINYIN_DICT.keys():
+ print (pinyin_key, get_chewing(pinyin_key))