Skip to content

Commit a9b13e6

Browse files
authored
Merge pull request #891 from lukhnos/fix-formula
Fix builder formula error and improve coverage
2 parents 43ca5c9 + cf7cb8e commit a9b13e6

2 files changed

Lines changed: 24 additions & 68 deletions

File tree

Source/Data/Postprocess.txt

Lines changed: 23 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,20 @@
55

66
epsilon 0.001
77

8-
98
# before 用來確認後製修改之前的詞庫狀態
10-
11-
before ㄓㄜˋ-ㄧㄤˋ-ㄇㄟˊ-ㄕˋ-ㄐㄧㄡˋ-ㄏㄠˇ 這樣-沒-是-就好
12-
9+
before ㄓㄜˋ-ㄉㄟˇ-ㄕˋ-ㄕˋ-ㄘㄞˊ-ㄓ-ㄉㄠˋ 這-得-是-是-才-知道
1310

1411
# promote-over-single-syllables 的意思是,給定多字詞,這個多字詞的分數,應該
15-
# 高於同數量同音單字的加總。例如打「沒事」但出現「沒是」,是因為在 unigram
16-
# model 下,P_log(沒) + P_log(是) > P_log(沒事)
17-
18-
promote-over-single-syllables 沒事 ㄇㄟˊ-ㄕˋ
19-
12+
# 高於同數量同音單字的加總。例如打「試試」但出現「是是」,是因為在 unigram
13+
# model 下,P_log(是) + P_log(是) > P_log(試試)
14+
promote-over-single-syllables 試試 ㄕˋ-ㄕˋ
2015

2116
# assert 用於確認修改之後的詞庫狀態
22-
23-
assert ㄇㄟˊ-ㄕˋ 沒事
24-
assert ㄓㄜˋ-ㄧㄤˋ-ㄇㄟˊ-ㄕˋ-ㄐㄧㄡˋ-ㄏㄠˇ 這樣-沒事-就好
25-
26-
promote-over-single-syllables 好險 ㄏㄠˇ-ㄒㄧㄢˇ
27-
assert ㄏㄠˇ-ㄒㄧㄢˇ-ㄇㄟˊ-ㄕˋ-ㄦˊ-ㄑㄧㄝˇ-ㄏㄠˇ-ㄒㄧㄢˇ-ㄒㄧㄢˇ-ㄕˋ-ㄑㄧˋ-ㄇㄟˊ-ㄏㄨㄞˋ 好險-沒事-而且-好險-顯示器-沒-壞
28-
17+
assert ㄓㄜˋ-ㄉㄟˇ-ㄕˋ-ㄕˋ-ㄘㄞˊ-ㄓ-ㄉㄠˋ 這-得-試試-才-知道
2918

3019
# promote-over-peers 的意思是,如果有許多同字數的同音詞,把指定的詞給列為最高
3120
# 順位。例如首字理論上可念成一聲(但實際則否)的「一顆」「一棵」「一科」這三
3221
# 個詞跟「醫科」有衝突,在語用上「ㄧ ㄎㄜ」應該出「醫科」為首。
33-
3422
promote-over-peers 醫科 ㄧ-ㄎㄜ
3523

3624
# 這個修改讓「一顆」的「一」只能用四聲讀,否則結果永遠出現「醫科」為先
@@ -56,77 +44,45 @@ assert ㄧ-ㄎㄜ-ㄘㄞˋ 醫科-菜
5644
assert ㄔ-ㄧˋ-ㄎㄜ 吃-一顆
5745
assert ㄧˋ-ㄎㄜ-ㄘㄞˋ 一顆-菜
5846

59-
60-
# 「裡裡外外」已經成詞,所以不需要再 promote 「裡裡」
61-
# promote-over-peers 裡裡 ㄌㄧˇ-ㄌㄧˇ
62-
# assert ㄌㄧˇ-ㄌㄧˇ-ㄨㄞˋ-ㄨㄞˋ 裡裡外外
63-
64-
promote-over-single-syllables 依舊 ㄧ-ㄐㄧㄡˋ
65-
assert ㄓㄜˋ-ㄨㄣˋ-ㄊㄧˊ-ㄧ-ㄐㄧㄡˋ-ㄘㄨㄣˊ-ㄗㄞˋ 這-問題-依舊-存在
66-
6747
# 這個問題目前還不能解決
6848
#
6949
# promote-over-single-syllables 依舊在 ㄧ-ㄐㄧㄡˋ-ㄗㄞˋ
7050
#
7151
# 提升後,斷詞仍然是「青山-一-就在」
72-
# assert ㄑㄧㄥ-ㄕㄢ-ㄧ-ㄐㄧㄡˋ-ㄗㄞˋ 青山-依舊在
73-
74-
promote-over-single-syllables 中醫 ㄓㄨㄥ-ㄧ
75-
promote-over-single-syllables 西醫 ㄒㄧ-ㄧ
76-
assert ㄓㄨㄥ-ㄧ-ㄩˇ-ㄒㄧ-ㄧ 中醫-與-西醫
52+
assert ㄑㄧㄥ-ㄕㄢ-ㄧ-ㄐㄧㄡˋ-ㄗㄞˋ 青山-依舊在
7753

7854
# 以下兩例用來確保修改後,不會影響其他同音但詞界不同詞
7955
# 台中一中、中一中為完整長詞
8056
assert ㄓㄨㄥ-ㄧ-ㄓㄨㄥ 中一中
8157
assert ㄊㄞˊ-ㄓㄨㄥ-ㄧ-ㄓㄨㄥ 台中一中
8258

83-
# 「一再」的兩個念法雖然分數是一樣的,但因為「一」的不同念法分數不同,
84-
# 導致唸一聲的「一+在」分數高於首字唸一聲的「一再」,而唸二聲的「一+在」
85-
# 反而分數低於首字唸二聲的「一再」,因此「一再」其實不是個問題詞
86-
# (因為這個詞一般首字都唸二聲),因此我們選擇不 boost
87-
before ㄧ-ㄗㄞˋ 一-在
88-
before ㄧˊ-ㄗㄞˋ-ㄔㄨ-ㄒㄧㄢˋ 一再-出現
89-
before ㄧ-ㄗㄞˋ-ㄔㄨ-ㄒㄧㄢˋ 一-再出現
90-
before ㄧ-ㄗㄞˋ-ㄈㄚ-ㄕㄥ 一-在-發生
91-
before ㄧˊ-ㄗㄞˋ-ㄈㄚ-ㄕㄥ 一再-發生
92-
93-
before ㄍㄜˋ-ㄕˋ-ㄔㄢˇ-ㄆㄧㄣˇ 個-是-產品
94-
before ㄍㄜˋ-ㄕˋ-ㄍㄜˋ-ㄧㄤˋ 各式各樣
95-
promote-over-single-syllables 各式 ㄍㄜˋ-ㄕˋ
96-
assert ㄍㄜˋ-ㄕˋ-ㄔㄢˇ-ㄆㄧㄣˇ 各式-產品
97-
9859
# 「是用」是一個詞,而「試用」雖然分數低於「是」「用」,但其實是被「是用」遮蓋
9960
# 同時,「...後再+動詞」並不是這個輸入法有處理的字
10061
before ㄕˋ-ㄩㄥˋ-ㄏㄡˋ-ㄗㄞˋ-ㄇㄞˇ 是用-後-在-買
10162
promote-over-peers 試用 ㄕˋ-ㄩㄥˋ
10263
assert ㄕˋ-ㄩㄥˋ-ㄏㄡˋ-ㄗㄞˋ-ㄇㄞˇ 試用-後-在-買
10364

104-
# 其實這個「作」應該是「做」,但語料當中「作」分數高於「做」
105-
before ㄕˋ-ㄓㄜ˙-ㄗㄨㄛˋ-ㄎㄢˋ-ㄎㄢˋ 是-著-作-看看
106-
promote-over-single-syllables 試著 ㄕˋ-ㄓㄜ˙
107-
assert ㄕˋ-ㄓㄜ˙-ㄗㄨㄛˋ-ㄎㄢˋ-ㄎㄢˋ 試著-作-看看
108-
109-
before ㄎㄨㄢ-ㄎㄨㄛˋ-ㄉㄜ˙-ㄕˋ-ㄧㄝˇ 寬闊-的-是-也
110-
promote-over-single-syllables 視野 ㄕˋ-ㄧㄝˇ
111-
assert ㄎㄨㄢ-ㄎㄨㄛˋ-ㄉㄜ˙-ㄕˋ-ㄧㄝˇ 寬闊-的-視野
112-
113-
# 「不到」的「不」讀為二聲,但四聲的語音干擾了更常用的「步道」
114-
before ㄒㄧㄥˊ-ㄖㄣˊ-ㄅㄨˋ-ㄉㄠˋ 行人-不-到
115-
promote-over-single-syllables 步道 ㄅㄨˋ-ㄉㄠˋ
116-
assert ㄒㄧㄥˊ-ㄖㄣˊ-ㄅㄨˋ-ㄉㄠˋ 行人-步道
117-
11865
before ㄗˋ-ㄏㄨㄟˋ-ㄓㄥˇ-ㄌㄧˇ 自-會-整理
11966
before ㄗㄥ-ㄑㄧㄤˊ-ㄧㄥ-ㄨㄣˊ-ㄗˋ-ㄏㄨㄟˋ 增強-英文字-會
12067
promote-over-single-syllables 字彙 ㄗˋ-ㄏㄨㄟˋ
121-
# 增加「字彙」的問題是,這個詞其實是斷在「英文字」
68+
69+
assert ㄗˋ-ㄏㄨㄟˋ-ㄓㄥˇ-ㄌㄧˇ 字彙-整理
70+
71+
# TODO: 只提升「字彙」無法解決以下問題:詞其實是斷在「英文字」
12272
assert ㄗㄥ-ㄑㄧㄤˊ-ㄧㄥ-ㄨㄣˊ-ㄗˋ-ㄏㄨㄟˋ 增強-英文字-會
12373
# assert ㄗㄥ-ㄑㄧㄤˊ-ㄧㄥ-ㄨㄣˊ-ㄗˋ-ㄏㄨㄟˋ 增強-英文-字彙
124-
assert ㄗˋ-ㄏㄨㄟˋ-ㄓㄥˇ-ㄌㄧˇ 字彙-整理
12574

126-
before ㄓㄜˋ-ㄉㄟˇ-ㄕˋ-ㄕˋ-ㄘㄞˊ-ㄓ-ㄉㄠˋ 這-得-是-是-才-知道
127-
promote-over-single-syllables 試試 ㄕˋ-ㄕˋ
128-
assert ㄓㄜˋ-ㄉㄟˇ-ㄕˋ-ㄕˋ-ㄘㄞˊ-ㄓ-ㄉㄠˋ 這-得-試試-才-知道
75+
before ㄧㄡˇ-ㄕˋ-ㄓㄠˇ-ㄨㄛˇ 有-是-找-我
76+
promote-over-single-syllables 有事 ㄧㄡˇ-ㄕˋ
77+
assert ㄧㄡˇ-ㄕˋ-ㄓㄠˇ-ㄨㄛˇ 有事-找-我
78+
79+
# TODO: 這個詞無法正確斷開,因為「語音」詞頻高,結果是「陽性-語音-性」
80+
# assert ㄧㄤˊ-ㄒㄧㄥˋ-ㄩˇ-ㄧㄣ-ㄒㄧㄥˋ 陽性-與-陰性
81+
82+
before ㄒㄧㄢˋ-ㄕㄤˋ-ㄕˋ-ㄐㄧˊ-ㄍㄡˋ-ㄨˋ 線上-是-及-購物
83+
promote-over-single-syllables 市集 ㄕˋ-ㄐㄧˊ
84+
assert ㄒㄧㄢˋ-ㄕㄤˋ-ㄕˋ-ㄐㄧˊ-ㄍㄡˋ-ㄨˋ 線上-市集-購物
85+
86+
# TODO: 這個會失敗,因為仍然是「去世-及-買東西」
87+
# assert ㄑㄩˋ-ㄕˋ-ㄐㄧˊ-ㄇㄞˇ-ㄉㄨㄥ-ㄒㄧ 去市集買東西
12988

130-
before ㄓㄨㄣˇ-ㄅㄟˋ-ㄇㄧㄢˋ-ㄕˋ-ㄘㄞˊ-ㄓ-ㄉㄠˋ-ㄑㄧㄡˊ-ㄓˊ-ㄅㄨˊ-ㄧˋ 準備-面-是-才-知道-求職-不易
131-
promote-over-single-syllables 面試 ㄇㄧㄢˋ-ㄕˋ
132-
before ㄓㄨㄣˇ-ㄅㄟˋ-ㄇㄧㄢˋ-ㄕˋ-ㄘㄞˊ-ㄓ-ㄉㄠˋ-ㄑㄧㄡˊ-ㄓˊ-ㄅㄨˊ-ㄧˋ 準備-面試-才-知道-求職-不易

Source/Data/curation/builders/frequency_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def main():
5353
phrases[k] = phrases[k] - phrases[v]
5454

5555
for k in phrases:
56-
norm += fscale ** (len(k) / 3 - 1) * phrases[k]
56+
norm += fscale ** (len(k) - 1) * phrases[k]
5757

5858
try:
5959
handle = open('PhraseFreq.txt', "w")

0 commit comments

Comments
 (0)