跳转至

超级辅筛 (Super Lookup):输入后筛选的降维打击

只需一个引导符 `,瞬间从茫茫字海中狙击目标。它不仅能过滤候选词,还能在不破坏整句结构的前提下,精准“跨位爆破”修改特定错字。

万象的超级辅筛(输入后辅助筛选)是整个输入法中最具魔力的功能之一。无论你是想寻找某个偏旁的单字,还是想强行扭转系统生成的错误长句,一切操作都无缝工作在同一个引导符 `(Tab 键上方)之后,无需任何复杂的模式切换!


Patch 核心配置与数据源控制

超级辅筛的强大不仅在于算法,更在于多数据源的统筹。在你的自定义方案文件或 wanxiang.custom.yaml 中,可以通过 wanxiang_lookup 节点来定义它的行为:

配置解析:数据源优先级 (data_source)

  • aux: 代表从主词库的注释中提取辅助码(效率最高,支持 Pro 版高级特性,也只有pro携带了词库中辅助码)。

  • db: 代表从外挂的反查数据库中提取(如 wanxiang_reverse.dict.yaml,多用于单字笔画/拆字反查/词组筛选)。

  • (注意:为了规避性能灾难与复杂度,词组匹配刻意不支持笔画反查)

在使用前先来到配置这里思考一下“我要的是什么”

配置示例:

patch:
  wanxiang_lookup:
    tags: [ abc, add_user_dict ]  # 辅筛生效的输入法状态标签,一般是默认即可
    key: "`"                      # 引导符 (强烈建议保持默认 `,避免与分词符 ' 冲突,在分号无他用的前提下可以将分号用于这里也是不错的选择)
    lookup: [ wanxiang_reverse ]  # 调用的反查数据库名称,很多人没意识到这个配置的深层意义,你完全可以通过一个小型方案将辅助码编译成bin,或者将bin直接拷贝到build,在这里新增一个名称即可实现base版本用辅助码筛选的设计。这里提到的辅助码是狭义的,因为辅助码更具设计感,重码低,有人掌握了这一个两码体系可能就不需要两分、笔画这些东西了。而默认携带的数据库,内部包含了两分、多分、笔画,实则是一种冗余设计,这些何尝不能称为辅助码呢,实际上也能,由于不够聚焦,因此我们把这类当作一种低阶的辅助码。总结:db 辅助码就是来源于外挂的滤镜数据库中的辅助码,他可以根据这个参数定义数据库。
    enable_tone: true             #启用声调反查,就是在引导符号后面输入数字7890来参与到反查中
    # 【核心配置】数据源调取优先级:排在前面的优先读取!
    data_source: [ aux, db ]      # 优先读取词库自带辅码(aux),查不到再查数据库(db)
    enable_direct: true           #启用无引导的直接辅助查询,这个是专属于base版本的功能,请看后面具体的介绍。

关于 wanxiang_reverse.custom

反查和笔画的转写规则(如全拼转五笔画)定义在你的根目录 wanxiang_reverse.custom.yaml 中。如果你习惯了特定的笔画编码转写,打开该文件根据注释微调即可,默认词库携带的是一种大写编码,通过xlit转换可以将横竖撇捺点转换成自己的习惯按键。

!!! 因此不要生搬硬套弄清楚你自己的配置是啥,后面讲到笔画筛选才不会对着例子:我咋打不出来!!!


绝技一:候选过滤 (Base & Pro 通用)

如果输入的内容没有触发整句修改,引擎会极其顺滑地自动降级为候选词过滤模式

1. 单字过滤:支持拆字、笔画全聚合

输入拼音后,按下 ` 即可输入部首读音或笔画:

  • 两分/多分拆字:输入 ni -> 按 ` -> 输入 re (亻尔) 或 rfer,精准筛出“你”。

  • 五笔画过滤:输入 ni -> 按 ` -> 输入 pspzhpd (撇竖撇折横撇点),也能筛出“你”。

辅筛:输入部首首字母精准定位

辅筛:输入不同的筛选不同

2. 词组过滤:模糊跳跃匹配

这是万象的黑科技。对于词组的辅助码筛选,你不需要按顺序打全,甚至可以随意跳字匹配

假设你要打“老实说”,它的完整辅码序列是:tb (老) + gt (实) + yd (说) = tbgtyd。(来自db数据库而非aux)

在输入拼音后按下 `,你可以这么玩:

  • 精准打击:输入 gt -> 筛出包含“实”的词。

  • 跨字组合:输入 tg -> 匹配 t(老) 和 g(实)。

  • 极致跳跃:输入 bd -> 匹配 b(老 的尾码) 和 d(说 的尾码)。

(技术解密:引擎底层会将你的输入转化为类似 .*t.*b.*g.*t.*y.*d.* 的非连续正则逻辑(并非真的正则匹配,只是为了好理解),只要顺序没反,怎么跳都能命中!)

3. 双辅助数据源融合排序

当同时启用 aux 与 db 两种辅助数据源时,超级辅筛会在“过滤”之后,对剩余候选进行二次排序。

原版逻辑:

候选词 → aux/db匹配 → 保留

只判断是否匹配,不区分:

  • 辅助码来源;
  • 单字集中命中还是跨字命中。

因此可能出现 aux 精准命中和 db 跨字命中被视为同等级的问题。

新版排序规则:

第一优先级:辅助码来源
第二优先级:辅助码命中集中程度

辅助码来源

来源 特点 优先级
aux 来自词库自带辅助码,针对词条设计,特征更集中
db 来自反查数据库,包含两分、拆字、笔画等,覆盖更广但更宽泛

排序依据:

data_source: [ aux, db ]

排在前面的数据源优先。

例如输入:

bd

候选:

候选 来源 匹配方式
老实说 aux 实 = bd,两个辅助码完整落在同一个字
老是说/老实说 db 老 = b(下面),说 = d(兑),通过拆字结构跨字命中

两者都能匹配,但新版认为:

aux 单字完整命中 > db 跨字匹配

因此优先展示 aux 结果。

多辅助码输入

当输入多个辅助码时,不简单判断“单字/跨字”,而根据辅助码覆盖程度排序:

匹配情况 优先级
多个辅助码完整对应目标字 最高
部分辅助码集中命中单字,部分跨字匹配
全部依靠跨字跳跃匹配 最低

最终排序,同一候选长度内:

aux 单字集中命中
aux 跨字匹配
db 单字集中命中
db 跨字匹配

这样超级辅筛从原来的:

“找到能匹配的候选”

升级为:

“找到最符合用户辅助码意图的候选”。

同时不改变原有词长优先规则,只调整同长度候选之间的顺序。

4. 声调分离提取 (乱序声调注入)

为了极致的盲打流畅度,数字声调(7,8,9,0)可以随意插在辅筛字母的任何位置!

引擎会聪明地将数字剥离出来用于声调过滤,将剩下的字母送去执行正则匹配。

  • 单字过滤ni -> `r9e`rf9er (声调 9 随意乱入均有效)。

  • 词组过滤nihk -> `n9zr9e (按字数顺序依次生效)。

5. 完了吗?base版本直接词辅显神通

在输入中,输入完整两个字的编码后,可以通过直接输入这两个字的关联辅助码来筛选前置想要的词汇,默认关闭,类似手心的直接辅助选项,但是只提供开关,不提供对某个字前一个字还是后一个字辅助的设置,因为实践中往往是any,支持任意字的单码、双码,以及两个字首码组成的双码。默认数据同样是自带的两分,也就是偏旁用法,无需记忆。相较于需要引导,这种无引导的局部快速筛选正中两字词组较多的痛点,突破限制,提升效率。

Base直接辅助

m是益字的“皿”部件的声母,因此多输入一个m两个字的就会调到前面,三个字的就会跑到后面,当输入第二个辅助码的时候可能与三个字重码,要优先保证三个字的呈现,能够匹配的两个字跟到三个字的后面。

为什么默认关闭: 很多人输入两个字、三个字词条的时候依赖自动补全,如:ni h 出:你好 yi ug m 出:已声明,因此这是一种互斥的习惯,因为这种习惯原本就有,因此单码前置这种经过设计的习惯就只能默认关闭。


绝技二:首句定点改字 (Pro 专属狙击模式)

当系统自动生成的长句中出现了个别错字,传统做法是退格删除、重新选词,极其破坏输入心流。万象 Pro 版支持直接提取词库自带的辅助码,在句末进行“定点狙击”

实战演示:跨位精准改字

场景 A:单字纠正与声调锁定

  • 预期:有没有啥问题

  • 实际输出:又没有啥问题 (错把“有”打成了“又”)

  • 狙击操作:按下引导符 `,直接输入“有”的辅助码 uo

  • 冲突解决:发现系统把“没”也改了(因为“眉”也是 uo)。此时只需追加输入声调 9(变成 `uo9),系统瞬间锁定目标,完美输出:有没有啥问题

场景 B:多字连环纠正

  • 预期:真的是咯

  • 实际输出:真的失落

  • 狙击操作:直接在句末输入 `or0kkor0 定位“是”,kk 定位“咯”),错字瞬间被双双纠正!

有的朋友思考流是: 作者用的啥---我也用啥---按例子输入---失败为什么不行---开始内耗

再次提示,按你的辅助码来对应尝试,不要直接按我的例子输入,也不要关心我用的啥。


万象超级辅筛:在键鼠之间,体验言出法随的快感。