bopomofo2hanzi 注音符號輸入法轉漢字

資料集

使用「PTT 中文語料」進行訓練與計算。

預處理

針對每個句子進行以下動作。

阿拉伯數字轉漢字之實現參考了 xiaoyvning/number2hanzi 中的語法,提高可轉換的位數最大上限以及翻譯為繁體中文後以相同原理改寫成 Python 檔案。

使用 pypinyin 將漢字轉為注音,注音透過對照轉為英數字元。

訓練、微調、計算

訓練

GRU、BiGRU、LSTM、Transformer

微調

google/mT5-small

計算

維特比演算法搭配隱式馬可夫模型。
觀測值:錯誤字元​
起始機率:漢字作為句子開頭的機率​
轉移機率:漢字連接另一個漢字的機率​
發射機率:錯誤字元對應到漢字的機率​
隱含狀態:可翻譯的漢字

成果

方法 / 項目 準確率 Loss BLEU4
GRU 0.8797 0.5242 65.27
BiGRU 0.8581 0.6118 56.39
LSTM 0.9553 0.1555 78.56
4注意力頭Transformer 0.9577 0.2080 79.56
8注意力頭Transformer 0.9557 0.2150 79.25
12注意力頭 Transformer 0.9552 0.2178 79.04
16注意力頭Transformer 0.9492 0.2381 77.80
mT5 0.6076 0.0700 83.17
維特比演算法 0.9448 N/A 88.30
Google輸入工具 0.9337 N/A 87.17

應用

開源於 GitHub,可自行架設 Discord Bot 進行即時翻譯。同時也架設線上翻譯器,可於線上進行翻譯。