Skip to content

Commit

Permalink
開始啟用《廣韻》v6
Browse files Browse the repository at this point in the history
  • Loading branch information
AlanJui committed Oct 30, 2024
1 parent 1b4f49d commit 3a153c2
Show file tree
Hide file tree
Showing 8 changed files with 409 additions and 79 deletions.
Binary file modified Documents/廣韻/Kong_Un_V6.db
Binary file not shown.
Binary file modified Kong_Un.db
Binary file not shown.
Binary file added Kong_Un_V5.db
Binary file not shown.
8 changes: 4 additions & 4 deletions a300_漢字查標音.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@
清濁 = record['清濁']
發送收 = record['發送收']
聲母其它標音 = ca_siann_bu_piau_im(cursor, 聲母標音)
聲母國際音標 = 聲母其它標音[0]['國際音標聲母']
聲母方音符號 = 聲母其它標音[0]['方音聲母']
聲母國際音標 = 聲母其它標音[0]['國際音標']
聲母方音符號 = 聲母其它標音[0]['方音符號']
print('\n---------------------------------------')
print(f'【切語上字】:{上字}\n')
print(f"聲母:{聲母} [{聲母標音}],國際音標:/{聲母國際音標}/,方音符號:{聲母方音符號}")
Expand All @@ -65,8 +65,8 @@
= record['呼']
等呼 = record['等呼']
韻母其它標音 = ca_un_bu_piau_im(cursor, 韻母標音)
韻母國際音標 = 韻母其它標音[0]['國際音標韻母']
韻母方音符號 = 韻母其它標音[0]['方音韻母']
韻母國際音標 = 韻母其它標音[0]['國際音標']
韻母方音符號 = 韻母其它標音[0]['方音符號']
print('\n---------------------------------------')
print(f"【切語下字】 = {下字}\n")
print(f"韻母:{韻母} [{韻母標音}],國際音標:/{韻母國際音標}/,方音符號:{韻母方音符號}")
Expand Down
8 changes: 4 additions & 4 deletions a400_反切查拼音.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@
清濁 = record['清濁']
發送收 = record['發送收']
聲母其它標音 = ca_siann_bu_piau_im(cursor, 聲母標音)
聲母國際音標 = 聲母其它標音[0]['國際音標聲母']
聲母方音符號 = 聲母其它標音[0]['方音聲母']
聲母國際音標 = 聲母其它標音[0]['國際音標']
聲母方音符號 = 聲母其它標音[0]['方音符號']
print(f"聲母:{聲母} [{聲母標音}],國際音標:/{聲母國際音標}/,方音符號:{聲母方音符號}")
print(f"(發音部位:{七聲類},清濁:{清濁},發送收:{發送收})")

Expand All @@ -73,8 +73,8 @@
= record['呼']
等呼 = record['等呼']
韻母其它標音 = ca_un_bu_piau_im(cursor, 韻母標音)
韻母國際音標 = 韻母其它標音[0]['國際音標韻母']
韻母方音符號 = 韻母其它標音[0]['方音韻母']
韻母國際音標 = 韻母其它標音[0]['國際音標']
韻母方音符號 = 韻母其它標音[0]['方音符號']
print(f"韻母:{韻母} [{韻母標音}],國際音標:/{韻母國際音標}/,方音符號:{韻母方音符號}")
print(f"攝:{},調:{調}聲,目次:{目次}")
print(f"韻目:{韻目}{}等,{}口 ({等呼})")
Expand Down
100 changes: 29 additions & 71 deletions mod_廣韻.py
Original file line number Diff line number Diff line change
@@ -1,86 +1,44 @@
import re
import sqlite3


def connect_to_db_by_context_manager_decorator(db_path):
def connect_to_db(func):
def wrapper(*args, **kwargs):
# 創建數據庫連接
conn = sqlite3.connect(db_path)

# 創建一個游標
cursor = conn.cursor()

# 執行函數
result = func(cursor, *args, **kwargs)

# 關閉數據庫連接
conn.close()

return result

return wrapper

return connect_to_db


def connect_to_db(db_path):
# 創建數據庫連接
conn = sqlite3.connect(db_path)

# 創建一個游標
cursor = conn.cursor()

return conn, cursor


def connect_to_db2(db_path):
# 創建數據庫連接
conn = sqlite3.connect(db_path)

# 創建一個游標
cursor = conn.cursor() # noqa: F841

return conn


def close_db_connection(conn):
# 關閉數據庫連接
conn.close()


"""
用 `漢字` 查詢《廣韻》的標音
"""
def han_ji_ca_piau_im(cursor, han_ji):
"""
根據漢字查詢其讀音資訊。 若資料紀錄在`台羅聲調`欄位儲存值為空值(NULL)
根據漢字查詢其讀音資訊。 若資料紀錄在`常用度`欄位儲存值為空值(NULL)
,則將其視為 0,因此可排在查詢結果的最後。
:param cursor: 數據庫游標
:param han_ji: 欲查詢的漢字
:return: 包含讀音資訊的字典列表
SELECT *
FROM 廣韻漢字庫
FROM 漢字檢視
WHERE 漢字 = ?
ORDER BY COALESCE(台羅聲調, 0) DESC;
ORDER BY COALESCE(常用度, 0) DESC;
"""

query = """
SELECT *
FROM 廣韻漢字庫
SELECT 漢字號, 漢字, 漢字標音, 常用度, 上字, 下字, 字義解釋,
七聲類, 發音部位, 聲母, 聲母標音, 清濁, 發送收,
韻母, 韻母標音, 攝, 調, 韻目, 目次, 等呼, 等, 呼
FROM 漢字檢視
WHERE 漢字 = ?
ORDER BY COALESCE(常用度, 0) DESC;
"""
cursor.execute(query, (han_ji,))
results = cursor.fetchall()

# 將結果轉換為字典列表
# fields = [
# '漢字號', '漢字', '漢字標音', '常用度', '上字', '下字', '字義解釋',
# '七聲類', '發音部位', '聲母', '聲母標音', '清濁', '發送收',
# '韻母', '韻母標音', '攝', '調', '韻目', '目次', '等', '呼'
# ]
fields = [
'字號', '漢字', '標音', '常用度', '上字', '下字', '上字號', '聲母', '聲母標音', '七聲類',
'清濁', '發送收', '下字號', '韻母', '韻母標音', '韻目列號', '攝', '調', '目次',
'韻目', '等呼', '', '', '廣韻調名', '台羅聲調', '字義識別號'
'字號', '漢字', '標音', '常用度', '上字', '下字', '字義解釋',
'七聲類', '發音部位', '聲母', '聲母標音', '清濁', '發送收',
'韻母', '韻母標音', '', '調', '韻目', '目次', '等呼', '等', '呼'
]
return [dict(zip(fields, result)) for result in results]

Expand All @@ -93,20 +51,20 @@ def ca_siann_bu_piau_im(cursor, siann_bu):
:param siann_bu: 欲查詢的聲母標音(台語音標)
:return: 包含國際音標聲母和方音聲母的字典列表
SELECT 國際音標聲母, 方音聲母
SELECT 國際音標, 方音聲母
FROM 聲母對照表
WHERE 台語音標聲母 = ?;
WHERE 台語音標 = ?;
"""

query = """
SELECT 國際音標聲母, 方音聲母
SELECT 國際音標, 方音符號
FROM 聲母對照表
WHERE 台語音標聲母 = ?;
WHERE 台語音標 = ?;
"""
cursor.execute(query, (siann_bu,))
results = cursor.fetchall()

fields = ['國際音標聲母', '方音聲母']
fields = ['國際音標', '方音符號']
return [dict(zip(fields, result)) for result in results]


Expand All @@ -116,22 +74,22 @@ def ca_un_bu_piau_im(cursor, un_bu):
:param cursor: 數據庫游標
:param un_bu: 欲查詢的韻母標音(台語音標)
:return: 包含國際音標韻母和方音韻母的字典列表
:return: 包含國際音標和方音韻母的字典列表
SELECT 國際音標韻母, 方音韻母
SELECT 國際音標, 方音韻母
FROM 韻母對照表
WHERE 台語音標韻母 = ?;
WHERE 台語音標 = ?;
"""

query = """
SELECT 國際音標韻母, 方音韻母
SELECT 國際音標, 方音符號
FROM 韻母對照表
WHERE 台語音標韻母 = ?;
WHERE 台語音標 = ?;
"""
cursor.execute(query, (un_bu,))
results = cursor.fetchall()

fields = ['國際音標韻母', '方音韻母']
fields = ['國際音標', '方音符號']
return [dict(zip(fields, result)) for result in results]


Expand Down Expand Up @@ -177,7 +135,7 @@ def TL_Tng_Zu_Im(siann_bu, un_bu, siann_tiau, cursor):
"""

# 查詢聲母表,將台語音標的聲母轉換成方音符號
cursor.execute("SELECT 方音聲母 FROM 聲母對照表 WHERE 台語音標聲母 = ?", (siann_bu,))
cursor.execute("SELECT 方音符號 FROM 聲母對照表 WHERE 台語音標 = ?", (siann_bu,))
siann_bu_result = cursor.fetchone()
if siann_bu_result:
zu_im_siann_bu = siann_bu_result[0] # 取得方音符號
Expand All @@ -186,15 +144,15 @@ def TL_Tng_Zu_Im(siann_bu, un_bu, siann_tiau, cursor):

# 查詢韻母表,將台語音標的韻母轉換成方音符號
# cursor.execute("SELECT 方音符號 FROM 韻母表 WHERE 台語音標 = ?", (un_bu,))
cursor.execute("SELECT 方音韻母 FROM 韻母對照表 WHERE 台語音標韻母 = ?", (un_bu,))
cursor.execute("SELECT 方音符號 FROM 韻母對照表 WHERE 台語音標 = ?", (un_bu,))
un_bu_result = cursor.fetchone()
if un_bu_result:
zu_im_un_bu = un_bu_result[0] # 取得方音符號
else:
zu_im_un_bu = ''

# 查詢聲調表,將台語音標的聲調轉換成方音符號
cursor.execute("SELECT 方音符號 FROM 聲調表 WHERE 台羅八聲調 = ?", (siann_tiau,))
cursor.execute("SELECT 方音符號調符 FROM 聲調對照表 WHERE 台羅調號 = ?", (siann_tiau,))
siann_tiau_result = cursor.fetchone()
if siann_tiau_result:
zu_im_siann_tiau = siann_tiau_result[0] # 取得方音符號
Expand Down
Loading

0 comments on commit 3a153c2

Please sign in to comment.