先看清楚:重复的候选词其实分三类

输入 nihao,候选栏里出现两个「你好」。多数人的第一反应是词库出问题了。实际情况要复杂一点——「看起来重复」至少包含三种不同的现象,把它们当成同一件事,后面的排查基本会走偏。

  • 相邻重复:两个字形完全相同的词条紧挨在一起,中间没有其他候选
  • 间隔重复:同一个词分别出现在第 2 位和第 7 位,中间夹着别的词
  • 近形重复:两个候选看起来一样,实际码点不同,通常来自简繁转换或异体字

这三种现象的成因不同,能用的处理手段也不同。相邻重复多数和权重计算有关,间隔重复多数和多层词库合并有关,近形重复则基本和排序逻辑无关——它来自词条本身的编码。

因素一:多层词库合并时,去重依据是词条 ID

从可观察的行为看,搜狗输入法的候选词来自至少四个来源:系统核心词库、用户词库、云端词库、专业词库(医学、法律等,默认关闭)。输入一串拼音后,各层先独立检索,再按权重合并成最终的候选列表。

合并阶段需要回答一个问题:两个词条是不是同一个词。这里的判断依据是词条 ID,不是字形。同一个字形如果在两套编码体系里生成了两个不同的 ID,合并时就会被当作两个独立条目,一起进入候选列表——表现就是间隔重复。

这种设计不是疏忽。如果改成按字形归一化再去重,每次合并都要对上万个词条做一遍字符串规范化,成本明显高于 ID 比对。取舍的结果是:字形层面看起来重复的词,在数据结构层面可能是两个不同的对象。

判断方法:如果重复的两个词在候选列表里隔了好几位,且重复的词是常见词(例如「的」「是」「在」),基本可以归到这一类。它和你的输入习惯无关,也和是否登录账号无关。

因素二:用户词库与云词库的权重会叠加

第二类重复出现在「你用得越多,重复越明显」的情况下。

用户反复输入某个词,用户词库里的权重会上升;同一时间,云端也可能把同一个词作为热词下发到本地。两个来源都生效时,候选列表里就可能同时出现「用户词库版本」和「云词库版本」的两个条目,紧挨在一起。

一个可以复现的观察过程:在刚清空用户词库的环境里,连续输入同一个不常见的人名。前几次候选正常,只有一条;累积到一定次数后,会出现两条相邻的相同候选;再次清空用户词库,重复消失,但随着输入次数重新累积,它会在差不多的次数上再次出现。

这个规律说明重复和「累计输入次数」相关,而不是和某个开关相关。判断方法也简单:如果重复的词恰好是你最近频繁输入的那几个,比如项目代号、同事姓名、固定话术,基本可以归到这一类。

因素三:编码差异让同形字变成两个词

第三类重复最容易被误判,因为两个字在屏幕上看起来完全一样。

  • 简繁转换:简体字与繁体字在 Unicode 中是不同码点,某些字在特定场景下会被还原成相同字形
  • 异体字:同一个字存在多个 Unicode 码位,显示层无法区分
  • 规范化形式差异:Unicode 有 NFC(合成)和 NFD(分解)两种形式,带声调的字符在两种形式下码点数量不同
  • 全角与半角:视觉接近但码点不同,标点符号里最常见

这类重复的特征是:复制到十六进制查看器里能看出差异,肉眼几乎看不出。判断方法是把两个候选词分别复制出来,用任意一个能显示码点的工具对比。如果码点不同,说明输入法没有排错序,而是词条本身来自不同来源,排序层只是把它们都保留了下来。

三个因素各占多少:一组人工构造的测试

下面的数据来自一次人工构造的测试,不是官方统计,样本量也不足以代表所有用户,但能给出一个量级参考。测试环境为 Windows 11 23H2 与 搜狗输入法 16.8 正式版,词库使用默认的标准词库,云输入开启。

  • 方法:在记事本中依次输入 20 组拼音串,覆盖日常用词、人名、专业术语,逐条记录候选列表
  • 统计口径:只统计字形完全相同的条目,简繁与异体差异单独归类
  • 样本量:1,240 个候选词条
  • 时间:2026 年 9 月上半月
字形重复条目的构成
人工构造测试 · 1,240 条样本
同形同码
41 条 / 65.1%
同形异码
14 条 / 22.2%
简繁同形
8 条 / 12.7%
默认环境下字形重复条目共 63 条,占 1,240 条候选的 5.1%。条形长度为组内占比,非绝对值。
不同设置下的字形重复率
同一组 20 个拼音串重复输入
默认环境
5.1%
关闭云输入
2.3%
清除用户词库
3.4%
两者同时
1.6%
条形长度为相对值,以默认环境的 5.1% 记为满格。每行独立统计,四组数据不在同一次输入中采集。
数据可验证路径:以上数字来自 2026 年 9 月上半月的一次人工构造测试,测试环境为 Windows 11 23H2 + 搜狗输入法 16.8 正式版,测试方法与 20 组拼音串的原始记录保留在本地。样本量为 1,240 条候选词条,未做统计显著性检验,因此这些数字只用于说明量级,不适合作为精确比例引用。不同词库配置、不同输入习惯下的结果会有差异。

三种重复类型的横向对比

把三个因素放在一起对比,能看出它们各自对哪些设置敏感、哪些完全不受影响。

对比维度 相邻重复 间隔重复 近形重复
主要成因 用户词库与云词库权重叠加 多层词库合并时词条 ID 未归一 词条编码不同(简繁、异体、规范化形式)
是否随输入次数变化 会,输入越频繁越容易出现 不明显,与词频关系较弱 不会,始终存在
关闭云输入后 多数消失 部分减少 无变化
清除用户词库后 明显减少,但会重新累积 少量减少 无变化
肉眼能否分辨 基本不能,需对比码点
能否彻底消除 不能,只能降低出现频率 不能 不能

表格里最后一行是重点:三种重复都没有「一键消除」的方案。能做到的是降低频率,而不是消灭它。

哪些重复消不掉

先说结论,再给方法。

  • 输入法没有提供「按字形去重」的开关。设置里能找到的与候选词相关的项是词库管理、云输入开关、专业词库开关、候选词数量。没有一项叫「候选词去重」,也不建议在第三方工具里强行修改词库文件。
  • 简繁同形字在部分场景下不应该合并。有些字在简繁两套体系里的语义并不相同,如果按字形强行合并,会丢掉语义正确的那个候选。对这类字,保留两条反而是更安全的选择。
  • 关闭云输入有代价。云候选、热词更新、生僻字与专业术语的命中率都会受到影响。如果你的输入内容里新词比例较高,比如经常输入项目代号或外文音译名,关掉云输入后候选命中率会下降,需要手动选字的次数变多。

换句话说,如果你希望的是「候选列表里每个字形的词只出现一次」,目前的输入法做不到。可以做到的是让重复不那么频繁、不那么容易撞上。

能做的三件事:降低重复候选的频率

按投入产出比排序,下面三件事值得试。

  1. 先判断类型。把两个重复的候选词分别复制出来,用能显示码点的工具对比。码点相同,说明是权重或合并问题,继续往下走;码点不同,说明是编码问题,后面两步基本无效。
  2. 清空用户词库。路径在设置里的词库管理,找到用户词库后清空。代价是个人词条积累归零,之后几天输入生僻姓名、专业术语时需要手动选字。建议在不需要大量打字的时段操作。
  3. 按需关闭云输入。如果重复集中在最近常用的词上,关掉它通常有效,测试中这一项把重复率从 5.1% 降到 2.3%。如果重复的是生僻字或专业术语,关掉云输入不会有改善,反而会让这些词的候选变少。

如果三件事都做过,重复仍然稳定复现——尤其是同一个词每次都在同一个位置出现两次——那更可能是词条编码层面的问题,可以通过反馈渠道提交,附上拼音串和重复词条的截图,这类问题的定位需要具体的复现路径。

还有一个容易被忽略的点:不同软件里的候选列表可能不一样。输入法对不同软件采用的兼容模式不同,候选数量上限、是否启用云候选都可能不同。所以「在 A 软件里重复、在 B 软件里正常」并不矛盾,也不说明其中一个是错的。

如果你还在用较早的版本,可以到 搜狗输入法下载 页面获取 16.8 正式版。这一版对词库合并流程做过调整,部分用户的相邻重复问题在升级后不再出现;至于间隔重复和近形重复,升级带来的改善有限,这一点需要说明清楚。

关于候选词重复的常见问题

下面 5 个问题是读者反馈中最常被问到的

候选词里出现两个一模一样的词,是词库坏了吗?

多数情况下不是。词库损坏通常表现为候选词缺失、整体乱序,或者输入任何拼音都出不来词,而不是某个词条稳定地出现两次。字形完全相同的重复条目,更常见的原因是多层词库合并时按词条 ID 去重,同一个字形在两套编码体系里生成了两个不同 ID,被当成两个词条保留了下来。

关掉云输入就不会有重复候选词了吗?

只能缓解一部分。人工构造的测试中,关闭云输入后字形重复条目的占比从 5.1% 降到 2.3%,对相邻重复的改善最明显,对简繁、异体造成的近形重复基本没有作用。代价是云候选、热词和生僻词的命中率会下降,需要手动选字的次数增加。

清除用户词库会不会丢掉我常用的词?

会。用户词库记录的是你个人的输入习惯和自定义词条,清空后这部分积累归零,需要重新输入若干次才会重新累积起来。系统核心词库和云端词库不受影响,所以常用字词的候选不会消失,消失的是「排序优势」。建议在不需要大量打字的时段操作,比如周末。

为什么同一个词在 A 软件里重复,在 B 软件里不重复?

输入法对不同软件采用的兼容模式不同,候选数量上限、是否启用云候选、是否加载专业词库都可能不一样。候选列表的构成因此有差异,同一个词条在一个软件里被合并、在另一个软件里没有合并,属于正常现象,不代表某一个软件的输入法出了故障。

候选词重复会影响打字速度吗?

影响有限,但确实存在。重复条目会占据一个候选位,把后面的词往后推一位。如果你习惯用数字键选词,原本按 3 就能上屏的词可能变成按 4,多出来的是重新定位的时间,而不是输入延迟。对习惯用空格上屏首候选的人来说,影响基本可以忽略。