中州韵Rime是佛振开发的一款跨平台的开源输入法。支持拼音,双拼,五笔,仓颉等多种输入方案的简繁输入。我在Linux下使用多年,稳定朴素,体验很好。在MintLinux(Ubuntu)命令行下直接用apt安装fcitx-rime包即可。和大多数Linux下的开源软件一样,rime没有完整的图形化配置界面。它的各项配置由 .config/fcitx/rime 目录下的一系列文件控制。 明月拼音·简化字 方案的用户自定义配置文件为luna_pinyin_simp.custom.yaml ,可定义扩充词库、加载自定义符号库、模糊拼音等。具体的初始设置过程可以参考这篇文章。
我因为经常有字不知道拼音无法输出,偶尔会想念其他平台软件提供的拆字输入法。于是干脆为Rime做了一个拆字词库。基本思路是将汉字拆开成不同部分,然后将各个部分转化为拼音即可。借助现成的汉语拆字字典(包含17803汉字,共27603种拆法)和汉字拼音转换工具(Python 版),很容易完成。具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
#! /usr/bin/python # coding = utf-8 # By Gerry @ 2019.12.28 # Usage: make chaizi dictionary for rime # base on : # https://github.com/mozillazg/python-pinyin # https://github.com/kfcd/chaizi def chai(): from pypinyin import lazy_pinyin lines = open("chaizi-master/chaizi-jt.txt").readlines() # 载入简体拆字字典 dfile = open("luna_pinyin_simp.chaizi.dict.yaml","w") # 打开待写入字库文件 dfile.write( """--- name: luna_pinyin_simp.chaizi version: "2019.12.28" sort: by_weight use_preset_vocabulary: true ... """ ) for line in lines: data = line.strip().split("\t") for i in range(1,len(data)): # 笔画转拼音,以字母u开头 py = "u"+"".join(lazy_pinyin(data[i].replace(" ",""))) if py.isalpha(): # 生成rime词库要求格式,默认词频为1 item = data[0].strip()+"\t"+py+"\t1\n" dfile.write(item) else: print(data[i]) dfile.close() def main(): chai() if __name__ == "__main__": main() |
将得到的拆字字库 luna_pinyin_simp.chaizi.dict.yaml 放到配置目录中,并在输入法对应的配置文件 luna_pinyin_simp.extended.dict.yaml 中加载该字库并重新部署(Deploy)输入法即可。不熟悉python的同学可以直接在此下载词库。
import_tables:
- luna_pinyin
- luna_pinyin_simp.chaizi ### 拆字字库
虽然有个别成分因为缺乏对应的拼音而没有被列入,但起码解决了Rime输入法拆字功能的有无问题。丒(urenyi)伿(urenzhi)骉(umamama)这样的生僻字都可以直接输入,终于不用频繁去汉典上查偏旁部首了。希腊字母,特殊字符的输入也可以如法炮制。有更高要求的用户在此基础上自行调整即可。