ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Karukan候选构建机制全解:6类候选源的合并、去重与排序

Karukan候选构建机制全解:6类候选源的合并、去重与排序 Karukan候选构建机制全解6类候选源的合并、去重与排序【免费下载链接】karukanJapanese Input Method System for Linux, macOS, Neural Kana-Kanji Conversion Engine项目地址: https://gitcode.com/GitHub_Trending/ka/karukanKarukan 是一款面向 Linux 和 macOS 的日语输入法系统内置神经网络假名汉字转换引擎。它的核心难题在于按下空格后候选窗口里的一行行汉字并非来自单一来源——AI 模型、学习缓存、用户词典、系统词典、假名回退、规则改写器等6 类候选源会同时产出结果。本文完整拆解 Karukan 候选构建机制这些候选如何按优先级合并、如何去重、又如何排序后呈现给你。一、候选从哪里来先看整体流水线在 Karukan 中你键入罗马字 → 引擎转成平假名reading→ 按空格触发转换。此时 start_conversion() 启动一条固定的构建流水线查询学习缓存你历史上选过的转换查询词典用户词典 系统词典模型推理神经网络假名汉字转换结果带缓存补上回退项与改写项假名、半角片假名、符号、日期变体统一去重并回填注释交给候选窗口分页展示其中模型推理由 run_kana_kanji_conversion() 调度策略选择主模型 / 轻量模型 / 并行束搜索逻辑在 strategy.rs 中——机器慢时自动降级到轻量模型保证候选不卡顿。二、6类候选源逐一点名谁产出了哪行候选每个候选都携带一个 CandidateSource 标签标记它的出身。界面辅助栏会显示对应图标优先级候选源标签产出内容1 学习缓存Learning学习你选过的转换最多取 3 条含前缀预测2 用户词典UserDictionaryユーザー你自定义词条的精确匹配 前缀延伸3 AI 模型ModelAI神经网络推断的汉字词组4 系统词典Dictionary辞書Sudachi 词典数据按分数排序同样含预测项5假名回退Fallback—输入原文的平假名 / 片假名两种写法6 改写器Rewriter変換半角片假名、全角/半角英字、符号变体、数字多种写法源自 Mozc 移植另有特殊的 日期候选Date键入[date]类短语时由时钟实时渲染因明天就过期所以不会被写入学习记录见 is_learnable()。 词典候选的查找顺序也讲究用户词典一定排在系统词典前面每个词典内部又是精确匹配优先前缀预测在后。相关优先级说明见官方文档 docs/dictionary.md。三、合并与去重先到先得学习缓存强制置顶多源合并的核心是 CandidateBuilder 结构体内部维护一个已见文本集合提供两条写入路径push()普通写入文本已出现过就丢弃——先来的候选源占坑后来的重复项直接消失push_force()强制写入无条件插入并把文本标记为已见。唯一使用强制写入的是学习缓存你教给输入法的答案即使后面词典或模型再产出同样文本也必须排在最前面、保持你选择的顺序见 build_conversion_candidates()。去重之外还有两处隐形合并模型内部合并并行束搜索时主模型与轻量模型的结果用 merge_candidates_dedup() 先合并去重再进入总流水线词典双源去重用户词典与系统词典共享同一个已见集合同一条词面只显示一次但保留它来自哪本书的标签。四、排序机制为什么你选的词总是排第一最终列表的顺序完全由候选源的注入顺序决定——没有复杂的重排打分规则简单可预期学习缓存 → 用户词典 → AI 模型 → 系统词典 → 假名回退 → 日期/改写器再叠加三条细节规则词典内部精确匹配在前前缀预测在后预测项最多 3 条且需至少输入 2 个字符才触发防止单个按键刷爆列表悬尾约束输入末尾还有未完成的罗马字时如わsed中的d精确匹配暂停预测项会被收窄到这个尾巴还能变成的假名范围注释回填合并完成后统一补注——符号候选标注名称如「金 部首」仅限回退源纯假名候选标注宽度[全]ひらがな/[全]カタカナ。最后 CandidateList 接手每页 9 条、支持循环翻页空格/Tab 下一条ShiftTab 上一条数字键 1-9 直达提交。五、进阶技巧用 CtrlR / CtrlT 单独查看每个候选源混合列表按最高优先级源去重某些文本可能在其他源里被吃掉。为此 Karukan 提供了来源过滤视图CtrlT/CtrlR按 固定循环 在 学习 → 词典 → 模型 → 改写 四个视图间切换CtrlI直达 AI 视图。关键设计每个视图不是过滤混合列表而是直接重新查询对应来源——否则去重逻辑会把共享文本折叠进最高优先级源低优先级视图就看不全了。空源会显示「候補なし」而非跳过位置永远可预测。在 Linux 上Karukan 以 fcitx5 插件形式运行上述候选行为在 fcitx5 环境中完整生效安装步骤见 karukan-im/fcitx5/README.md。六、小结一套简单可预期的候选流水线机制一句话总结合并6 类候选源按固定优先级依次注入去重文本先到先得学习缓存强制置顶排序注入顺序即显示顺序词典内精确匹配优先查看CtrlR/T 分源视图重新查询互不遮挡展示每页 9 条循环翻页数字键直达想深入阅读推荐按顺序查看转换构建源码 conversion.rs、来源过滤源码 filter.rs、模型调度源码 model.rs以及官方文档 docs/dictionary.md 与 docs/key-bindings.md。理解了这套优先级注入 文本去重的机制你就能完全预测并掌控 Karukan 候选窗口里的每一行输出。【免费下载链接】karukanJapanese Input Method System for Linux, macOS, Neural Kana-Kanji Conversion Engine项目地址: https://gitcode.com/GitHub_Trending/ka/karukan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表