Rime 输入法方案配置手册
## 一、 Schema.yaml
文件详解
1.1 开始之前
1 2 # Rime schema # encoding: utf-8
1.2 描述档
name:
方案的显示名偁〔即出现于方案选单中以示人的,通常为中文〕
schema_id:
方案内部名,在代码中引用此方案时以此名为正,通常由英文、数字、下划线组成
author:
发明人、撰写者。如果您对方案做出了修改,请保留原作者名,并将自己的名字加在后面
description:
请简要描述方案历史、码表来源、该方案规则等
dependencies:
如果本方案依赖于其它方案〔通常来说会依頼其它方案做为反查,抑或是两种或多种方案混用时〕
version:
版本号,在发布新版前请确保已陞版本号
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 schema: name: "苍颉检字法" schema_id: cangjie6 author: - "发明人 朱邦复先生、沉红莲女士" dependencies: - luna_pinyin - jyutping - zyenpheng description: | 第六代仓颉输入法 码表由雪斋、惜缘和crazy4u整理 version: 0.19
1.3 开关
通常包含以下数个:
ascii_mode
是中英文转换开关。默认0
为中文,1
为英文
full_shape
是全角符号/半角符号开关。注意,开启全角时英文字母亦为全角。0
为半角,1
为全角
extended_charset
是字符集开关。0
为CJK基本字符集,1
为CJK全字符集
ascii_punct
是中西文标点转换开关,0
为中文句读,1
为西文标点。
simplification
是转化字开关。一般情况下与上同,0
为不开启转化,1
为转化。
simplification
选项名偁可自定义,亦可添加多套替换用字方案:
1 2 3 - name: zh_cn states: ["汉字", "汉字"] reset: 0
或
1 2 3 4 5 6 - options: [ zh_trad, zh_cn, zh_mars ] states: - 字型 → 汉字 - 字型 → 汉字 - 字型 → 䕼茡 reset: 0
name
/options
名:须与simplifier
中option_name
相同
states
:可不写,如不写则此开关存在但不可见,可由快捷键操作
reset
:设置默认状态〔reset
可不写,此时切换窗口时不会重置到默认状态〕
字符集过滤。此选项没有默认名偁,须配合charset_filter
使用。可单用,亦可添加多套字符集:
1 2 3 - name: gbk states: [ 增广, 常用 ] reset: 0
或
1 2 3 4 5 6 7 8 - options: [ utf-8, big5hkscs, big5, gbk, gb2312 ] states: - 字集 → 全 - 字集 → 港台 - 字集 → 台 - 字集 → 大陆 - 字集 → 简体 reset: 0
name
/options
名:须与charset_filter``@
后的tag相同
避免同时使用字符集过滤和extended_charset
示例
1 2 3 4 5 6 7 8 9 10 11 12 switches: - name: ascii_mode reset: 0 states: ["中文", "西文"] - name: full_shape states: ["半角", "全角"] - name: extended_charset states: ["通用", "增广"] - name: simplification states: ["汉字", "汉字"] - name: ascii_punct states: ["句读", "符号"]
1.4 引擎
引擎分四组:
一、processors
ascii_composer
处理西文模式及中西文切
recognizer
与matcher
搭配,处理符合特定规则的输入码,如网址、反查等tags
key_binder
在特定条件下将按键绑定到其他按键,如重定义逗号、句号为候选翻页、开关快捷键等
speller
拼写处理器,接受字符按键,编辑输入
punctuator
句读处理器,将单个字符按键直接映射为标点符号或文字
selector
选字处理器,处理数字选字键〔可以换成别的哦〕、上、下候选定位、换页
navigator
处理输入栏内的光标移动
express_editor
编辑器,处理空格、回车上屏、回退键
fluid_editor
句式编辑器,用于以空格断词、回车上屏的【注音】、【语句流】等输入方案,替换express_editor
chord_composer
和絃作曲家或曰并击处理器,用于【宫保拼音】等多键并击的输入方案
lua_processor
使用lua
自定义按键,后接@
+lua
函数名
lua
函数名即用户文件夹内rime.lua
中函数名,参数为(key, env)
二、segmentors
这批组件识别不同内容类型,将输入码分段并加上tag
ascii_segmentor
标识西文段落〔譬如在西文模式下〕字母直接上屛
matcher
配合recognizer
标识符合特定规则的段落,如网址、反查等,加上特定tag
abc_segmentor
标识常规的文字段落,加上abc
这个tag
punct_segmentor
标识句读段落〔键入标点符号用〕加上punct
这个tag
fallback_segmentor
标识其他未标识段落
affix_segmentor
用户自定义tag
lua_segmentor
使用lua
自定义切分,后接@
+lua
函数名
三、translators
echo_translator
没有其他候选字时,回显输入码〔输入码可以Shift
+Enter
上屛〕
punct_translator
配合punct_segmentor
转换标点符号
table_translator
码表翻译器,用于仓颉、五笔等基于码表的输入方案
- 此项可加载多个实例,后接@
+翻译器名〔如:cangjie
、wubi
等〕7. script_translator
脚本翻译器,用于拼音、粤拼等基于音节表的输入方案
- 此项可加载多个实例,后接@
+翻译器名〔如:pinyin
、jyutping
等〕11. reverse_lookup_translator
反查翻译器,用另一种编码方案查码
lua_translator
使用lua
自定义输入,例如动态输入当前日期、时间,后接@
+lua
函数名
lua
函数名即用户文件夹内rime.lua
中函数名,参数为(input, seg, env)
可以env.engine.context:get_option("option_name")
方式绑定到switch
开关/key_binder
快捷键
四、filters
uniquifier
过滤重复的候选字,有可能来自**simplifier
**
cjk_minifier
字符集过滤〔仅用于script_translator
,使之支持extended_charset
开关〕
single_char_filter
单字过滤器,如加载此组件,则屛敝词典中的词组〔仅table_translator
有效〕
simplifier
用字转换
reverse_lookup_filter
反查滤镜,以更灵活的方式反查,Rime1.0后替代_reverse_lookup_translator
_
此项可加载多个实例,后接@
+滤镜名〔如:pinyin_lookup
、jyutping_lookup
等〕
charset_filter
字符集过滤
后接@
+字符集名〔如:utf-8
(无过滤)、big5
、big5hkscs
、gbk
、gb2312
〕
lua_filter
使用lua
自定义过滤,例如过滤字符集、调整排序,后接@
+lua
函数名
lua
函数名即用户文件夹内rime.lua
中函数名,参数为(input, env)
可以env.engine.context:get_option("option_name")
方式绑定到switch
开关/key_binder
快捷键
示例
cangjie6.schema.yaml
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 engine: processors: - ascii_composer - recognizer - key_binder - speller - punctuator - selector - navigator - express_editor segmentors: - ascii_segmentor - matcher - affix_segmentor@pinyin - affix_segmentor@jyutping - affix_segmentor@pinyin_lookup - affix_segmentor@jyutping_lookup - affix_segmentor@reverse_lookup - abc_segmentor - punct_segmentor - fallback_segmentor translators: - punct_translator - table_translator - script_translator@pinyin - script_translator@jyutping - script_translator@pinyin_lookup - script_translator@jyutping_lookup - lua_translator@get_date filters: - simplifier@zh_simp - uniquifier - cjk_minifier - charset_filter@gbk - reverse_lookup_filter@middle_chinese - reverse_lookup_filter@pinyin_reverse_lookup - reverse_lookup_filter@jyutping_reverse_lookup - lua_filter@single_char_first
1.5 细项配置
凡comment_format
、preedit_format
、speller/algebra
所用之正则表达式,请参阅「Perl正则表达式」
引擎中所举之加粗者均可在下方详细描述,格式为:
1 2 name: branches: configurations
或
1 2 3 name: branches: - configurations
一、speller
alphabet:
定义本方案输入键
initials:
定义仅作始码之键
finals:
定义仅作末码之键
delimiter:
上屛时的音节间分音符
algebra:
拼写运算规则,由之算出的拼写汇入prism
中
max_code_length:
形码最大码长,超过则顶字上屛〔number
〕
auto_select:
自动上屛〔true
或false
〕
auto_select_pattern:
自动上屏规则,以正则表达式描述,当输入串可以被匹配时自动顶字上屏。
use_space:
以空格作输入码〔true
或false
〕
1 2 3 4 5 6 xform --改写〔不保留原形〕 derive --衍生〔保留原形〕 abbrev --简拼〔出字优先级较上两组更低〕 fuzz --畧拼〔此种简拼仅组词,不出单字〕 xlit --变换〔适合大量一对一变换〕 erase --删除
示例
luna_pinyin.schema.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 speller: alphabet: zyxwvutsrqponmlkjihgfedcba delimiter: " '" algebra: - erase/^xx$/ - abbrev/^([a-z]).+$/$1/ - abbrev/^([zcs]h).+$/$1/ - derive/^([nl])ve$/$1ue/ - derive/^([jqxy])u/$1v/ - derive/un$/uen/ - derive/ui$/uei/ - derive/iu$/iou/ - derive/([aeiou])ng$/$1gn/ - derive/([dtngkhrzcs])o(u|ng)$/$1o/ - derive/ong$/on/ - derive/ao$/oa/ - derive/([iu])a(o|ng?)$/a$1$2/
二、segmentor
segmentor
配合recognizer
标记出tag
。这里会用到affix_segmentor
和abc_translator
tag
用在translator
、reverse_lookup_filter
、simplifier
中用以标定各自作用范围
如果不需要用到extra_tags
则不需要单独配置segmentor
tag:
设置其tag
prefix:
设置其前缀标识,可不塡,不塡则无前缀
suffix:
设置其尾缀标识,可不塡,不塡则无尾缀
tips:
设置其输入前提示符,可不塡,不塡则无提示符
closing_tips:
设置其结束输入提示符,可不塡,不塡则无提示符
extra_tags:
为此segmentor
所标记的段落插上其它tag
当affix_segmentor
和translator
重名时,两者可併在一处配置,此处1-5条对应下面19-23条。abc_segmentor
仅可设extra_tags
示例
cangjie6.schema.yaml
1 2 3 4 5 6 7 8 9 reverse_lookup: tag: reverse_lookup prefix: "`" suffix: ";" tips: "【反查】" closing_tips: "【苍颉】" extra_tags: - pinyin_lookup - jyutping_lookup
三、translator
每个方案有一个主translator
,在引擎列表中不以@
+翻译器名定义,在细项配置时直接以translator:
命名。以下加粗项为可在主translator
中定义之项,其它可在副〔以@
+翻译器名命名〕translator
中定义
enable_charset_filter:
是否开启字符集过滤〔仅table_translator
有效。启用cjk_minifier
后可适用于script_translator
〕
enable_encoder:
是否开启自动造词〔仅table_translator
有效〕
encode_commit_history:
是否对已上屛词自动成词〔仅table_translator
有效〕
max_phrase_length:
最大自动成词词长〔仅table_translator
有效〕
enable_completion:
提前显示尚未输入完整码的字〔仅table_translator
有效〕
sentence_over_completion:
在无全码对应字而仅有逐键提示时也开启智能组句〔仅table_translator
有效〕
strict_spelling:
配合speller
中的fuzz
规则,仅以畧拼码组词〔仅table_translator
有效〕
disable_user_dict_for_patterns:
禁止某些编码录入用户词典
enable_sentence:
是否开启自动造句
enable_user_dict:
是否开启用户词典〔用户词典记录动态字词频、用户词〕
dictionary:
翻译器将调取此字典文件
prism:
设置由此主翻译器的speller
生成的棱镜文件名,或此副编译器调用的棱镜名
user_dict:
设置用户词典名
db_class:
设置用户词典类型,可设tabledb
〔文本〕或userdb
〔二进制〕
preedit_format:
上屛码自定义
comment_format:
提示码自定义
spelling_hints:
设置多少字以内候选标注完整带调拼音〔仅script_translator
有效〕
initial_quality:
设置此翻译器出字优先级
tag:
设置此翻译器针对的tag
。可不塡,不塡则仅针对abc
prefix:
设置此翻译器的前缀标识,可不塡,不塡则无前缀
suffix:
设置此翻译器的尾缀标识,可不塡,不塡则无尾缀
tips:
设置此翻译器的输入前提示符,可不塡,不塡则无提示符
closing_tips:
设置此翻译器的结束输入提示符,可不塡,不塡则无提示符
contextual_suggestions:
是否使用语言模型优化输出结果〔需配合grammar
使用〕
max_homophones:
最大同音簇长度〔需配合grammar
使用〕
max_homographs:
最大同形簇长度〔需配合grammar
使用〕
示例
cangjie6.schema.yaml 苍颉主翻译器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 translator: dictionary: cangjie6 enable_charset_filter: true enable_sentence: true enable_encoder: true encode_commit_history: true max_phrase_length: 5 preedit_format: - xform/^([a-z ])$/$1|\U$1\E/ - xform/(?<=[a-z])\s(?=[a-z])// - "xlit|ABCDEFGHIJKLMNOPQRSTUVWXYZ|日月金木水火土竹戈十大中一弓人心手口尸廿山女田止卜片|" comment_format: - "xlit|abcdefghijklmnopqrstuvwxyz~|日月金木水火土竹戈十大中一弓人心手口尸廿山女田止卜片・|" disable_user_dict_for_patterns: - "^z.$" initial_quality: 0.75
cangjie6.schema.yaml 拼音副翻译器
1 2 3 4 5 6 7 8 9 10 11 12 pinyin: tag: pinyin dictionary: luna_pinyin enable_charset_filter: true prefix: 'P' #须配合recognizer suffix: ';' #须配合recognizer preedit_format: - "xform/([nl])v/$1ü/" - "xform/([nl])ue/$1üe/" - "xform/([jqxy])v/$1u/" tips: "【汉拼】" closing_tips: "【苍颉】"
pinyin_simp.schema.yaml 拼音・简化字主翻译器
1 2 3 4 5 6 7 translator: dictionary: luna_pinyin prism: luna_pinyin_simp preedit_format: - xform/([nl])v/$1ü/ - xform/([nl])ue/$1üe/ - xform/([jqxy])v/$1u/
luna_pinyin.schema.yaml 朙月拼音用户短语
1 2 3 4 5 6 7 custom_phrase: #这是一个table_translator dictionary: "" user_dict: custom_phrase db_class: tabledb enable_sentence: false enable_completion: false initial_quality: 1
四、reverse_lookup_filter
此滤镜须挂在translator
上,不影响该translator
工作
tags:
设置其作用范围
overwrite_comment:
是否覆盖其他提示
dictionary:
反查所得提示码之码表
comment_format:
自定义提示码格式
示例
cangjie6.schema.yaml
1 2 3 4 5 6 7 8 pinyin_reverse_lookup: #该反查滤镜名 tags: [ pinyin_lookup ] #挂在这个tag所对应的翻译器上 overwrite_comment: true dictionary: cangjie6 #反查所得为苍颉码 comment_format: - "xform/$/〕/" - "xform/^/〔/" - "xlit|abcdefghijklmnopqrstuvwxyz |日月金木水火土竹戈十大中一弓人心手口尸廿山女田止卜片、|"
五、simplifier
option_name:
对应switches
中设置的切换项名
opencc_config:
用字转换配置文件
位于:rime_dir/opencc/
,自带之配置文件含:
繁转简〔默认〕:t2s.json
繁转台湾:t2tw.json
繁转香港:t2hk.json
简转繁:s2t.json
tags:
设置转换范围
tips:
设置是否提示转换前的字,可塡none
〔或不塡〕、char
〔仅对单字有效〕、all
show_in_comment:
设置是否仅将转换结果显示在备注中
excluded_types:
取消特定范围〔一般为_reverse_lookup_translator
_〕转化用字
示例
修改自 luna_pinyin_kunki.schema
1 2 3 4 5 zh_tw: option_name: zh_tw opencc_config: t2tw.json tags: [ abc ] #abc对应abc_segmentor tips: none
六、chord_composer
_
并击把键盘分两半,相当于两块键盘。两边同时击键,系统默认在其中一半上按的键先于另一半,由此得出上屛码
alphabet:
字母表,包含用于并击的按键。击键虽有先后,形成并击时,一律以字母表顺序排列
algebra:
拼写运算规则,将一组并击编码转换为拼音音节
output_format:
并击完成后套用的式样,追加隔音符号
prompt_format:
并击过程中套用的式样,加方括弧
示例
combo_pinyin.schema.yaml
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 chord_composer: # 字母表,包含用于并击的按键 # 击键虽有先后,形成并击时,一律以字母表顺序排列 alphabet: "swxdecfrvgtbnjum ki,lo." # 拼写运算规则,将一组并击编码转换为拼音音节 algebra: # 先将物理按键字符对应到宫保拼音键位中的拼音字母 - 'xlit|swxdecfrvgtbnjum ki,lo.|sczhlfgdbktpRiuVaNIUeoE|' # 以下根据宫保拼音的键位分别变换声母、韵母部分 # 组合声母 - xform/^zf/zh/ - xform/^cl/ch/ - xform/^fb/m/ - xform/^ld/n/ - xform/^hg/r/ …… # 声母独用时补足隠含的韵母 - xform/^([bpf])$/$1u/ - xform/^([mdtnlgkh])$/$1e/ - xform/^([mdtnlgkh])$/$1e/ - xform/^([zcsr]h?)$/$1i/ # 并击完成后套用的式样,追加隔音符号 output_format: - "xform/^([a-z]+)$/$1'/" # 并击过程中套用的式样,加方括弧 prompt_format: - "xform/^(.*)$/[$1]/"
七、lua
lua_translator
lua_filter
lua_processor
lua_segmentor
示例
rime.lua
1 2 3 4 5 6 7 8 function get_date(input, seg, env) --- 以 show_date 为开关名或 key_binder 中 toggle 的对象 on = env.engine.context:get_option("show_date") if (on and input == "date") then --- Candidate(type, start, end, text, comment) yield(Candidate("date", seg.start, seg._end, os.date("%Y年%m月%d日"), " 日期")) end end
八、其它
包括recognizer
、key_binder
、punctuator
。标点 、快捷键 、二三选重 、特殊字符 等均于此设置
import_preset:
由外部统一文件导入
grammar:
下设:
language:
取值zh-han[ts]-t-essay-bg[wc]
collocation_max_length:
最大搭配长度(整句输入可忽畧此项)
collocation_min_length:
最小搭配长度(整句输入可忽畧此项)
recognizer:
下设patterns:
配合segmentor
的prefix
和suffix
完成段落划分、tag
分配
前字段可以为以affix_segmentor@someTag
定义的Tag
名,或者punct
、reverse_lookup
两个内设的字段。其它字段不调用输入法引擎,输入即输出〔如url
等字段〕
key_binder:
下设bindings:
设置功能性快捷键
1 2 3 4 paging 翻䈎用 has_menu 操作候选项用 composing 操作输入码用 always 全域
accept
和send
可用字段除A-Za-z0-9外,还包含以下键板上实际有的键:
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 BackSpace 退格 Tab 水平定位符 Linefeed 换行 Clear 清除 Return 回车 Pause 暂停 Sys_Req 印屏 Escape 退出 Delete 删除 Home 原位 Left 左箭头 Up 上箭头 Right 右箭头 Down 下箭头 Prior、Page_Up 上翻 Next、Page_Down 下翻 End 末位 Begin 始位 Shift_L 左Shift Shift_R 右Shift Control_L 左Ctrl Control_R 右Ctrl Meta_L 左Meta Meta_R 右Meta Alt_L 左Alt Alt_R 右Alt Super_L 左Super Super_R 右Super Hyper_L 左Hyper Hyper_R 右Hyper Caps_Lock 大写锁 Shift_Lock 上档锁 Scroll_Lock 滚动锁 Num_Lock 小键板锁 Select 选定 Print 打印 Execute 执行 Insert 插入 Undo 还原 Redo 重做 Menu 菜单 Find 蒐寻 Cancel 取消 Help 帮助 Break 中断 space exclam ! quotedbl " numbersign # dollar $ percent % ampersand & apostrophe ' parenleft ( parenright ) asterisk * plus + comma , minus - period . slash / colon : semicolon ; less < equal = greater > question ? at @ bracketleft [ backslash bracketright ] asciicircum ^ underscore _ grave ` braceleft { bar | braceright } asciitilde ~ KP_Space 小键板空格 KP_Tab 小键板水平定位符 KP_Enter 小键板回车 KP_Delete 小键板删除 KP_Home 小键板原位 KP_Left 小键板左箭头 KP_Up 小键板上箭头 KP_Right 小键板右箭头 KP_Down 小键板下箭头 KP_Prior、KP_Page_Up 小键板上翻 KP_Next、KP_Page_Down 小键板下翻 KP_End 小键板末位 KP_Begin 小键板始位 KP_Insert 小键板插入 KP_Equal 小键板等于 KP_Multiply 小键板乘号 KP_Add 小键板加号 KP_Subtract 小键板减号 KP_Divide 小键板除号 KP_Decimal 小键板小数点 KP_0 小键板0 KP_1 小键板1 KP_2 小键板2 KP_3 小键板3 KP_4 小键板4 KP_5 小键板5 KP_6 小键板6 KP_7 小键板7 KP_8 小键板8 KP_9 小键板9
editor
用以订制操作键〔不支持import_preset:
〕,键板键名同key_binder/bindings
中的accept
和send
,效果定义如下:
1 2 3 4 5 6 7 8 9 10 11 12 confirm 上屏候选项 commit_comment 上屏候选项备注 commit_raw_input 上屏原始输入 commit_script_text 上屏变换后输入 commit_composition 语句流单字上屏 revert 撤消上次输入 back 按字符回退 back_syllable 按音节回退 delete_candidate 删除候选项 delete 向后删除 cancel 取消输入 noop 空
punctuator:
下设full_shape:
和half_shape:
分别控制全角模式下的符号和半角模式下的符号,另有use_space:
空格顶字〔true
或false
〕
每条标点项可加commit
直接上屏和pair
交替上屏两种模式,默认为选单模式
示例
修改自 cangjie6.schema.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 key_binder: import_preset: default bindings: - {accept: semicolon, send: 2, when: has_menu} #分号选第二重码 - {accept: apostrophe, send: 3, when: has_menu} #引号选第三重码 - {accept: "Control+1", select: .next, when: always} - {accept: "Control+2", toggle: full_shape, when: always} - {accept: "Control+3", toggle: simplification, when: always} - {accept: "Control+4", toggle: extended_charset, when: always} editor: bindings: Return: commit_comment punctuator: import_preset: symbols half_shape: "'": {pair: ["「", "」"]} #第一次按是「,第二次是」 "(": ["〔", "["] #弹出选单 .: {commit: "。"} #无选单,直接上屛。优先级最高
1.6 其它
Rime还为每个方案提供选单和一定的外观订制能力
通常情况下menu
在default.yaml
中定义〔或用户修改档default.custom.yaml
〕,style
在squirrel.yaml
或weasel.yaml
〔或用户修改档squirrel.custom.yaml
或weasel.custom.yaml
〕
示例
1 2 3 4 menu: alternative_select_labels: [ ①, ②, ③, ④, ⑤, ⑥, ⑦, ⑧, ⑨ ] # 修改候选标籤 alternative_select_keys: ASDFGHJKL #如编码字符占用数字键则须另设选字键 page_size: 5 #选单每䈎显示个数
Dict.yaml
详解
开始之前
1 2 3 # Rime dict # encoding: utf-8 〔你还可以在这注释字典来源、变动记录等〕
描述档
name:
内部字典名,也即schema
所引用的字典名,确保与文件名相一致
version:
如果发布,请确保每次改动陞版本号
示例
1 2 name: "cangjie6.extended" version: "0.1"
配置
sort:
字典初始 排序,可选original
或by_weight
use_preset_vocabulary:
是否引入「八股文」〔含字词频、词库〕
max_phrase_length:
配合use_preset_vocabulary:
,设置导入词条最大词长
min_phrase_weight:
配合use_preset_vocabulary:
,设置导入词条最小词频
columns:
定义码表以Tab
分隔出的各列,可设text
【文本】、code
【码】、weight
【权重】、stem
【造词码】
import_tables:
加载其它外部码表
encoder:
形码造词规则
exclude_patterns:
rules:
可用length_equal:
和length_in_range:
定义。大写字母表示字序,小写字母表示其所跟随的大写字母所以表的字中的编码序
tail_anchor:
造词码包含结构分割符〔仅用于仓颉〕
exclude_patterns
取消某编码的造词资格
示例
cangjie6.extended.dict.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 sort: by_weight use_preset_vocabulary: false import_tables: - cangjie6 #单字码表由cangjie6.dict.yaml导入 columns: #此字典为纯词典,无单字编码,仅有字和词频 - text #字/词 - weight #字/词频 encoder: exclude_patterns: - '^z.*$' rules: - length_equal: 2 #对于二字词 formula: "AaAzBaBbBz" #取第一字首尾码、第二字首次尾码 - length_equal: 3 #对于三字词 formula: "AaAzBaYzZz" #取第一字首尾码、第二字首尾码、第三后缀码 - length_in_range: [4, 5] #对于四至五字词 formula: "AaBzCaYzZz" #取第一字首码,第二后缀码、第三字首码、倒数第二后缀码、最后一后缀码 tail_anchor: "'"
码表
以Tab
分隔各列,各列依columns:
定义排列。
示例
cangjie6.dict.yaml
1 2 3 4 5 columns: - text #第一列字/词 - code #第二列码 - weight #第三列字/词频 - stem #第四列造词码
cangjie6.dict.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 个 owjr 246268 ow'jr 看 hqbu 245668 中 l 243881 呢 rsp 242970 来 doo 235101 吗 rsqf 221092 为 bhnf 211340 会 owfa 209844 她 vpd 204725 与 xyc 203975 给 vfor 193007 等 hgdi 183340 这 yymr 181787 用 bq 168934 b'q