跳到主要内容

整句输入方案准确率的定量评价

整句输入方案一直以来难以正确评估其准确率,通常都是基于个人主观体验,在不同的输入方案之间比较的时候往往难以服众。本文提出了一种定量评价整句输入方案准确率和码长的方法,并以比较无格式和有格式二三整句为例阐述了具体的实验过程。

语料的标准化处理

选取一定规模的语料,切分成仅由汉字构成的短句。为使程序简便起见,可以只考虑 0x4E00 ~ 0x9FFF 内的汉字。

平台的标准化处理

各个方案只提供单字码表,一字一码(不考虑多音字),然后用 Rime 简化字八股文生成词库和词频。采用 librime console 作为模拟输入法,输入时采用 script_translator 动态组句,并装配 2-gram 语言模型

对语料处理得到的每个短句,预先在单字码表中查询用户应该输入的编码。如果缺字,则此短句作废。如果编码查询成功,则向 librime console 发送编码,返回组句结果。计算组句结果和原始短句的 Levenshtein 距离。记各个短句为 sis_i,查询得到的编码为 cic_i,方案返回的组句结果为 rir_i,则该方案的准确率得分为

accuracy=imax(silev(si,ri),0)isi×100%\mathrm{accuracy}=\frac{\sum_i\max\left(|s_i|-\operatorname{lev}(s_i,r_i),0\right)}{\sum_i|s_i|}\times 100\%

而码长为

avg.length=iciisi\mathrm{avg. length}=\frac{\sum_i|c_i|}{\sum_i|s_i|}

方案的标准化处理

有的时候我们不在意具体的输入方案,而是在意实现整句输入的抽象结构和技术。例如,无格式二三整句和有格式二三整句哪个准确率更高?此时,可以用随机编码的方式排除方案设计的影响。

不妨设总字母表 U 大小为 26,无格式编码包括二码 UU 和三码 UUU,而有格式编码(二码顶)划分为大键盘 A = 18、小键盘 B = 8,包括二码 AU 和三码 AUB。

首先用均匀采样的方法得到每个字无格式编码的三码(全码),然后按字频从高到低安排二简,这样就得到了无格式编码。为了尽量减小测量的随机误差,我们让无格式编码和有格式编码尽量耦合,因此与其对应的有格式编码可以用以下方法得到:取无格式编码的全码,对第一码在 A 中重新采样,第三码在 B 中重新采样,然后按字频从高到低安排二简,这样就得到了有格式编码(二码顶)。

使用这种随机编码的方法,对无格式二三整句和有格式二三整句各实验 NN 次,对准确率和码长计算平均值和标准差,即可得出两者有显著差异或者无显著差异的结论。