-
-
Notifications
You must be signed in to change notification settings - Fork 24
替換輔助碼
數據量較大,不建議手動進行處理。本方案提供了完整的工具供用戶自行生成想要的方案,下面以虎碼 + 簡體字優先爲例做一解說。
-
schemagen.py
需要 Python 3.10+ 和少數 pip 包(根據 import 報錯按需安裝即可) -
update_compact_dicts.sh
需要 bash、grep、sed 等命令
已測試在 Linux 和 macOS 下是可用的。建議 Windows 用戶在 WSL 環境下操作。
整句模式涉及的詞庫數量很多:
- 單字主表
moran.chars.dict.yaml
—— 該表非常重要!! - 詞語表
moran.extended.dict.yaml
及其中導入的所有其他詞表(words
,computer
,moe
,thuocl
,tencent
) - 簡碼表
moran_fixed.dict.yaml
若只使用字詞模式,可只更新 moran_fixed.dict.yaml
文件。
創建 tools/data/tigerdb.txt
,將虎碼碼表中的單字信息提取出來,只保留前2位,例如
他 je
这 vu
有 nv
个 jg
上 yf
地 ge
们 ja
你 jx
以 vj
……
適用模式:默認模式、整句模式、輔篩模式
執行如下命令
python3 ./schemagen.py --auxiliary-code=tiger --pinyin-table=data/pinyin_simp.txt gen-chars > chars.txt
此時會將生成的單字數據輸出到 tools/chars.txt
中。手動將數據內容替換到 moran.chars.dict.yaml 文件中即可。
適用模式:默認模式、字詞模式
執行如下命令
python3 ./schemagen.py --auxiliary-code=tiger --pinyin-table=data/pinyin_simp.txt gen-fixed --charset=data/simp_chars.txt --input-dict=data/simp_words.txt > fixed.txt
其中,
-
charset
參數用於指定簡碼碼表中僅含這些字 -
input-dict
參數用於指定簡碼碼表中僅含這些詞
此時會將生成的簡碼碼表輸出到 tools/fixed.txt
中,手動將數據內容替換到 moran_fixed.dict.yaml 文件中即可。
適用模式:默認模式、整句模式、輔篩模式
本倉庫中所分發的詞庫默認爲繁體字,若需簡體字輔助碼,需首先轉換爲簡體詞庫,一一將所有詞表用 opencc -c t2s.json
轉換即可。 🛑不要轉換 chars
字表!
以 bash 爲例,方法是:
for d in words essay tencent moe computer thuocl
do
opencc -c t2s.json -i moran.${d}.dict.yaml -o moran.${d}.dict.yaml
done
注意,雖然此時詞庫中的詞語本身已經轉換成了簡體,但輔助碼編碼沒有轉換,仍是繁體。使用 tools/update_compact_dicts.sh
腳本批量自動轉換詞庫中的輔助碼編碼。
$ (cd tools ; ./update_compact_dicts.sh)
適用模式:輔篩模式
輔篩模式所依據的輔助碼定義來自於 lua/zrmdb.txt
文件,你可以直接用第一步生成的輔助碼替換其中數據。
另一種辦法是把第一步生成的輔助碼文件拷貝到 lua
目錄下,再修改 moran_aux_translator.lua
中的輔助碼文件路徑:搜索 zrmdb.txt
替換成新的文件名即可。