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必须 支持的双拼目标双拼方案