逐字识别与整词识别的差异
别名: 逐字识别 · 整词识别 · handwriting unit · lexicon decoding
概念解释
手写一旦要变成可检索、可再编辑的字符,识别器必须先决定一次认多大的一块:一个字(或字母),还是一个词/短语。逐字把纠错粒度钉在单字上,错了改一个;整词用词表和语言模型把一整段墨迹解成一个词,错了往往整词替换。这是识别与纠错绑在一起时的单元选择,不是联机/离线算法本身,也不是认完以后当普通文本来改。
机制
逐字路径先切分再分类,每个切分段产出候选字和置信度,纠错 UI 可以在那一块墨迹旁列出候选。整词路径把一段连续墨迹交给解码器,用词表约束消解单字歧义(英文的 c/e、中文的形近字),正确时少打断,错误时责任边界变大:用户看见的是一个错词,不知道是哪一笔被切错。单元还决定等待:逐字可以在一笔结束、一个字写完就出结果;整词要等词边界(空格、超时、标点),反馈更晚。语言不同,单元的自然尺寸不同:中文以字为视觉单位,逐字更贴书写节奏;英文手写连笔多,硬切字母会把 n 拆成 r+i,整词反倒稳。识别–纠错闭环的成本是“发现错 + 改掉它”:逐字发现早、改得小;整词发现晚、一次改完。没有靠近错误的改入口,两种单元都会变成事后对照。
怎么研究
同一批书写者、同一文稿,比较逐字解码与整词/整句解码。记录第一次可见结果的时间、首次错误出现的位置、改一个错需要的操作次数。
自变量:解码单元(字 / 词 / 句)、有无词表、词边界如何切。 因变量:字错率或词错率、从抬笔到出字的延迟、纠错步数、被整词替换误伤的正确字。
应用场景要分开:记姓名、代号时词表会帮倒忙;记普通句子时整词往往更省改。
边界
无空格语言不能靠空白切词,整词要靠语言模型或用户显式断词。生僻字、专有名词、公式会让词表失效,必须能退回逐字。把整词结果直接提交、不允许在词内改一个字,会把单元选择锁死成不可逆。实时字幕式的“边写边出字”若用整词,字会在词结束时跳变,不适合盯着最后一个字校对的人。
怎么落地
- 按内容选默认单元:连续散文可整词,字段、姓名、验证码走逐字,并允许用户切到另一档。
- 整词解码仍按字保留候选,纠错时能只换一个字,而不是整词推倒。
- 在墨迹块旁显示当前单元的结果,不要等整段写完才在远处弹出一串字。
- 验证:含专有名词的短句与普通短句各写一组,数改错次数和误伤;再测从写完一个字到屏幕出现该字(或该词)的时间,确认单元与反馈节奏一致。