已经完美解决----rime输入法:为何无法使用自己造的词库?

系统字体配置、中文显示和输入法问题
回复
pengsir
帖子: 137
注册时间: 2015-07-24 8:29
系统: ubuntu

已经完美解决----rime输入法:为何无法使用自己造的词库?

#1

帖子 pengsir » 2024-04-14 9:01

我按照网页的提示 https://gist.github.com/lotem/5443073#f ... -dict-yaml.

设置 luna_pinyin.custom.yaml

代码: 全选

 cat   luna_pinyin.custom.yaml
# encoding: utf-8
patch:
  translator/dictionary: luna_pinyin.my
自定义词库文件的设置:

代码: 全选

cat  luna_pinyin.my.dict.yaml
# Rime dictionary
# encoding: utf-8

---
name: luna_pinyin.my
version: "2013.04.23"
sort: by_weight
use_preset_vocabulary: true
# 從 luna_pinyin.dict.yaml 導入包含單字的碼表
import_tables:
  - luna_pinyin
...

# table begins

# 自定義的詞條

钕载	nv zai 100
设置完成后,重新部署,并重启了电脑。


我输入 "nv zai",并没有显示 钕载。
请问,为何无法使用自己造的词库?
上次由 pengsir 在 2024-04-17 8:47,总共编辑 2 次。
头像
yq-ysy
论坛版主
帖子: 4454
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)

Re: rime输入法:为何无法使用自己造的词库?

#2

帖子 yq-ysy » 2024-04-14 13:26

我自己做了“单手笔顺输入法”Rime版,我的经验是:

-------------------- 最简单的方法 ------------------------

直接在原本的 luna_pinyin.dict.yaml 文件里加二行,调用你的自定义“子词库” luna_pinyin.my.dict.yaml
(配置文件里写的是简称,只有前端名称,省略了后面的.dict.yaml )

代码: 全选

import_tables:
  - luna_pinyin.my
然后,“子词库”完整的文件名应该是 luna_pinyin.my.dict.yaml ,应该就可以了。

-------------------- 如果不行,就按以下的方法 ------------------------


(1)你不要在 luna_pinyin.custom.yaml 文件里设置词库,
而应该是在 luna_pinyin.schema.yaml 文件的 translator: 里设置词库,也就是指定词库文件名:
(注意!完整的文件名应该是 luna_pinyin.my.dict.yaml ,配置文件里写的是简称,只有前端名称,省略了后面的.dict.yaml )

代码: 全选

translator:                # 编码翻译器(注意不要与转译器弄混,少了一个s)
# # # 单手笔顺输入法的词典:单字近3万个,核心词汇36万个,扩展词汇(可选)243万个,含精简码、六全码。
  dictionary:  luna_pinyin.my     # 调用输入法编码对应的字典,字典名称,确保与字典文件前端名称一致,也要与配置文件前端名称一致。
#  enable_user_dict: false  # 是否开启用户词典(用户词典记录动态字词频、用户词),true/false,在default.custom.yaml文件有相同的设置,不要在此修改。
(2)如果词库很大,可以分割成几个“子词库”文件,然后在 luna_pinyin.my.dict.yaml 文件里调用“子词库”:前面不要漏了字典名称等信息。

代码: 全选

name: luna_pinyin.my                    # 字典名称,确保与字典文件前端名称一致
version: "3.0"                    # 版本号
use_preset_vocabulary: ture       # 是否使用用户预设词汇
sort: by_weight                   # 字典初始排序,可选original或by_weight,by_weight 意图是不以码表的顺序排列重码字,而是比较字频。

import_tables:
  - luna_pinyin.my.text                 # 单字及标点符号数字序号,20988个汉字
  - luna_pinyin.my.guanjian             # 关键词库,54万——很大
  - luna_pinyin.my.changyong            # 常用词汇短语,192万——特大

注意!“子词库”完整的文件名应该是 luna_pinyin.my.text.dict.yaml ,luna_pinyin.my.guanjian.dict.yaml ,luna_pinyin.my.changyong.dict.yaml 。

(3)词库的格式,前面不要漏了字典名称等信息。
Rime对配置文件的格式要求很严格,错一点点都不行。我当年尝试过很多次才成功。

代码: 全选

name: luna_pinyin.my.guanjian            # 字典名称,确保与字典文件前端名称一致
version: "3.0"                 # 版本号
use_preset_vocabulary: ture    # 是否使用用户预设词汇
sort: by_weight                # 字典初始排序,可选original或by_weight,by_weight 意图是不以码表的顺序排列重码字,而是比较字频。
#use_preset_vocabulary:         # 是否引入「八股文」〔含字词频、词库〕
#max_phrase_length:             # 配合use_preset_vocabulary:,设定导入词条最大词长
#min_phrase_weight:             # 配合use_preset_vocabulary:,设定导入词条最小词频
columns:                        # 定义码表以Tab分隔出的各列,可设text【文本】、code【码】、weight【权重】、stem【造词码】
  - text                       # 字/词
  - code                       # 编码,数字位数越少越优先,数值越大越优先
  - weight                     # 字/词频权重,数值越大越优先
#import_tables:                 # 加载其它外部码表
#encoder:                       # 形码造词规则
#    exclude_patterns:
#    rules:                     # 可用length_equal:和length_in_range:定义。大写字母表示字序,小写字母表示其所跟随的大写字母所以表的字中的编码序
#    tail_anchor:               # 造词码包含结构分割符〔仅用于仓颉〕
#    exclude_patterns           # 取消某编码的造词资格
...
# 格式是:新词〈Tab〉编码〈Tab〉词频数值,。

钕载	nv zai	100
头像
astolia
论坛版主
帖子: 6463
注册时间: 2008-09-18 13:11

Re: rime输入法:为何无法使用自己造的词库?

#3

帖子 astolia » 2024-04-14 13:39

pengsir 写了: 2024-04-14 9:01 我输入 "nv zai",并没有显示 钕载。
请问,为何无法使用自己造的词库?
因为要用tab分隔,你的nv zai和100间用的是空格
头像
primes
帖子: 138
注册时间: 2007-05-10 11:43
系统: Ubuntu18.04、Win 10

Re: rime输入法:为何无法使用自己造的词库?

#4

帖子 primes » 2024-04-14 16:25

astolia 写了: 2024-04-14 13:39
pengsir 写了: 2024-04-14 9:01 我输入 "nv zai",并没有显示 钕载。
请问,为何无法使用自己造的词库?
因为要用tab分隔,你的nv zai和100间用的是空格
上屏内容[tab]编码[tab]权重
如果是拼音类,编码间有分隔的用空格,如
拼音:
你好[tab]ni[空格]hao[tab]100
五笔:
你好[tab]wqvb[tab]100
回复