add get_chewing
authorPeng Wu <alexepico@gmail.com>
Fri, 21 Oct 2011 05:36:57 +0000 (13:36 +0800)
committerPeng Wu <alexepico@gmail.com>
Fri, 21 Oct 2011 05:43:14 +0000 (13:43 +0800)
scripts/chewing.py
scripts/genpytable.py

index 716f874..856cf4a 100644 (file)
@@ -20,7 +20,7 @@
 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
 
-ASCII_CHEWING_SHENGMU_MAP = {
+ASCII_CHEWING_INITIAL_MAP = {
     "CHEWING_B" : "ㄅ",
     "CHEWING_C" : "ㄘ",
     "CHEWING_CH" : "ㄔ",
@@ -44,7 +44,7 @@ ASCII_CHEWING_SHENGMU_MAP = {
     "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" : "ㄧ",
@@ -54,7 +54,7 @@ ASCII_CHEWING_MIDDLE_MAP = {
 
 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" : "ㄢ",
@@ -70,4 +70,4 @@ ASCII_CHEWING_YUNMU_MAP = {
     "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()])
index b5f34dc..b285d76 100644 (file)
@@ -25,6 +25,7 @@ import bopomofo
 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():
@@ -32,9 +33,27 @@ def check_pinyin_chewing_map():
         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))