hoss
新手上路
新手上路
阅读:3526回复:0

精确匹配的改进建议

楼主#
更多 发布于:2013-09-21 00:06
当前小小输入法平台默认开启编码提示(hint=1),这对于拼音输入法绝对适用。至于形码则按用户需求可选择开启或关闭,如学习型用户需要编码提示,专业型用户一般偏向简洁干净的候选项。

其实开启编码提示是不够的,还有另一个参数才是真正对候选项显示起到关键作用的,那就是精确匹配,其默认值为不开启(match=0)。值得注意的是编码提示与精确匹配不完全互斥,也就是说,两者可以共存,但可能也会带来不可预知的结果。

影响候选项的其他参数还有:
  • 出简不出全,默认值为不开启(simple=0)
  • 精简显示,也叫编码压缩提示,默认值为不开启(compact=0)
  • 全码空码自动上屏,默认值为全码自动上屏、空码自动上屏、空码上屏的码长(commit=0 0 0)

要了解这些参数的使用方法,最好通过实例说明其用途。这方面,小小输入法平台的帮助手册(yong.chm)都具体提到了,只是内容比较分散,查找不便。尽管如此,有些实例未能完全说明情况,如精简显示的三个值(0/1/2),不通过在码表中逐一实验难以体会它们之间的微妙差别。

当然,输入法制作者非常欢迎小小输入法平台所提供的参数微调能力,让输入法制作者不断折腾并且乐此不疲,只求打造精雕细琢的输入法。唯当前精确匹配存在不够精确的现象,即精确匹配开启后,候选项偶尔会冒出一些非精确匹配的候选项。原来当候选项出现空缺时,精确匹配会显示下一级候选项,但只会显示一个,其他下一级候选项被屏蔽。

还是用输入法例字说明。以下是“简体大易”输入法的“8r”开头的编码:
8r1c 粑、8rb/ 弟、8rb0 递、8rb; 糨、8rbh 鹈、8rbn 剃、8rc 配

由于“8r”本身为空码,没有对应的候选项,在精确匹配开启下,输入法只显示“粑1c”,其余从略。这是二码输入的情况。若三码输入“8rb”,则只显示“弟/”,余者一概落选。

又如“dfb”为空码,下一级候选项有“dfbf 墅、dfbj 野”,输入法只显示“墅f”,容易让人误解不存在“野c”候选项。

再以词组输入为例:“sju”为空码,下一级候选项则有“sju3 有着、sjuu 有益、sjuv 有关”,输入法只显示“有着3”,另两个候选项 被屏蔽。

这样看来,精确匹配的实用价值就不大了,而且其他参数(包括hint=0)似乎也不具备关闭空码仍显示下一级候选项的功能。

因此,当前精确匹配在空码时只显示一个下一级候选项是不妥的,理应改进为要么空码时不显示下一级候选项,要么空码时显示所有下一级候选项。

推而广之,精确匹配还可以更进一步在候选项非唯一时选择性起匹配作用,即有重码时才精确匹配,无重码时则不精确匹配。目前有些形码不再安排一级简码,而是允许单键有多个重码,因此单键输入时只显示有限范围的候选项是很有必要的。此外,有些形码的两码单字可能与词组同码,同样需要两键输入时只显示有限范围的候选项,避免过多的候选项造成干扰。因此,有重码时才精确匹配对于上述形码是有着重大意义的。

现有精确匹配只有0和1的值,一旦扩充功能后,既可考虑0/1/2的值,也可考虑1,1或2,1的组合值。

以上都是些细枝末节的问题,即使没有解决,大可不开启精确匹配的参数,丝毫不影响小小输入法平台的使用。但“魔鬼藏于细节”,希望改进后的精确匹配对各种条件下的不同情景筛选出适量的候选项,让用户在输入过程中既享有逐键提示的便利又不用分心区别重码与非重码。现有的逐键提示不具备分隔重码与非重码的机制,而是让所有候选项一拥而上,只是前者不带编码提示,后者带有编码提示。其实两者可以加上一道门槛,分屏显示重码与非重码,那就理想不过了。
游客

返回顶部