C6.26.4Live IME candidate re-ranking设计研究
候选排序的实时重排可能在用户即将点击时改变目标位置,导致误选
别名: 候选跳动 · 实时重排 · 点偏候选
概念解释
组字过程中每多敲一个字母,引擎可能重排整行候选。云端结果后到、上下文模型异步更新,也会在手指已经伸向某个词的时候把它挪到旁边。用户点到的是新占了那一格的另一个词。这是排序在时间维上的不稳定,不是候选窗挡住了文本,也不是翻页成本。自动补全条上的候选跳动是近亲,但 IME 的空格键会把跳动后的新第一位直接上屏,伤害更硬。
机制
重排有三个触发源:拼音前缀变长(j→ji→jin)、云端 RPC 返回、以及上一个词刚刚上屏导致上下文窗口滑动。界面若立即重画,指尖运动期间目标发生位移,和菜单还没稳定就点击同一类。触屏尤其严重,因为瞄准时间长。空格绑定第一位时,重排只要把第一位换掉,连“点击”都不必,一次按键就提交新词。稳定策略包括:在指针按下后冻结列表、对云端结果只追加不插队、或在用户停顿超过某阈值后再重排。
怎么研究
记录候选条每次重画时每个词的屏幕坐标,对齐触摸 down 的时间戳,计算 down 瞬间目标词是否已从该坐标离开。自变量:是否等云端、是否在 keydown 时冻结。因变量:误选率、被换走的词是否为用户原目标。用慢动作录屏比问卷准。实验室网络极快会低估云端插队。
边界
纯离线、且只在整段拼音结束后才出列表的输入法,重排很少。整句解码直到标点才出结果,中途没有可点列表。候选很少(低歧义音节)时位移幅度小。键盘快捷数字键选第 n 项时,重排会让“按 3”对上另一个词,与点击位移是同一机制的键盘版。
怎么落地
- 指针或手指 down 之后冻结当前列表,直到 up 或取消。
- 云端结果用“更多”追加,不把已显示的前几位挤走,除非用户明显停顿。
- 空格上屏以 keydown 瞬间的第一位为准,不要在 keydown 与 keyup 之间换词。
- 验证:在节流网络下输入高歧义拼音,慢动作看触摸点下去到抬起之间格子里的词是否更换;更换且误上屏即失败。