博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中州韵输入法(rime)导入搜狗词库
阅读量:5365 次
发布时间:2019-06-15

本文共 2112 字,大约阅读时间需要 7 分钟。

rime是一个非常优秀的输入法,linux平台下的反应速度远超搜狗,也没有隐私风险。2012年开始接触它,到后来抛弃了它,因为rime自带的词库真的太弱了,也懒得折腾。最近发现一个词库转换软件叫imewlconverter,于是发现rime导入其他输入法(比如搜狗)的词库其实还挺方便的。

要导入词库需要两个文件:

1489132-20190911165601897-429019885.png

1. luna_pinyin_simp.custom.yaml 是配置文件

rime在部署的时候会自动加载。因为我用的是明月简体schema,所以是这个名字。如果你用的是明月schema,那就是luna_pinyin.custom.yaml

# luna_pinyin_simp.custom.yamlpatch:# 指定自定义词库位置  "translator/dictionary": luna_pinyin.sogou

2. luna_pinyin.sogou.dict.yaml 是词库文件

文件名是上面配置文件中设置的名字加上.dict.yaml后缀。内容是一个rime定义的文件头加上转换好的txt格式的词库:

1489132-20190911171712437-1093533126.png

将这两个文件放置在rime的配置文件夹之后,点击rime输入法图标的“重新部署”按钮就可以了。输入“yxlm”会自动出现原来没有的候选词“英雄联盟”。

3. 怎么生成这个luna_pinyin.sogou.dict.yaml

  • 首先安装一下imewlconverter,怎么安装就不说了。
  • 然后下载搜狗的scel细胞词库到某个文件夹
  • 然后在这个文件夹写一个批量转换的python脚本(见最后)。
  • 然后运行这个脚本,就会用imewlconverter把所有的scel细胞词库文件转换成一个txt格式的词库文件,并以自定义的文件名保存,然后添加rime定义的yaml头。
  • 拷贝文件到rime配置文件夹。
#!/usr/bin/env python# coding=utf-8# ============================================================# filename : convert.py#  author  : chdy.uuid@gmail.com# modified : 2019-09-11 15:39# descrip. :# ============================================================from glob import globimport osimport shutilif not os.path.exists('./output/'):    os.mkdir('output')original_files = glob("*.scel")print("---------------")for of in original_files:    if ' ' in of:        new_fn = of.replace(' ', '_')        print('rename "%s" to "%s"' % (of, new_fn))        shutil.move(of, new_fn)        of = new_fn    print('>> ', of)print("---------------")original_files = glob("*.scel")# print(original_files)yaml_file = 'luna_pinyin.sogou.dict.yaml'command='''imewlconverter -i:scel %s -o:rime "%s"''' % (str(original_files).strip('[]').replace(',', ''), yaml_file)print(command)os.system(command)data = '''---name: luna_pinyin.sogouversion: "1.0"sort: by_weightuse_preset_vocabulary: true# 此处为扩充词库(基本)默认链接载入的词库import_tables:    - luna_pinyin    - luna_pinyin.sogou...# 自定义词语'''with open(yaml_file, "r+") as f:     old = f.read()     f.seek(0)     f.write(data)     f.write(old)print("Now don't forget to copy the file to rime config folder (like ~/.config/fcitx/rime)")

https://www.jianshu.com/p/300bbe1602d4

转载于:https://www.cnblogs.com/dylanchu/p/11507492.html

你可能感兴趣的文章
1、Python基础
查看>>
Unity The Tag Attribute Matching Rule
查看>>
试着理解下kvm
查看>>
WebService学习总结(二)--使用JDK开发WebService
查看>>
Tizen参考手机RD-210和RD-PQ
查看>>
竞价广告系统-位置拍卖理论
查看>>
策略模式 C#
查看>>
[模板]树状数组
查看>>
[HDU 6447][2018CCPC网络选拔赛 1010][YJJ's Salesman][离散化+线段树+DP]
查看>>
设计模式学习的好方法
查看>>
感谢Leslie Ma
查看>>
几种排序方法
查看>>
查看数据库各表的信息
查看>>
第一阶段测试题
查看>>
第二轮冲刺第五天
查看>>
图片压缩
查看>>
Hadoop-2.6.5安装
查看>>
ES6思维导图
查看>>
第四周作业
查看>>
20151121
查看>>