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