Skip to content

方案生成工具

本項目提供一個強大的方案生成工具 tools/schemagen.py,可滿足方案生成和維護的諸多需求。

INFO

該工具不隨方案打包分發,請從 GitHub repo 上獲取。

通用參數

參數取值說明
--double-pinyinzrm 或 flypy,默認 zrm雙拼方案
--auxiliary-codezrm 或 user,默認 zrm輔助碼方案
--auxiliary-code-fallback字符串,默認 ??當輔助碼表中不存在該字時,使用這個參數作爲輔助碼
--pinyin-table文件路徑,默認 data/pinyin.txt字詞的拼音和詞頻
拼音表文件格式

使用 tab 分隔的三列數據,依次是字詞、讀音和詞頻。詞語的讀音可留空,這些讀音會被自動生成。例:

tsv
ling	981
音樂會	yin yue hui	1361
新聞辦		718
預置拼音表
  • data/pinyin.txt 繁體數據,來自 Rime 八股文和朙月拼音
  • data/pinyin_simp.txt 簡體數據,來自 Rime 八股文和 pinyin_simp

INFO

在處理簡化字方案時,通常需要設定 pinyin-table 參數。

命令 gen-chars

用於生成 moran.chars.dict.yaml 格式的文件。

直接使用拼音表數據。

bash
python3 schemagen.py gen-chars

命令 gen-dict

用於生成整句詞庫,格式類似 moran.base.dict.yaml

在產生讀音時:首先使用詞庫中的讀音,若無,則會自動註音。自動註音過程可以調用 opencc 先進行簡繁轉換(因爲所用註音庫要求輸入是簡化字)。

在產生詞頻時:首先使用詞庫中的詞頻,若無,則會取 0。

參數取值說明
--input-dict必須 文件路徑pinyin-table 格式的詞庫
--opencc-for-pinyin文件名,默認 t2s.json在註音前簡繁轉換,默認繁轉簡
--opencc-for-output文件名,默認爲空在輸出詞語前簡繁轉換,默認不轉換
--compact不保留容錯碼,只使用主碼產生詞典
--no-freq不輸出詞頻
--freq-scale浮點數,默認 1.0在輸出詞頻時,可以乘上一個因子放大或縮小詞頻
輸入詞庫格式

完整格式應是 pinyin-table 格式,即三個數據分別是詞、讀音、詞頻。

詞庫讀入時對兩列數據的情況做了兼容,同時支持詞、讀音和詞、詞頻兩種格式。即支持如下格式:

tsv
你好	ni hao
再見	123

命令 gen-fixed

該命令用於生成簡碼碼表。

簡碼碼表生成的邏輯:

  • 首先依次產生所有字的全碼,然後逐級嘗試把字放入一級、二級、三級簡碼位。每個簡碼位最多容納(tolerance 參數設定的數字)個簡碼。
  • 詞語和全碼詞放在,並依據詞頻統一排序。

若不指定 --short-word 則不生成簡詞。簡詞生成的邏輯:

  • 給每個詞語產生幾種特定的短碼:
    • 二字詞,使用兩個字的首碼產生二簡碼
    • 三字詞,使用三個字的首碼產生三簡碼
  • 然後將該簡詞碼像簡字碼一樣,逐級嘗試放入簡碼位
參數取值說明
--charset建議設置 文件路徑,默認 data/trad_chars.txt設定碼表中的單字
--input-dict建議設置 文件路徑與 gen-dict 命令使用相同的詞庫格式;設定碼表中的詞語
--format建議設置 code-words 或 code-word 或 word-code 或 word-codes輸出碼表格式
--opencc-for-pinyin文件名,默認 t2s.json(與 gen-dict 命令相同)註音時使用的簡繁轉換設定
--tolerance逗號分隔的3個數字,默認 1,1,1每級簡碼可以容納幾個簡碼
--short-word是否生成簡詞

命令 update-compact-dict

根據最新的 zrmdb 定義,更新 compact 詞庫中的輔助碼部分。

INFO

這個命令可用於將繁體詞庫自動轉換成簡體詞庫後,再更新輔助碼。

具體用法可參照 tools/update_compact_dicts.sh。

參數取值說明
--rime-dict必須 文件名Rime 詞庫

命令 update_char_weight

根據最新 pinyin-table,更新 chars 碼表的詞頻。

INFO

這個命令可用於將繁體字表自動轉換成簡體字表後,再更新輔助碼。

具體用法可參照 make_simp_dist.sh

參數取值說明
--rime-dict必須 文件名Rime 詞庫

命令 update_sp

根據最新 pinyin-table,重新修改詞的雙拼部分。

參數取值說明
--rime-dict必須 文件名Rime 詞庫
--find必須 字符串只更新含有這些字的詞

例如,更新只含「朝」字的詞語的讀音:update-sp --find "朝"

命令 convert_sp

轉換詞庫的雙拼方案爲其他方案。可以將本方案的自然碼雙拼轉換成其他雙拼。

輸入雙拼方案由通用參數中的 --double-pinyin 指定,輸出方案由 --to 指定。

參數取值說明
--rime-dict必須 文件名Rime 詞庫
--to必須 支持的雙拼目標雙拼方案

命令 convert_fixed_sp

轉換固定碼表的雙拼方案爲其他方案。可以將本方案的自然碼雙拼轉換成其他雙拼。

輸入雙拼方案由通用參數中的 --double-pinyin 指定,輸出方案由 --to 指定。

參數取值說明
--rime-dict必須 文件名Rime 詞庫
--to必須 支持的雙拼目標雙拼方案