原始码表格式说明

原始码表是多多生成输入法的主要依据文件,该文件必须是扩展名为txt的文本文件。多多支持文本的编码格式为UNICODE、ASCII或UTF8。

多多的原始码表格式,可以简单的看成两列,左列为词条,右列为编码,两列之间使用“Tab字符”分割。最简单的,您可以从微软Excel中复制两列,然后粘贴到文本文件中形成多多码表。

的	de
一	yi
是	shi
了	le
不	bu
在	zai
人	ren
有	you
国	guo
他	ta
我	wo
这	zhe
中	zhong
大	da
个	ge
和	he
...

请至少仔细阅读本段内第1,2,3节内容,以便您创建最简单的符合多多要求的txt码表。但是,为了准确地实现更加丰富的功能,建议您仔细阅读后续内容。

  1. 文件中应每行定义一个编码和词条(可以是任意的文字组合,该词条也称为候选字词),对于同码词条,请分开多行定义。

  2. 每行使用"字词"+"Tab"符号+"编码"的格式保存(不包含引号)。

    • "Tab"是普通键盘上的Tab按键产生的字符,在某些文档中也称为”水平制表符“;

    • 微软Excel表格复制到记事本文件中的列间隔字符与此Tab字符相同;

  3. 定义的字词中可以包含如下转义符,以便一次上屏多行文本等特殊词条:

    • 候选字词中可使用"\t"表示Tab字符(引号内,不包含引号)表示;

    • 候选字词中可使用"\r"表示换行符(引号内,不包含引号)表示;

    • 候选字词中可使用"\s"表示英文空格(引号内,不包含引号)表示;

    • 候选字词中如果需要包含"\"字符,应使用"\\"(引号内,不包含引号)表示;

  4. 如果需要使用小键盘中的字符按键作为编码键,可小键盘字符对应的全角字符定义编码。如:

    小	234
    键	3111551111254
    盘	33541425221
    笔	3143143115
    画	12512152
    ...
  5. 可在编码的定义末尾包含几个标记,以指示该行词条具有某些特殊属性:

    • #固 固顶的词条。此类词条总是显示在候选列表的前面,且不受词频调整限制

    • #用 指定当前词条为用户词

    • #辅 辅码词条。可设置输入方案为“主”、“辅”、“主+辅”三种输入模式。参见:辅码码表说明

    • #次 次显词条,不常用的。可设置检索范围“检索次显码表”、“不检索次显码表”、“候选为空时检索次显码表”三种模式。参见:次显码表说明

    • #类 词条类别。定义方式为 "#类+数字",数字可选1~16之间

    • #序 候选排序号。定义方式为"#序+数字",数字可谓0~65536之间的任意数字,数字越大候选列表位置越前。如"#序60000"

    • 编码中如果需要"#"作为编码,应使用"##"(引号内,不包含引号)代替

    啊	a#序1000
    呵	a#序999
    锕	a#序998
    吖	a#序997
    
    我	wo
    沃	wo
    卧	wo
    薶	wo#次
    撾	wo#次
    龏	wo#次
    仴	wo#次
    
    倚	yi
    蚁	yi
    一	yi#固
    
    涡	guo#次
    過	guo#类2
    ...
  6. 为了更好的控制候选列表排序,可在码表头部添加如下定义:

    • ---config@全局排序数值=1000 此码表中的的所有词条的排序数值为1000

    • ---config@初始化排序数值=2000 此码表中的词条使用2000作为初始化排序数值

      默认情况下,初始化排序数值在读取第一个原始码表时设置为16384,并在以后的读取过程中逐渐减少。多多使用合适的策略保证先读取的原始码表词条具有较大的排序数值,从而位于候选列表的前方

    关于候选列表排序控制,请参见: 多多词频调整策略 | 多多候选列表排序

    ---config@全局排序数值=1000
    ---config@码表分类=2
    ---config@码表别名=标点符号
    :	;
    ;	;;
    !	;a
    %	;b
    "	;c
    、	;d
    /	;e
    ;	;f
    ...
  7. 分类码表多文件定义方式说明

    多多自v3.1起支持分类码表多文件定义方式,此方式允许将全部编码按照分类保存于不同的文件中,并在每个文件内使用“码表头定义”规定当前码表分类的属性。分类码表的最主要应用为:"五笔主码+拼音辅码"、"五笔常用字+次显生僻字"等输入模式的支持。

    多文件定义方式支持如下码表头定义:

    • ---config@码表分类=[分类标识][分类标识]取如下值之一:

      • ---config@码表分类=主码-系统码表

      • ---config@码表分类=主码-用户码表,相当于为当前文件中的每个词条加上“#用”标记

      • ---config@码表分类=主码-次显码表,相当于为当前文件中的每个词条加上“#次”标记

      • ---config@码表分类=主码-1主码-16,相当于为当前文件中的每个词条加上“#类1~16”标记

      • ---config@码表分类=辅码码表

        ,相当于为当前文件中的每个词条加上“#辅”标记
    • ---config@码表别名=[别名名称][别名名称]可为最多8个汉字的字符串

    • ---config@允许编辑=是,指定当前分类的码表能够被最终用户编辑(导出、编辑、修改、删除)

    • ---config@主码别名=[别名名称][别名名称]可为最多8个汉字的字符串。如需定义主码的输入方案别名,可使用该定义。该定义在任意一个分类的码表文件中均可生效。

    注意 注意

    “码表分类” 与 “码表别名”必须配对使用,如果“码表分类”没有指定或指定错误,生成器会自动设置当前分类为“主码-系统码表”。

  8. 分类码表单文件定义方式说明

    如需在单个码表文件中将词条进行分类(使用#用、#次、#辅、#类1~16后缀),并定义各个分类的别名及最终用户编辑权限,可使用如下码表头定义:

    • ---config@主码别名=[别名名称] 指定主码方案的别名名称

    • ---config@主码-系统码表别名=[别名名称] 指定系统码表的别名名称

    • ---config@主码-用户码表别名=[别名名称] 指定用户码表的别名名称

    • ---config@主码-次显码表别名=[别名名称] 指定次显码表的别名名称

    • ---config@主码-分类码表别名1~16=[别名名称] 指定分类1~分类16的码表别名名称

    • ---config@辅码别名=[别名名称] 指定辅码方案的别名名称

    • ---config@允许编辑主码-系统码表=是 ,设置分类“主码-系统码表”允许最终用户编辑

    • ---config@允许编辑主码-次显码表=是 ,设置分类"主码-次显码表"允许最终用户编辑

    • ---config@允许编辑主码-分类码表1~16==是 ,设置分类"主码-分类码表1~16"允许最终用户编辑

    • ---config@允许编辑辅码码表==是 ,设置分类"辑辅码码表"允许最终用户编辑