中州韵详解02:码表结构
RIME
浏览 - 次 字数1014 2019-05-07

码表概述

码表类输入法的「码表」,无非「单行单义」与「单行多义」两类。

单行多义

kkkk 口 㗊
fcu 去 云 支

单行单义

口	kkkk
㗊	kkkk
去	fcu
云	fcu
支	fcu

同一张表,可以写成「单行单义」或「单行多义」两种格式。两种格式,仅是书写方式上的不同,通常而言,「单行单义」有更好的可扩展性。仅以无词频信息的纯两列码表而言,排在上头的条目优先权高于下面的,这样就天然处理掉了「重码排序」问题。如果有第三列词频信息,还可以计频排序。「单行多义」表,就失去了一次性定义这些信息的可能性。故中州韵,采用的便是「单行单义」表。

表头的声明

sort: by_weight
columns:
  - text
  - code
  - weight
  - stem

「by_weight」表明以「词频」排序,而下面则定义了,表体结构依次是「汉字列,编码列,词频列,造词码列」。

咱们五笔用户,是拒绝调频的,在这个表里,词频唯一的意义就是——它们是重码排序时的依据。

表尾的符号

,	yz	1000000	
。	yz	1000000	
!	yz	1000000	
、	yz	1000000	
?	yz	1000000	
:	yz	1000000	
—	yz	1000000	
;	yz	1000000

我们并不打算以「yz」的编码来打出这些「符号」,尽管完全可以这样做。你完全可以在这里用编码去定义一个你想打的「任意内容」,包括符号在内。 这里添加一系列的中文标点符号,是因为我们给「扩展词库」添加了「无码加词」时,兼容句中有符号的短语或句子。

你可以在「扩展词库」中添加「夜来风雨声,花落知多少」的句子,而无需手动添加编码。你看,这句诗中间有「逗号」,而添加这些表尾符号,是中州韵不会报错的原因所在。然而你得明白,五笔的造词规则,对于「长短语」的编码方式是「一,二,三,末」。标点可以有,但不可以位于「一,二,三,末」的位置上。

重新部署

你修改了 YAML 的文本内容,不管是改了些什么,中州韵是不知道的。因为如果每时每刻都去校验一下 YAML 的哈希值,那程序将慢得不可想象。所以,你得手动告诉中州韵,是时候更新一次二进制内容了,这里的方式,就是使用「重新部署」。你可以在输入法托盘图标处右键菜单中找到它。重新部署一次,修改后的内容就生效了。

调频与增删

你可以直接在主码表这里通过修改词频值,来控制重码排序。也可以增加或删除条目。然而,我们建议不要在这里做条目「增加」,你可以把它添到「扩展词库」里,这样更有条理一些。

WuBiXiaoZhu