C6.11.1Autocorrect replaces text without confirmation设计研究
纠错是在无确认情况下替换用户输入
别名: 自动纠错 · 静默替换 · autocorrect
概念解释
自动纠错(autocorrect)在用户没有点选任何候选的情况下,把刚打出的字符串换成系统认为更可能的词。它不是补全(补全加后继、等你接受),也不是输入法候选(候选要人挑)。纠错的本质是一次未确认的替换:原串被覆盖,新串写入,默认当作这就是用户的意思。
机制
空格、标点或失焦把当前词送过确认边界时,纠错模型比较原串与词表近邻。若模型判定原串是邻键、漏键或大小写错误,就用近邻替换。替换发生在用户注意力已经转到下一个词的瞬间,原串往往只在屏幕上停留了一次击键的时间。因为没有“要不要换”的问句,漏报(该换不换)只留下一个错词,误报(不该换却换)留下一个用户没写过的词。误报更难被发现:文本看起来通顺,错误在语义层而不在字形层。模型用的是词频和键盘空间距离,不是用户意图;意图只能通过“没有立刻改回去”被事后推断,而这个推断经常是错的。
怎么研究
收集带有真实打字错误的语料,开关纠错,分别统计留下的错词、被误换的对词、以及用户改回的次数。自变量包括词表、空间模型、触发边界(空格还是每个字符);因变量包括误报、漏报和察觉潜伏期。实验室里让人抄写无意义串会压低误报的危害——那些串没有“通顺的错词”可藏。需要自然造句,并在提交前问“哪几个词不是你打的”。
边界
打开“仅提示、不替换”就不再是这条所说的纠错,而接近补全。对密码、代码字段默认关闭,是因为替换的代价高于漏报。语音转写后的替换是另一条管道。人故意打的错拼、黑话、内部代号,在词表看来全是错误,误报会系统性对准这些群体。
怎么落地
- 把纠错定义为“替换”而不是“建议”:若不想静默覆盖,就不要走纠错通道,改走补全或候选。
- 在替换发生的词上留下可被察觉的痕迹(短暂下划线或可点回原词),不要让新词与用户手打的词视觉完全等同。
- 评测时分开报误报与漏报;用目标用户会写的专有名词和口语来压测误报,而不是只用新闻拼写。