多多词库生成工具
如果词组编码可以按照特定的规则,由单字编码组合构成,可以使用此工具可以依据构词规则自动生成词库编码。
本工具支持辅助码定义,相当于词条编码可以由单字编码和辅助码组合构成。
单字编码表
单字编码表是由Tab字符间隔的一行双列格式,第一列定义单字,第二列定义该字编码。
一般认为,用于构词的单字编码,在单字编码表中是唯一的,否则词条编码不具备唯一性。
辅助码码表
辅助码表的定义方式与上文所述的单字编码表格式相同。
注意 |
|---|
如果词条编码仅仅由单字编码成,辅助码表定义文件可以不予定义。 辅助码表是为了实现更为复杂的构词规则。 |
构词规则定义
构词规则应是如下格式的定义:
-
pX = l|rM b|fN + l|rM b|fN + ...
可理解为:X个字的词条编码 等于 左起(l)或右起(r)第M字的,单字编码(b)或辅助编码(f)的第N个编码 + ...
- pX,p是固定字符,没个构词规则必须以此开始。X必须指定大于1,小于最大词长的整数
- l|rM b|fN:l表示左起,r表示右起。M必须1~max之间的整数,标识第M字的编码。
- b标识取单字编码表,f标识取辅助编码表,N必须为0~max之间的整数,标识改字编码的第N个编码。
注意 如果N=0表示取该字编码的全部编码。 可使用N=a-b表示范围取码,如l1b1-2,标示取左起第1字的第1-2码。
- 构词规则的所有行中,如果出现多次相同词长的构词规则,则最后一个规则有效。
构词规则示例
p2=l1b1+l1b2+l2b1+l2b2 p3=l1b1+l2b1+l3b1+l3b2 p4=l1b1+l2b1+l3b1+l4b1 p5=l1b1+l2b1+l3b1+r1b1 p6=l1b1+l2b1+l3b1+r1b1 p7=l1b1+l2b1+l3b1+r1b1 p8=l1b1+l2b1+l3b1+r1b1 p9=l1b1+l2b1+l3b1+r1b1 p10=l1b1+l2b1+l3b1+r1b1 ...p2=l1b0+l2b0 p3=l1b0+l2b0+l3b0 p4=l1b0+l2b0+l3b0+l4b0 p5=l1b0+l2b0+l3b0+l4b0+l5b0 p6=l1b0+l2b0+l3b0+l4b0+l5b0+l6b0 p7=l1b0+l2b0+l3b0+l4b0+l5b0+l6b0+l7b0 p8=l1b0+l2b0+l3b0+l4b0+l5b0+l6b0+l7b0+l8b0 p9=l1b0+l2b0+l3b0+l4b0+l5b0+l6b0+l7b0+l8b0+l9b0 p10=l1b0+l2b0+l3b0+l4b0+l5b0+l6b0+l7b0+l8b0+l9b0+l10b0 ...
词库文件
词库文件必须使用每行定义一个词条的方式定义。程序依次读取每行文本作为一个词条,并依据构词规则、单字编码、辅助码编码生成该词条的编码。
生成结果文件,会按照词库文件的原始顺序排列,如果需要进行词频排序,请参见关于多多输入法词频
注意 |
|---|
如果某词条的单字编码无法在单字码表文件和辅助码表文件中确定,可在词库文件中指定该字在当前词条中的准确编码。方式为使用一组“(
)”定义该字编码。如:重(chong2)庆、重(zhong4)要。 |
操作步骤
-
在“工具”菜单上单击“词库生成”。
-
在弹出窗口上,单击“单字码表”。选择您的单字码表文件。
-
单击“辅助码表”。选择您的辅助码表文件。
-
单击“词库文件”。选择您的词库文件。
-
在左侧窗口文本框中,找到“构词规则=”文本段,在其后添加用于生成词库的构词规则。
-
如果需要在词库中指定某字的编码,勾选“允许预定义编码”。
-
依据构词,某些词条可能会被程序计算出多个编码,如果需要全部保存,勾选“容错词条编码”。
-
确认所有定义无误后,单击“生成”按钮。
- 生成完毕后,结果应类似下图所示:
注意 |
|---|
可以在窗口左侧文本框中,直接输入以上所述的四个文件路径。确认无误后,单击“生成”按钮 |
命令行调用格式为:
mbEditer.exe /do=词库生成 /编码表文件="文件路径" /辅助码表文件="文件路径" /词库文件="文件路径" /构词规则文件="文件路径" /选项="容错词条编码,允许预定词条"
注意 |
|---|
"/选项"如不需要,可不指定。 辅助码表是为了实现更为复杂的构词规则。 |
