60 Commits
Author SHA1 Message Date
yenharvey aa3ee8c545 feat(android): 上屏后联想下一个词
之前安卓选完词,候选条就空了,接着打下一个词要从头敲拼音(#861)。
- 中文词上屏、组句结束后,候选条接着给可能跟在后面的词,最多 8 个;点了直接上屏,再给下一批,可以一路点下去
- 先列个人 n-gram 里用户在这个词后面接过的,再补随包二元语言模型里的常见接续;只给 1–4 个字的汉字词
- 全在本机:二元模型按前词分组,取后继只排前 N 个,常见词也在 0.2 ms 内
- 点过的联想词照常记词频与转移,推进上文;输入日志与统计的来源记为 follow_up,不算选词、不计键数
- 只在候选条上点选:空格、回车、数字、标点照常交给应用,接着打字、挪光标、删字就收起,删除键不先收联想
- 「设置 → 输入 → 上屏后联想」可关,缺省开

取舍:桌面端不做,数字键选词会和联想冲突。三元模型没实现取后继,安卓也不用它。

Closes #861

测试:真机(小米 14 Pro)支付宝淘宝闪购搜索框打 women 空格出 的 都 一起…,点 一起 接着出 去 加油 吃…,删除键照常删字;Core、语言模型、Android 会话加了测试
2026-11-05 18:19:23 +08:00
bfxh 5275414bf1 ci: RustSec 漏洞改在合并前拦,release / rustls / 32 位三条路径补上检查 (#852)
带漏洞或被撤回的依赖在 PR 上就失败;补 release profile、rustls TLS 与 32 位 DLL 的 clippy,纯逻辑 crate 禁用 unsafe;clipboard-win 升到 5.4.3。
2026-11-03 09:10:24 +08:00
Haoyu Xi 8fd2de3e29 feat(core): 双拼方案可同时接受全拼,同一输入里两种打法可混用 (#825)
双拼方案下打全拼没有候选;加开关(缺省关),开着时一段键同时按双拼与全拼读,两种打法可在同一输入里混用。

Closes #374
2026-10-30 15:03:35 +08:00
yenharvey f4201259eb chore: 合并 main(47 个提交)进 fix/sentence-accuracy
- 整句词图:main 把搜索的不变输入收进 SearchInput、搜索规模改成可调的 SearchLimits(#599),本分支加了知意出字、多来路与拼接备选;按 main 的结构合,出字分成了 SearchInput::emission(缺省恒 0,九宫格等不用它的调用方不用改),格子名额与束宽一律读 limits,诊断也改吃 SearchInput,名额与真搜索一致
- 多来路(NBEST)按调用方要几条判断、比的是缺省束宽:比调过的束宽的话,--tune beam 扫小束宽会顺带开成多来路,main 的 beam_width_of_one 测试也正是这么挂的
- 双拼 scheme.rs 本分支拆进了 scheme/,main 对它的改动(#792 搜狗 lv 按声母简拼读)挪进 scheme/tests.rs;config/general 同理
- 安装包:main 让产品数据缺一样就编不过(好事,保留),但它把含章·通变重新加回了 Windows 安装包与 macOS bundle.sh(--without-model);本分支定了模型不随包、在实验功能里下载,所以 .iss、build.ps1 的必需清单与 bundle.sh 都去掉模型,数据包仍带通变给 Linux
- engine/tests:main 的 generated(UUID / 时间戳)与本分支的生成器排位测试同名相近,后者改名 p2c_placement
- 文档冲突按字符三方合并,两边新增都留;词库生成那段按 main 的「缺省全并、缺文件报错」改写 #807 的说明
2026-10-27 18:38:57 +08:00
yenharvey 4bfeafb45e feat(core): 接上知意三元模型时从它的词表补出词库没收的词
- zh.ngram 的词表里有不少网络用语、专名、技术词(摸鱼、老梗、七神),词库没收,整句只能逐字拼
- qingjian_dictionary::supplement:已有的、能切成已有多字词的、非汉字的不补;读音按字的读音统计猜,词频按重合词拟直线换算
- 只在用户机器上生成,不分发派生数据:Windows Server 缓存到模型旁的 zh.words.qj,模型或主词库变了才重建(约 1.1 s)
- Engine 单独一格挂补词(set_model_words),附加词库重载不动它;CLI 缺省也补,--no-ngram-words 关掉
- 社区开发集首选 74.7 -> 75.0、首页 +0.43;无上文首页 +0.43;冻结回放整句 +3、词不变;CLI 查询 95 分位 209 -> 242 ms
- 装机时两个 Server 可能同时起、同时建缓存,直接写同一个文件会互相写坏
- 写不了或改名失败只记日志并删临时文件,下次启动重建
2026-10-26 18:28:25 +08:00
yenharvey f85d59eee6 refactor(core): 整句搜索的测试搬进 viterbi/tests.rs,调参注释删短
合进 #599 后 viterbi.rs 900 行,测试四百多行,按约定拆出去;SearchLimits 与 --tune 的注释只留维护用得上的。
2026-10-26 14:57:38 +08:00
bfxh 87db757fdf feat(core): 整句搜索规模可调,接进 --tune 扫参 (#599)
每格候选数、简拼格候选数、束宽原是编译期常量,合成 SearchLimits 后回放可用 --tune span / abbreviated-span / beam 扫参;缺省仍是 6 / 20 / 8,行为不变。
2026-10-26 14:57:28 +08:00
yenharvey 08b6faca0d fix(core): 拼写纠错默认相信敲的拼音,纠正只当备选;加关闭拼写纠错的开关
- 原来音节个个合法时,整句里的敲错边(个人敲错表越用越便宜)也能把原样压下去:shabi 出 杀不、shangping 出 商品(#808)
- 现在敲的拼音每个音节都完整、原样最优路径又读得通(每个词语言模型都认识,且至少一个多字词)时,首选只按原样读;敲错边读出的那条只当第二条,也不进选词重排
- 原样只拼得出单字或模型不认识的碎片(meiganxi 的 没 干 洗、zanen 的 赞恩)时照旧可以纠正排第一;拼音切不动时的整段纠正不变(nihooma → 你好吗)
- 试过让知意带前文判断要不要把纠正提到第一:重排里的语言模型分与位置先验只看词常不常用,冻结回放 上屏 → 商品、这俩 → 这里、肃然 → 虽然,不做
- 新配置 [general] spelling_correction(缺省开),设置程序「输入 → 纠错」,四个平台的壳与 CLI(--no-spelling-correction)都接上;关掉后不纠正、不加敲错边,敲错表留着不用;安卓设置页另记待办
- 社区开发集首选 72.8% → 74.0%(无上文 65.6% → 66.7%),配对差 +1.2 [+0.8, +1.7];冻结回放词首选 8319 → 8301、整句 2676 → 2657,丢的几乎都是用户本来就敲错了的(yinghong 应用、niyingai 你应该),纠正排第二

Closes #808
2026-10-26 12:33:54 +08:00
yenharvey 7759ee984e feat(core): 词图交出 16 条整句给知意重排(整句的语言模型分与位置先验减半),加召回归因诊断
- 召回归因(sentence::diagnose,Engine::diagnose_sentence):没出对的整句里打分输掉占 70~92%、格子剪枝 6~25%,缺词与切分各约 1~3%;每格放宽到 12 个剪枝几乎消失但首选不变
- 词图 N-best 原来只差最后一个词:要的条数超过束宽时每个词留 NBEST_HISTORIES = 4 条来路、束宽同比放大
- 接了选词模型时长输入给 CHOICE_SENTENCE_CANDIDATES = 16 条整句由知意带上文重排,重排后只留前 3 条,第一页仍留给词
- 开发集(均衡档)正确句进第一页 devA 67.8→74.8、项目文档 51.7→61.2、新闻 81.0→90.1、新闻无上文 74.1→84.3,首选 +0~2.6;冻结回放整句 78.6→78.4、词 90.3→90.2 持平
- 代价:CLI 查询多 12~16 ms;正确句已在候选里时知意只选中 70~84%,下一步在重排
- CLI 评测 details 记 loss / loss_detail / path_rank,报告按 loss 计数
- 整句的先后本就是词图按语言模型排的,重排再加三元分与位置先验等于数三遍:挑错的里三到四成是知意对、被这两项压下(维基 → 危机)
- 只对整句候选乘 SENTENCE_TERMS_SCALE = 0.5,词的打分不动;开发集离线模拟两项各 0.25~1 扫过,0.5 最好,只信知意反而更差
- 开发集(均衡档)devA 65.7→66.0、devAnc 64.2→64.6、项目文档 48.8→49.7、文档无上文 40.6→40.3、新闻 78.8→80.3、新闻无上文 70.4→73.0
- 冻结回放整句 78.4→79.4(+32 条)、词 90.2→90.1(−16 条,整句先验减轻后偶尔排到词前面)
- Engine::last_choice_scores 记每条候选的知意 / 语言模型 / 位置先验分,CLI 评测 details 写进 choice 字段
2026-10-24 12:10:50 +08:00
yenharvey 0b10196fbc feat: 知意按音节出字、知意三元模型与二元模型插值后进整句词图
- 知意 ONNX 模型的 composition 头 char_logits 以前没用:ChoiceModel::compose 取每音节的字分布,整句词图里每个词按字加分(0.5×相对 log 概率,下限 −12),成词仍交给词库与二元模型
- 敲错边、模糊音改过读音的字字分布说明不了,固定扣 −4,取舍交给原来的纠错代价;直接用绝对分时冻结回放整句 82.6% → 79.7%,纠错路径被整条压掉
- 字分布与选词打分走同一后台线程、停键后算,有字要出时先出字;每次查询清掉上一次没送出的出字请求,否则逐键攒下几十个过时前缀,整句的那张表停键后要几百毫秒才轮到
- Windows Server 重查后还有要算的就立即再请求,不再等第二次防抖
- 冷启动评测(基线 → 接上):自己的输入 58.6% → 63.5%、本仓库文档抽样 29.7% → 40.8%、维基新闻留出集 59.5% → 69.0%;去掉上文后只 +1.8~3
- windows-ime-bench(本机):整句 33.33%(旧包)→ 按空格前停 400 ms 63.33%;测评的 120 ms 仍赶不上(42.5%)
- 词级三元模型 TrigramModel 读知意的 zh.ngram(按格式自己实现,知意代码是 GPL-3.0-only 不搬),经 Core 的 PhraseModel 进选词重排;还没测收益
- CLI 加 --zhiyi-onnx / --onnx-runtime / --zhiyi-tier / --ngram,评测与回放等后台的分回来再取结果
- Windows 安装包不再随包含章·通变(没被这套方案用到,包 153 MB → 88.8 MB)
- TrigramModel 实现 LanguageModel(新方法 log_prob_trigram 带前前词,词图传前前词),MixedModel 按概率插值,λ = TRIGRAM_WEIGHT 0.5
- 只用三元时无上文新闻掉分(不认识的专名、技术词被拆错);插值后六个开发集都涨:devA 63.5→65.6、项目文档 40.8→46.2、新闻 74.1→76.6、新闻无上文 66.8→69.0
- 冻结回放整句 80.5→78.6:新增 84 条未命中里约一半是当时选错 / 敲错(日志偏向旧模型),真退步多是三元不认识的技术词;λ 0.3 / 0.7 开发集总分都不如 0.5
- CLI 的 --ngram 同时接选词重排与整句词图;Windows Server 读用户目录 models/zhiyi-ngram/zh.ngram,没有就照旧只用二元
2026-10-24 09:52:51 +08:00
Haoyu Xi 9c0d4474f2 feat(core): 中文模式下英文候选可限数量与最高位次 (#772)
中文模式下英文候选可以限两件事:[general] english_max_in_chinese 限数量(1–4,缺省 4 即 1 条精确词 + 3 条补全),english_min_position 限有中文候选时英文最高排第几(1–9,缺省 1 不限制;没有中文候选时英文照旧第一)。缺省值下行为不变;完全关闭仍用「打拼音时也给英文词」。三个平台的 Server 与共用设置页都接上了,Linux 改配置后也会重新读 english_in_chinese。

Closes #768
2026-10-23 15:46:26 +08:00
Haoyu Xi 66d62093ef fix(core): 关闭「打拼音时也给英文词」后不再把英文词并入整句 (#770)
关掉「打拼音时也给英文词」后,整句分词仍把内置英文词当句尾(nanine 出「那nine」)。现在开关关着时英文尾段整条路都停:nanine 回到「那你呢」,单独打 nine 也回到拼音读法。开关缺省开着,缺省行为不变。

Closes #766
2026-10-23 15:35:37 +08:00
Haoyu Xi 10e86493d8 feat(dictionary): 导入只有词没有拼音的词表,读音从随包词库派生 (#718)
只有词、没有拼音的词表(每行 词 / 词<Tab>词频 / 词<Tab>读音[<Tab>词频],也认 Rime 的头)也能导入:词表写了读音就用它,其次整词在词库里就用词库读音,再按词库最长匹配切分,切不动的单字取词频最高的读音;一个词只写一条。字不在参考词库里的词跳过并列出。

这次只做 Core 与 CLI(--import-words / --import-to),设置程序的导入页另做。关联 #698。
2026-10-23 11:37:52 +08:00
yenharvey 11bc654811 feat: 知意与含章·知微做成实验功能,设置里下载启用
合入本地 experiment/zhiyi-engine:Core 本地模型可选通变 / 知微 / 知意(知意分省电、均衡、准确三档),设置「实验功能」页下载、启用、删除,进度条与逐块校验;mac 走 Metal,Windows 走 ONNX Runtime 只用 CPU;读不到光标前文时按应用、按输入框取最近打的字。
冲突:设置的短语页、快捷键页说明按 main 的新功能留;用户文档 local-model.md、preferences.md 已在 main 拆分,实验功能的说明搬进 input/sentence.md、getting-started/settings.md、advanced/config-file.md。
2026-10-22 17:20:40 +08:00
yenharvey a20a38acaf docs(user): 用户文档按用户要做的事重新分组
功能越加越多,原来按早期设置页搭的结构塞不下:几个大页(按键、拼音方案、主题)越写越长,同一功能散在几页。
现在分为开始使用、打字、学语言、个性化、AI 服务、各平台、隐私与帮助、进阶八组,一个功能只在一页讲全,别处一句话加链接。
配置键名、文件路径、文件格式只放进阶组,其他页只写「设置 → 某页 → 某项」,面向普通用户不出现实现词。
设置程序的 ⓘ 链接表、各 README、issue 模板与代码注释里指向旧页面的链接一并改到新地址。
2026-10-21 20:06:25 +08:00
yenharvey b6f9c0568e Merge branch 'main' into experiment/zhiyi-engine
# Conflicts:
#	crates/qingjian-core/src/engine/query/mod.rs
2026-10-21 17:27:31 +08:00
yenharvey db5d6fe325 feat: 拼音行按高亮候选切分,可选显示带调拼音
- 一串拼音有几种分法时,拼音行按高亮候选的读音切(ganga 高亮 尴尬 是 gan'ga、刚啊 是 gang'a),应用里的行内拼音跟着换;Core 的 Query::spelled / follow,mac、Windows、Linux 壳在高亮变化时重切
- [general] show_tones(设置 → 候选 → 拼音行显示声调,缺省关):候选窗口顶部的拼音换成高亮候选的带调读音,简拼也换成完整读音;读音与输入对不上的不换;应用里的拼音不带调
- 声调先按词库里的词取,整句从左往右取最长的词,没标的字按单字声调表补,拿不准的不标;注音、九宫格不标
- Frame 加 window_preedit 给候选窗口单独一串拼音,DLL 不读,不升协议版本
- Linux 的 Fcitx 面板与行内拼音共用一串,声调先不接,设置表登记待实现
2026-10-21 16:04:34 +08:00
yenharvey 0ca1b95419 feat: 并入青简词库,已清洗的进基础词库,其余作补充词库随包
- dict-convert lexicon --general / --cleaned:基础词库已有同读音的补声调、词频不动;读音不同的新读音按 1/8 收;
  其余按两边同读音词在对数坐标拟的直线换算词频。已清洗的 21.2 万条写 dict-cleaned.tsv,pack dict 与 dict.tsv
  合成 dict.qj(34.5 万条);其余 129 万条写 dicts/general.qj(GPL-3.0-or-later),缺省开着,设置「词库」页可关。
  都不进 bigram 分词,dict.tsv 除声调外不变,语言模型不用重跑
- 补充词库低主词库一档:不当前缀补全、精确命中不进排序第一档、兜底与词图格子预选多扣 2、不计入总词频;
  词图选中它的整词照样插到最前
- 「敲的拼音本身就是一个词就不走敲错路径」只认语言模型认识的主词库词,否则 zanen / jiusi 纠不回 咱们 / 就是
- 领域词多音字按语料猜读音打平时取 Unihan 靠前的读音,结果不再每次跑都不一样

冻结回放:词首选 8104 → 8167、整句 2845 → 2827(逐条核实词 25 好 2 坏、整句 14 好 12 坏,其中 2 条是当时选错的 输入狂);
整句评测集首选 37.6% → 38.9%、前三 43.4% → 46.0%。
2026-10-21 15:05:10 +08:00
yenharvey 3b1e41230f Merge branch 'main' into experiment/zhiyi-engine 2026-10-21 10:15:15 +08:00
bfxh c7027872fe ci: 加 rustdoc 文档门禁,并修掉它报出的文档断链与裸标签 (#738)
RUSTDOCFLAGS=-D warnings 跑 cargo doc,core 与 windows job 各一处;修掉 main 上公开文档链私有项、断链、裸 HTML 标签与跨 cfg 断链。
2026-10-21 09:30:14 +08:00
yenharvey 7eb66ba930 feat(core): 手机输入法要用的 Core 能力
- 九宫格拼音方案 nine_key(数字串组句、定音节、定字母出日期),云联想也能在九宫格下发
- 注音按敲的声调排序与转整句;日语罗马音转假名(测试版)
- 符号面板目录对外公开、加「网络」一类,「常用」按用过的次数排;emoji 肤色五档
- 邮箱后缀补全、text_pieces 拆词、认出代码并切高亮片段
- 全拼出日期时间星期、算式结果补全;上屏可暂不记输入统计;CandidateKind::forgettable
- 滑行输入解码接口 SwipeDecoder 与按词表打分的 ShapeDecoder;语音识别接口 Transcriber 与 commit_voice
- 模糊音名称、学习语言、繁体字形、领域词库等选项清单由 Core 给出,各壳不再各写一份
- cli 加 --nine-key;dict-convert 生成注音字调表,symbol_panel.py 补网络符号
2026-10-20 20:35:18 +08:00
yenharvey f059c28084 feat(cli): 试验知意选词模型重排候选(回放与整句评测) 2026-10-20 19:14:35 +08:00
yenharvey 05012b8b04 feat(core): 分次选词先留在组句里,退格撤回上一次选择
用户群反馈:长词组前面选错了退不回去,退格只会从最后一个拼音往前删。
一段拼音分几次选时,选的词先不交给应用,显示在剩下的拼音前面,整段选完才一起上屏;
退格先撤回最后一次选择、那段接回拼音重选,那次记的学习按整个删掉处理,改选别的词时退回。
回车 / 失焦连同剩下的拼音原样上屏,Esc 全部取消;组句中敲标点时壳先取走留着的词,标点接在后面。
[general] hold_selections 缺省开,关掉是选了就上屏;命令行回放按日志逐键重喂,固定关。
2026-10-20 17:34:30 +08:00
yenharvey d06b75ff30 feat: 辅码方案化(词码规则、同一时间只用一套)并接上 macOS
- schemes/<id>/scheme.toml 写 type = "aux" 即辅码方案,与形码、双拼共用目录、id 规则与元信息;codes/ 导入的 .qj 照旧可用
- [words] 词码规则沿用 Rime encoder 写法:码表只收单字时按词长从各字的码拼出词码,表里写了的词仍用自己的码;AuxCodeLookup 因此返回 Cow
- 同一时间只用一套([aux_code] scheme,设置里是下拉框):几套叠着筛,同一个字母在不同方案里意思不同,筛不干净;没选过或选的没了用第一套没被老 disabled 关掉的
- 两个壳按 AuxCodeSources 装码表,轮询 codes/ 与 schemes/ 的文件快照,导入或改方案不用等配置变
- macOS 接上辅码:按键分流与 Windows 一致、Esc 只清码段、候选上显示码,包里带上笔画表与 CNS 署名
- CLI 的 --aux-table 也收方案目录
2026-10-20 14:17:34 +08:00
yenharvey 3ba586d867 feat: 自定义双拼方案,形码方案 scheme.toml 必填并可在设置里改规则
- Core 的双拼解码挪到 Layout:内置九套仍是编译期常量表,用户方案拼成同一个结构,走同一套解码;Layout::check 报写错的键与打不出来的音节(按全部两键组合实际解出哪些音节算)
- 用户双拼方案放在 schemes/<id>/scheme.toml,写 type = "shuangpin",可拿内置方案当底子按键改;配置里认不出的 scheme 写法能当 id 就是 Scheme::Custom,找不到按全拼
- SchemeSlot 取代 CodeSchemeSlot,两条轴一起装,直接收 &Config;CLI 的 --shuangpin 可给方案目录,回放按 id 认出用户双拼
- 形码方案的 scheme.toml 改为必填,形码与双拼共用 author / version / description / license 元信息
- 设置里单用形码时出现「满码唯一自动上屏」「顶字」开关,存进 [code.<id>]、盖过 scheme.toml(随包方案只读,换码表也不丢),只改规则不重读码表
- Linux 还没接方案目录,设置里不列自定义方案(support 表登记待实现)
2026-10-20 11:34:14 +08:00
yenharvey 84196a8e49 feat: 自定义形码方案,单用形码时顶字、满码唯一自动上屏、标点上屏与空码清除
形码侧从只有 86 五笔扩成方案:Core 的 CodeScheme 是码表加按键规则,平台层 code_schemes 负责找方案。
随包五笔挪成 assets/schemes/wubi86/(scheme.toml + table.tsv),与用户数据目录 schemes/<id>/ 下的方案同一种格式、同一套找法,代码里不再有内置特例。
配置收成 [general] code = "<id>"(off 为关),旧的 wubi = "wubi86" 读取时仍认。
按键规则只在单用形码时生效,混输下满码之后的字母可能是在接着打拼音。
满码长度取码表里最常见的编码长度:极点码表里有条写错的 5 码(TF卡 ttfhh),取最长会让顶字与满码上屏全部失效。
CodeSchemeSlot 在方案与码表文件都没变时不重读码表,配置热加载多半改的是别的设置。
CLI 的 --wubi 换成 --code(旧写法仍可用),收码表或方案目录,回放认任意形码方案键。
设置程序的「五笔」开关换成「形码」下拉;切回窗口与进「输入」页时重扫 schemes/。
bamboo-slip 的下拉框宽度改为最小宽度并可设最大宽度,值过长时截短补「…」,不再把箭头挤出框外。
2026-10-20 10:22:58 +08:00
Haoyu Xi 87be3b4b3b feat(cli): --check-user-words 按读音核对用户词 (#672)
历史上云端学进来的错读音用户词(我的 wo di)没有清理入口,会按错读音出现在候选里、顶掉正确的整句候选;加 --purge-user-words 才删并落盘。
2026-10-19 15:56:24 +08:00
Haoyu Xi c8c4131473 feat(cli): --mine-log 挖出的全拼缺词可用 --mine-apply 直接并入用户词 (#662)
挖词清单到词能打出来之间不用再手抄:全拼行直接进用户词,简拼行列出来等人工补读音。
2026-10-16 14:08:58 +08:00
toolsfox 9bb6b2a382 feat(learning): 学习数据时间衰减(牛顿冷却) (#654) 2026-10-16 09:51:47 +08:00
Haoyu Xi 95018ff599 feat(core): 双拼新增紫光方案 (#660) 2026-10-16 09:19:05 +08:00
toolsfox 0d53da7a94 feat(cli): 从输入日志挖词库缺词 (#657)
--mine-log 把上屏文字按语言模型切词,列出连续单字段和词库里没有的词,先知道缺什么。只读日志,不写文件。
2026-10-15 19:32:50 +08:00
Haoyu Xi 9a781de664 feat(core): 双拼新增拼音加加方案 (#624)
双拼第八套方案,配置写 jiajia;翘舌 zh/ch/sh 在 v/u/i,零声母双写为主、兼容 o 前缀。

Closes #484
2026-10-15 13:05:14 +08:00
yenharvey 533e09b8ab fix(core): 繁体台湾档只换字形,配置改用 traditional_variant
台湾档从 s2twp 改回 s2tw,与 0.2.1 的 traditional = true 输出相同;三档都只换字形不换用语,输入法不替用户改词。
新写法换成 [general] traditional_variant(字符串):旧版本只认布尔 traditional,复用同一个键时退回旧版本整个配置解析失败。
旧键只在没写新键时读,true 按台湾档;不认识的写法只让这一项回简体。
2026-10-15 11:57:47 +08:00
jacklaoz 8d6eccebe3 feat(core): 繁体输出分三档(台湾 / 香港 / 通用字形) (#625)
台湾与香港的字形取舍不同,一个布尔开关表达不了;转换只在 Core 出口做,词库与学习数据仍是简体。
2026-10-15 11:53:01 +08:00
yenharvey 0e7e2c449a feat(core): 候选后面配颜文字与符号,补口语 emoji 叫法
- 颜文字(哭 → (T_T))、符号(约等于 → ≈、alpha → α、尖括号 → 〈〉)跟在对应词后面,与 emoji 各有名额:[general] kaomoji / symbols,缺省各 1,0–3;macOS 与 Windows 设置的「通用」页各加一项
- CLDR 表里的普通符号(≈ ¥ «)按 Unicode Emoji 属性筛出 emoji 名额,改由符号表出;符号表的中文词只收两个字以上的,单字一打就跟符号太吵
- 补 CLDR 没有的口语叫法(笑死 🤣、无语 🙃、星星眼 🤩)
- 三张表与这些词的读音编进 Core(crates/qingjian-core/data/),不随包另带文件;词库没有的词(尖括号、阿尔法)补进查词,否则整句拼成「见括号」配不上符号
2026-10-13 16:35:56 +08:00
Harly 279287dce8 feat: emoji 候选数改成 0–3 档可调 (#331) 2026-10-13 13:36:40 +08:00
Haoyu Xi 7a6f76e902 feat: 新增德语作为学习语言,三端接线 (#511)
Language 加 German(de),macOS 偏好设置与 Windows 设置可选德语,云释义补德语提示与译词清洗;Windows 缺释义表时启动记一条警告。

Refs #509
2026-10-12 15:54:42 +08:00
Joelee 2db9677a4c feat: 学习语言新增越南语 (#480)
Language 加 Vietnamese,三端设置与装配接线,云释义补越南语提示词;随包越南语释义表由 gloss-gen 生成(GPL-3.0-or-later)。

Closes #47
2026-10-10 10:42:44 +08:00
yenharvey a41d1cf82a feat: 接入含章·通变与知微模型
接入含章·通变的拼音解码、整句重排与词图兜底生成,扩展 macOS、Windows 和 Linux 的模型加载路径。模型文件按正式标识归档,保留旧用户目录回退,并同步数据打包、评测记录和用户文档。
2026-09-29 12:02:00 +08:00
yenharvey 81db829b0b feat(core): 双拼新增首道双拼方案
键位按方案作者公布的键位图(shoudaoshuangpin/shoudaoshouyouplus),与万象拼音、WindInput 的实现一致。
翘舌声母 v / i / e 为 zh / ch / sh;e 键让给了 sh,零声母 e / ei / eng 用 u 引导;同码 dk(den / dia)取 den。
顺带补上配置模板、注释与 CLI 说明里漏掉的 abc。
2026-09-20 17:27:21 +08:00
Chrok 839c794765 feat(core): 双拼新增智能ABC方案 (#180)
键位按 Rime 的 double_pinyin_abc 核对;翘舌声母在 a / e / v,零声母一律 o 前缀。

Closes #112
2026-09-20 16:56:07 +08:00
yenharvey f0c26f1cca docs(core): 清理辅码代码里引用仓库外编号与讲过程的注释
「边界 N」「spec 卷」「issue #8 卷」指向仓库外的设计工作区,读代码的人查不到;讲理由的长注释压成一句、理由留在 docs/design/aux-code.md。
顺带改正降级注释里过时的「协议 < 5」,aux_segment.rs 的文档链接指向私有类型(rustdoc 报错)改成普通代码引用。
2026-09-20 10:20:04 +08:00
Shiyuhai2023 f3ad110958 feat(core): 辅码:拼音后补码筛候选(码段状态机 / 码表 / 候选过滤 + CLI) (#51)
拼音打完整后按触发键进辅码态,补码逐键筛候选;码表是词 → 码的 .qj(AuxCodeTable),缺省关闭。
只含 Core 与 CLI,Windows 壳与随包笔画码表在 PR #152 / #153。
2026-09-20 09:19:46 +08:00
tonywoo 9cfeec4bad feat(core): 五笔 86 输入方案与拼音混输 (#125)
形码与拼音是两条平行管线:码表按编码前缀查,释义、生词、学习与输入日志照常。配置拆成 [general] scheme(拼音侧)与 wubi(形码侧)两条轴,两边都开就是混输;两端设置页、随包码表(极点 86,Apache-2.0)与 CLI --wubi 一并接上,macOS 顺带接了大千注音。
2026-09-18 01:06:42 +08:00
lei1024 95fdff1b52 feat(core): 支持小浪双拼方案 (#129)
双拼方案多一套小浪(e / i / v 为 zh / ch / sh,x 为 ü);键位表加每方案自己的翘舌声母映射。方案自带的同码(lk、nm、dk、un)只解第一个读音,已写进用户文档的已知限制。
2026-09-17 19:34:24 +08:00
Leo 8dc70c8372 feat(core): 拼写纠错在换位后没敲完时也能纠 (#130)
相邻两键敲反后不用等整个词敲完就能纠(mignt → 明天);有完整变体时残尾变体不参与;换位与换字母都说得通时优先按换位解释。
2026-09-17 19:15:58 +08:00
yenharvey 15e36e962d chore(core): #41 收尾:繁体转换器失败打日志、依赖只开简→繁、文档改说明书体、CHANGELOG
去掉 cli 加回的 result_large_err allow(本机与 CI 的 clippy 都不需要);测试文件尾空格修 fmt。
2026-09-16 19:03:16 +08:00
pinchiu 7404a9fd03 feat(core): 繁体输出与 Windows 注音按键 (#41)
OpenCC s2tw 在候选与上屏边界转繁体,引擎内部保持简体,学习、译词、云端词不受影响;Windows 注音模式下数字与 - ; , . / 进缓冲区,Enter 上屏候选、Shift+Enter 原样上屏。
2026-09-16 18:38:06 +08:00
9tong 01386194a0 feat(core): 中英混输可选中文候选优先(缺省关)(#85)
开着时整段输入是英文词(hello、key)中文候选排第一、英文词固定第二,空格上屏中文;缺省关,关着时拼音不成立的输入英文词排第一。缺省关下冻结日志回放与基线完全一致(词 8098/9241、整句 2983/3376、英文首选 222/269)。
2026-09-16 13:14:11 +08:00
Tofuzhu b5631efb45 Core:Language 增加西班牙语,两端设置页接线(#48)
配合 #37 的第一部分:Core `Language::Spanish`(es / es-ES / spanish),Windows 与 macOS 设置页各加一行,释义兜底加西语系统提示,文档同步。
2026-09-15 11:28:12 +08:00