Skip to content

Commit

Permalink
整編及清除無用之程式碼
Browse files Browse the repository at this point in the history
  • Loading branch information
AlanJui committed Nov 11, 2024
1 parent 0192b1e commit 4fab3ce
Showing 1 changed file with 0 additions and 98 deletions.
98 changes: 0 additions & 98 deletions mod_廣韻.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,101 +277,3 @@ def Cu_Hong_Im_Hu_Ho(tai_lo_tiau_ho):
}
return 方音符號調號.get(tai_lo_tiau_ho, None)


# ==========================================================
# 自「台語音標+」,分析出:聲母、韻母、聲調
# ----------------------------------------------------------
# 【台羅音標】到【台語音標】的轉換規則
# tai_loo_to_tai_gi_mapping = {
# 'tsh': 'c',
# 'ts': 'z'
# }
# for tai_loo, tai_gi in tai_loo_to_tai_gi_mapping.items():
# tai_gi_im = tai_gi_im.replace(tai_loo, tai_gi)
# ==========================================================
def split_zu_im(zu_im):
# 聲母相容性轉換處理(將 tsh 轉換為 c;將 ts 轉換為 z)
if zu_im.startswith("tsh"):
zu_im = zu_im.replace("tsh", "c", 1) # 將 tsh, ch 轉換為 c
elif zu_im.startswith("ts"):
zu_im = zu_im.replace("ts", "z", 1) # 將 ts, c 轉換為 z

# 定義聲母的正規表示式,包括常見的聲母,並加入 Ø 表示無聲母
siann_bu_pattern = re.compile(r"(b|c|z|g|h|j|kh|k|l|m(?!\d)|ng(?!\d)|n|ph|p|s|th|t|Ø)")

# 韻母為 m 或 ng 這種情況的正規表示式 (m\d 或 ng\d)
un_bu_as_m_or_ng_pattern = re.compile(r"(m|ng)\d")

result = []

# 首先檢查是否是 m 或 ng 當作韻母的特殊情況
if un_bu_as_m_or_ng_pattern.match(zu_im):
siann_bu = "" # 沒有聲母
un_bu = zu_im[:-1] # 韻母是 m 或 ng
tiau = zu_im[-1] # 聲調是最後一個字符
else:
# 使用正規表示式來匹配聲母,包括 Ø 符號
siann_bu_match = siann_bu_pattern.match(zu_im)
if siann_bu_match:
siann_bu = siann_bu_match.group() # 找到聲母或無聲母(Ø)
# 如果聲母是 Ø,將其轉換為空字串,並確保不影響 un_bu
if siann_bu == "Ø":
siann_bu = ""
un_bu = zu_im[1:-1] # 跳過 Ø 從第二個字符開始取韻母
else:
un_bu = zu_im[len(siann_bu):-1] # 正常處理韻母部分
else:
siann_bu = "" # 沒有匹配到聲母,聲母為空字串
un_bu = zu_im[:-1] # 韻母是剩下的部分,去掉最後的聲調

tiau = zu_im[-1] # 最後一個字符是聲調
if tiau == '6':
tiau = '2' # 將 6 轉換為 2

result += [siann_bu]
result += [un_bu]
result += [tiau]
return result

# def split_zu_im(zu_im):
# # 聲母相容性轉換處理(將 tsh 轉換為 c;將 ts 轉換為 z)
# # zu_im = zu_im.replace("tsh", "c") # 將 tsh 轉換為 c
# # zu_im = zu_im.replace("ts", "z") # 將 ts 轉換為 z
# if zu_im.startswith("tsh") or zu_im.startswith("ch"):
# zu_im = zu_im.replace("tsh", "c", 1).replace("ch", "c", 1) # 將 tsh, ch 轉換為 c
# elif zu_im.startswith("ts") or zu_im.startswith("c"):
# zu_im = zu_im.replace("ts", "z", 1).replace("c", "z", 1) # 將 ts, c 轉換為 z

# # 定義聲母的正規表示式,包括常見的聲母,但不包括 m 和 ng
# siann_bu_pattern = re.compile(r"(b|c|z|g|h|j|kh|k|l|m(?!\d)|ng(?!\d)|n|ph|p|s|th|t|Ø)")

# # 韻母為 m 或 ng 這種情況的正規表示式 (m\d 或 ng\d)
# un_bu_as_m_or_ng_pattern = re.compile(r"(m|ng)\d")

# result = []

# # 首先檢查是否是 m 或 ng 當作韻母的特殊情況
# if un_bu_as_m_or_ng_pattern.match(zu_im):
# siann_bu = "" # 沒有聲母
# un_bu = zu_im[:-1] # 韻母是 m 或 ng
# tiau = zu_im[-1] # 聲調是最後一個字符
# else:
# # 使用正規表示式來匹配聲母
# siann_bu_match = siann_bu_pattern.match(zu_im)
# if siann_bu_match:
# siann_bu = siann_bu_match.group() # 找到聲母
# un_bu = zu_im[len(siann_bu):-1] # 韻母部分
# else:
# siann_bu = "" # 沒有匹配到聲母,聲母為空字串
# un_bu = zu_im[:-1] # 韻母是剩下的部分,去掉最後的聲調

# tiau = zu_im[-1] # 最後一個字符是聲調

# result += [siann_bu]
# result += [un_bu]
# result += [tiau]
# return result

def dict_to_str(zu_im_hu_ho):
return f"{zu_im_hu_ho['聲母']}{zu_im_hu_ho['韻母']}{zu_im_hu_ho['聲調']}"

0 comments on commit 4fab3ce

Please sign in to comment.