rime是一個很是優秀的輸入法,linux平臺下的反應速度遠超搜狗,也沒有隱私風險。2012年開始接觸它,到後來拋棄了它,由於rime自帶的詞庫真的太弱了,也懶得折騰。最近發現一個詞庫轉換軟件叫 imewlconverter
,因而發現rime導入其餘輸入法(好比搜狗)的詞庫其實還挺方便的。python
要導入詞庫須要兩個文件: linux
1. luna_pinyin_simp.custom.yaml 是配置文件
rime在部署的時候會自動加載。由於我用的是明月簡體schema,因此是這個名字。若是你用的是明月schema,那就是luna_pinyin.custom.yaml
。ui
# luna_pinyin_simp.custom.yaml patch: # 指定自定義詞庫位置 "translator/dictionary": luna_pinyin.sogou
2. luna_pinyin.sogou.dict.yaml 是詞庫文件
文件名是上面配置文件中設置的名字加上.dict.yaml
後綴。內容是一個rime定義的文件頭加上轉換好的txt格式的詞庫:spa
將這兩個文件放置在rime的配置文件夾以後,點擊rime輸入法圖標的「從新部署」按鈕就能夠了。輸入「yxlm」會自動出現原來沒有的候選詞「英雄聯盟」。code
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 glob import os import shutil if 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.sogou version: "1.0" sort: by_weight use_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)")