yenharvey
|
af9d3def2d
|
fix(core): 简拼第一页就有单字,全拼选过的词简拼也排在前面
之前打简拼时:ss 读得出几万个两字词,排序前按结构与词频预选会把首字母的单字全部砍掉,前 500 条里一个单字都没有;
其余的词一直排到五十多页之后单字才出来。用全拼选过的词,打它的简拼不算选过;
低主词库一档的词(知意词表里的 屎山)即使在 ss 下选过几次,也排在几千个主词库两字词后面被截掉。
同一个词连打几遍(屎山 屎山)还会被合成新词 屎山屎山。
现在:
- 多音节输入的首音节单字单独排、单独留 100 个(FIRST_SYLLABLE_CHARS_KEPT),简拼也是几个词之后就是单字。
- 单字之前的词封顶 30 个(WORDS_BEFORE_ALL_SINGLE_CHARS),再多的排到全部单字之后。按输入日志定:
冻结日志与一份本机日志共一万四千条多音节选词,没有一条选在第 30 位以后。
- 这串键下选过的词不进预选,并和主词库的词一起比选择次数。
- 全拼选一个多音节词时,选择按简拼另记一份(键 ^ss),下次打简拼排在没选过的词前面;
排在真在这串键下选过的词后面,判断中英文谁在前也不看它。
- 前后两个相同的词不自动合成。
取舍:简拼另记的选择和真选择分开,是因为混在一起时冻结回放里 cd / kl / qq 的英文被全拼选过的
才对 / 看来 / 全球 挤到第二。仍有少量回退:长输入里单字偶尔后挪一两位(woshishi 的 我 2 → 5)。
测试:冻结回放三组(无模型 / 知意 / 通变)词首选 8203 → 8199、8301 → 8300、8188 → 8184,整句与英文首选不变,
知意整句平均名次 2.11 → 2.35;开发集、回归集不变。本机学习数据副本加知意词表与通变模型实测 ss 首选 屎山、cd 首选英文 cd。
|
2026-11-06 15:57:16 +08:00 |
|
yenharvey
|
8b15c02d15
|
feat(core): 分几次选完的整句也记住,下次全拼与简拼直接出
之前一段拼音分几次选完时,合起来超过 4 个字就不记整段的答案:逐字选出「晓铭去了学校」后,
下次全拼靠词和个人搭配还能拼回来,整句简拼 xmqlxx 却排在第 155 位。
现在合起来不超过 20 个字(BUFFER_PHRASE_MAX_CHARS)的都记成用户词,按用户词的规则
下次同样的全拼或整句简拼直接排第一,只打前半句时也会作为补全出现。前后两个词自动合成的仍限 4 个字。
取舍:整句和自造词放在一起,设置里的自造词列表会列出这些句子,长按候选同样可以删除;
再长的多半是一大段话,一字不差再打一遍的机会小,不记。
测试:冻结回放三组(无模型 / 知意 / 通变)、开发集、回归集与改前完全一致。
CLI 实测 xiaomingqulexuexiao 逐字选出 晓铭去了学校 一次后,全拼与 xmqlxx 首选都是这句。
|
2026-11-06 11:17:41 +08:00 |
|
yenharvey
|
e52eb3f487
|
feat(core): 逐字选一次就造词,下次整段与简拼都排第一
之前同一段拼音逐字选(shishan 先选 屎 再选 山)要选两次才造词;造出来的词在整段输入时排在整句「是山」后面,
用简拼 ss 时按词频预选几乎沉底(第 486 位),要再选一两次才靠前。
现在同一段拼音逐字选一次就造词,并记一次选择;分两段打的仍要三次,免得 了我 这类虚词接续成词。
盖住整段、不靠拆开音节读出的用户词(自造词、接受过的云端词)weight 至少 1,预选不会砍掉;
其中按选过次数取头 5 个(USER_WORDS_BEFORE_SINGLES)当作在这串键下选过,不占词的名额、排在没选过的词前面,
其余照常排,简拼能对上十几个自造词时单字也不被挤后。这串键下选过的用户词排在整句前面,除非整句选得更多。
取舍:选错造出的词只在敲同样的音时出现,可以删掉。整句让位只对用户词:
试过对词库里选过的词也这样,冻结回放整句首选少十几条(shiyong 选过 使用、这次要 是用),没有采用。
测试:冻结回放三组(无模型 / 知意 / 通变)词首选不变,整句首选 2769 → 2770、2661 不变、2705 → 2706;
开发集、回归集不变。CLI 实测 shishan 逐字选一次后,shishan / ss / shis 首选都是 屎山。
|
2026-11-06 10:22:01 +08:00 |
|
yenharvey
|
d7e9214907
|
fix(macos): 关掉中英文切换后固定中文,Caps Lock 只管大小写
之前 macOS 读配置时没看 [general] english_mode:关掉中英文切换后,Caps Lock 一亮就进英文,
又没有切换键能切回来,只能重启输入法。
现在关掉时单击 Shift 与 Caps Lock 都不切到英文,Caps Lock 只管大小写,与 Windows 一致。
文档里这个开关按设置页上的名字写成「中英文切换」,按键速查补上关掉后 Caps Lock 出大写。
测试:本机 macOS 真机验过关掉后 Caps Lock 只弹大写 / 小写、亮着打字母、开着切到英文再关掉回到中文、单击 Shift 不切;Linux 没验。
Closes #890
|
2026-11-05 18:23:40 +08:00 |
|
yenharvey
|
0fe32fbe8e
|
fix(phrases): 导入短语说清跳过的是哪一行、为什么;符号面板加带圈汉字
- 导入完除了「几条写错跳过」,再举出第一条:TSV 报第几行与那行文字,导出的 TOML 报第几条,后面跟原因;码里带数字的 ⑪ 这类以前只知道写错了
- 输入码规则补一句不能带数字(数字键用来选候选),没 Tab 的行原因改成界面语言
- 符号面板在序号后面加「带圈汉字」(㈪–㉇、㊀–㊰,㊗ ㊙ 仍在表情页),搜「带圈汉字」「圈字」找得到;生成脚本带同样的列表
- 自定义短语与符号面板文档同步
Closes #857
|
2026-11-04 19:54:26 +08:00 |
|
yenharvey
|
706af8e80f
|
feat(android): 设置里可选候选后面配几个 emoji / 颜文字 / 符号
Android 没有 PC「候选」页的这三项,emoji 总是跟在候选后面占地方,想要只出字词的人关不掉。
「输入 → 候选后面」三行各选不显示 / 1 / 2 / 3,交给引擎原有的 set_emoji_limit 一类接口,全拼、双拼、九键都生效;
缺省 emoji 3、颜文字与符号各 1,同 PC,旧设置里没有这几项时也按它来。几档与缺省值从 Rust 的 SettingChoices 取。
真机(小米 Android 16)验过:emoji 不显示后 kaixin 只剩颜文字,再关颜文字只剩字词,改回缺省 emoji 回来。
Closes #872
|
2026-11-04 19:40:49 +08:00 |
|
yenharvey
|
75b80a5a77
|
feat(core): 叹词读法 ng / hng / hm 在九键、全拼、双拼里都能打出 嗯 / 哼 / 噷
音节表不收叹词写法(n / m 要留给简拼),词库里也没有这些读音,九键打 64 根本选不到 嗯,双拼 ng 也没有。
九键:拼音列列出 ng / hm / hng,选定后自成一个位置、候选第一个就是那个字;只认拼音列选定处,不从 zhang 中间切出 ng;
n / m 照旧当声母,整段只有这个字母时才多给 嗯 / 呣。
全拼:hng 出 哼 排第一,hm 的 噷 排第二(hm 也是 好吗 一类的简拼);词库按别的读音已带出来的字挪上来,不另插一个。
双拼:ng 在各方案里是 neng,能 留第一、嗯 排第二;双拼的 hm / hng 是别的音,不给。
只在整段正好是这几个键时生效,别的输入的切分与排序不变,没跑评测护栏。真机验过九键 64 选 ng 出 嗯。
Closes #880
|
2026-11-04 19:10:15 +08:00 |
|
yenharvey
|
8d25a52e87
|
feat(core): 打「度」时候选后面跟 °
- 符号表加「度 → °」,与「摄氏度 → ℃」一致,搜狗、清风也这样出
- 单字词原先一律不收(上、左、角一打就跟符号太吵),改成测试里的白名单:只收单字本身就是这个符号读法的
Closes #900
|
2026-11-04 17:49:43 +08:00 |
|
yenharvey
|
b105b11b1f
|
fix(core): 长拼音时首音节的第一个单字保底在第一页
arrange 只给词限了 6 个名额,整句(3 条)与词配的 emoji 后插进来不算名额,
shiyanshiqingfanghaoxiangbaozhuang 的 是 排到第 12 位(#769 剩下的缺口,PR 790 碰到的就是这个)。
知意重排、整句截到 3 条之后再看一遍:第一个单字在第 9 位之后就把单字前离它最近的词连同配的 emoji 挪到单字段后面;
整句、英文与这个输入下选过的词不动,辅码筛词时不挪(顺序按码的匹配程度排过)。放在截整句之前数会看到 16 条整句、把词全挪走。
矩阵(无模型 / 知意 / 通变)开发集首选逐句不变、回放首选数不变;回归集 #769 是 / 时 进第一页。
|
2026-11-04 17:08:29 +08:00 |
|
yenharvey
|
61ca4b4150
|
feat: 符号面板加「翻译」组,删掉 Windows 的整句候选翻译
- 整句候选翻译译的是猜出来的候选,猜错就白发;改成用户在面板的框里自己打一句、停键后再译,整句只发确认过的内容
- 翻译组排在最前,每种目标语言算一个分类([ ] 换),打拼音时按 ↑ 直接落在这组;没在打字时 [shortcut] translate_panel(Ctrl+Alt+Y / ⌃⌥Y)打开
- Core panel/translate:原文带光标,停键 800 ms、两个字以上才发,内容没变不重发,没翻出来 2 秒后自动重试一次、再失败等回车;译文按原文 + 语言缓存在内存(换提供方清空),不落盘
- 译文放进应用的 preedit:Windows 译文靠轮询送到,DLL 记着写进文档的组句文字,变了就补一次编辑会话;行内不显示拼音的设置下也照样放
- 框的排版抽成 bamboo-slip 的 TextFlow,与设置程序的 TextField 共用;面板不是 Ui 搭的,布局后按各字位置给出 PanelHit::Caret
- [predict] sentence_translation 不再认(旧配置里写着不报错),两个设置程序的开关与文档一并去掉;生词本整句翻译保留
- Windows dispatch/composed/mod.rs 超了 800 行,按联想、导航、出帧拆开
- 初音主题当前分组胶囊改纯色
|
2026-11-04 16:18:39 +08:00 |
|
yenharvey
|
0ba1f529a2
|
feat(android): App 界面按「素笺」重做,设置项重新分组
- 配色换成浅灰底、白色分组卡片、单一竹青强调色,跟随系统深浅色;去掉顶部渐变与彩色图标块
- 顶栏标题居中、与各页同字号,顶栏与底部 tab 栏都铺栏底色加细线,把内容区框出来;顶部留白按系统给的状态栏与刘海高度
- 底部 tab 改为 首页 / 生词本 / 设置:「我的」与首页统计重复,去掉;首页只放今日统计、最近见过的生词与试打框,没切到青简时换成两步引导
- 原「键盘设置」拆开:输入(方案、拼音、中英混打、标点字形、学习习惯)、键盘(尺寸、按键、手势)、剪贴板、云端大模型各一页,学习语言放在设置页
- 震动开关与强度合成一个 关 / 轻 / 标准 / 重 分段;开关自绘(系统 Switch 换轨道后会被裁掉一截)
- 键盘工具栏的设置按钮落到设置 tab,翻译缺配置时直接进云端大模型页
- 生词标签色与危险操作红收进 AppColors
译本待更新:i18n/en/platforms/android-settings.md、android-tools.md、android.md
|
2026-11-04 13:20:34 +08:00 |
|
Joelee
|
e1f3ba47c9
|
feat(core): 支持越南语 Telex 第三输入法 (#841)
Windows 与 macOS 加越南语 Simple Telex 第三输入法,双击 Shift 在中英与越南语之间切换,候选旁显示中文译词。
Closes #835
|
2026-11-04 10:32:54 +08:00 |
|
Haoyu Xi
|
8fd2de3e29
|
feat(core): 双拼方案可同时接受全拼,同一输入里两种打法可混用 (#825)
双拼方案下打全拼没有候选;加开关(缺省关),开着时一段键同时按双拼与全拼读,两种打法可在同一输入里混用。
Closes #374
|
2026-10-30 15:03:35 +08:00 |
|
yenharvey
|
b7a4f8bbb1
|
feat(core): 拼音行按汉语拼音写 ü(lüe、nü、qu、juan)
- 用户反馈打「略」时拼音行显示 lve;按键照旧用 v(或 lue / nue),只改显示:l、n 后写 ü,j、q、x、y 后按正字法省去两点写 u(qv → qu、jvan → juan)。
- 候选窗拼音行、应用输入框里的 preedit、光标后的剩余拼音、纠错与双拼解出的全拼、九宫格拼音行一起换。
- 带调拼音行把敲法先归一成词库写法再对读音,敲 qv、lue 的也能换成带调读音。
- 输入日志、云联想请求、上屏、学习与原样上屏用的拼音串不变(join_marked 仍是敲法,九宫格日志仍记词库写法 lv)。
- 换的是单个字符,按字符数算的光标不受影响;各平台壳本来就要处理 preedit 里的汉字,非 ASCII 不是新情况。
|
2026-10-29 20:02:50 +08:00 |
|
yenharvey
|
cab2e498fa
|
feat(android): Shift 双击锁定、上滑输入角标、英文敲字母串、双拼键面可关、微软双拼 ; 占 Shift 位
用户群反馈的一批键盘问题,都直接改在默认键盘上(不动已有键的位置,微软双拼按用户定的跟方案走)。
Shift 改成三态:点一下单次,350 ms 内再点锁定(键亮着再加右上角一个品牌色小点,与只大写一次分开;微软双拼的 ; 同样显示),锁定时点一下解锁;单次的出过一个字母就熄。拼音、日语组句中 Shift 仍不响应,英文组句中可以,好敲大小写混着的串。
上滑输入(缺省开,可关):在键上往上划过 18dp、不偏出本列就上屏长按不滑直接抬手的那一项(字母键角标、九宫格数字)。要求起终点同列,与跨键的滑行区分;两者都成立时上滑优先,竖着相邻两键的滑行词很少。
英文模式之前敲验证码卡在:数字、标点会顶首选,首选是补全或纠错出的词,字母串被换掉。现在空格、数字、标点前都原样落下敲的字母,要词点候选;不改 Core 的英文候选,只改壳里这几个键怎么结束组句。
双拼键上的声韵母小字加开关(缺省显示)。
微软双拼照手机键盘的习惯把 ; 放到 Shift 位、二排回到九个键:点按永远是 ;,上滑是 Shift(快速上滑两次锁定)。没做成搜狗那样按组句状态换含义的键,同一个动作在什么时候都是同一个意思;其他用 ; 的方案键盘不变。
|
2026-10-29 17:21:58 +08:00 |
|
yenharvey
|
79ad30f38b
|
fix(core): 模糊音命中的常用字排在生僻字前
排序键的「末音节完整」只认敲的原文,末音节读成模糊音写法的命中整体排在原样读音的全部命中之后:
zi 开 z-zh 的 知 在第 220 位,li 开 n-l 的 你 被预选砍出前 500。
末音节的模糊音写法也算完整;fan 按前缀查到的 fang 原本不扣分,当 an-ang 读法时补扣 ln 2。
光靠 ln 2 的扣分,单字间词频差得远,zi 首选会变成 只;单音节输入时模糊音命中的单字排在原样读音的头 9 个单字之后
(SINGLE_CHARS_BEFORE_FUZZY,选过的不挪),多音节输入照得分排,lihao 首选仍是 你好。
评测集与回放都不开模糊音,无模型 / 知意 / 通变三组的开发集、冻结回放、回归集前后一致。
|
2026-10-29 12:02:06 +08:00 |
|
yenharvey
|
fb4f531653
|
feat: 双拼候选窗的拼音行可显示按键,与输入框各自设置
原来只有「输入框显示按键」一个开关,候选窗固定显示全拼;有人想两处都显示按键。
新增 [general] shuangpin_raw_window(设置里「候选窗显示按键」),与 shuangpin_raw_preedit 各管一处,组合出四种显示。
macOS、Windows 已接;Linux 的 Fcitx 面板与行内拼音共用一串,登记为平台缺口,安卓设置页未加。
|
2026-10-28 17:59:20 +08:00 |
|
yenharvey
|
7638cd8775
|
chore: 合并 main(4 个提交)进 fix/sentence-accuracy
- 带进 UI-less 候选列表(#820)、状态条贴边(#819)、候选译文重新生成(#791)、组句计数日志
- 无冲突;workspace clippy 与测试通过,150 句抽查通变 / 知意首选不变
|
2026-10-28 09:32:44 +08:00 |
|
ArthurLau
|
cf39b0d877
|
fix(server): 状态条按内容区贴住任务栏与屏幕边,拖动中就挡住 (#819)
带装饰的主题四边留白不等,以前拿内容左边距当四边通用的边距,纵向被多扣一百多像素,拖不到屏幕下方。
改成按内容区夹进工作区,拖动中 WM_MOVING 就挡住,按内容中心挑显示器。
Closes #707
|
2026-10-27 19:46:08 +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
|
46a45f73f1
|
feat!: 去掉含章·知微,通变改为在实验功能里下载
- 知微与知意同是看前文排序,知意强得多(开发集首选 75.0 对 58.0),留着只多一个难选的选项;分工改成知意排序、通变生成
- 实验功能只剩知意与含章·通变两张卡片,最多开一个,开关同时写 [model] name 与 enabled,两个都关就不用模型;下完自动启用,删除正在用的先关掉
- 通变的下载包是模型仓库已有的 hanzhang-tongbian-v1.0.0(43 MB,hanzhang/tongbian/hanzhang-tongbian-small.qjm),不用重新发
- 选的模型没下载就不用模型,不再退回随包通变(Windows、macOS、Linux 三处加载逻辑一起改);find_model 不再找知微的目录
- macOS 安装包不再带通变;Linux 还没接模型下载,继续随包
- 老配置里的 name = "zhiwei" 按 tongbian 读(serde alias),整个配置不会因此读失败
- 同步用户文档(中英)、设置设计、架构与 crate-notes、Linux 说明、模型说明、平台缺口清单
- macOS 壳本机只能目测:darwin 目标的类型检查卡在 onig_sys 要本机 C 编译器,靠 CI 的 macOS job 编译
|
2026-10-27 17:28:02 +08:00 |
|
yenharvey
|
a5b1fd4f57
|
feat(platform)!: 本地整句模型缺省关闭,含章·通变改为可选
- 无模型(词库 + 语言模型)最快、最省电,冻结回放上也最好:整句 2769 条对通变 2705 条;通变在开发集上高 5 个点,作为可选模式在「设置 → 候选」打开
- 只改缺省值:配置文件里已经写了 enabled = true 的老用户不变
- 同步配置文件说明、用户文档(中英),英文整句页补上一个提交漏改的通变新排位说明
|
2026-10-27 17:28:02 +08:00 |
|
yenharvey
|
c8fc1cb875
|
feat(core): 含章·通变改成生成为主、词图兜底
- 通变是 P2C,长处是按拼音直接造句;当重排器只能动词图前 6 条,正确句不在词图里时救不回来。知意负责挑首选,含章负责生成,各有分工
- SentenceScorer 加 generates(),P2cScorer 为真;接了生成器时不重排词图路径
- 拼音干净且至少 6 个音节时生成的整句排第一;更短的、末尾音节没打完的、纠正过的词图第一、生成的第二(短输入里词图带着个人习惯,没打完与敲错的拼音生成器读不准);中英混输照旧生成的在前
- 生成句与词图整句同文时用词图那条(带读音),排在生成给的名次上;生成加词图整句合计最多 3 条,不挤走第一页的词(#769)
- social 开发集首选 57.1 → 59.1%、前三 61.3 → 75.2%;冻结回放词 7993 → 8188、整句 2520 → 2705;回归集没过 13 → 6,与无模型相同
- 同步 crate-notes、模型说明、配置注释、设置里通变的描述与用户文档
|
2026-10-27 17:28:02 +08:00 |
|
why
|
b215cabe72
|
fix(core): 五笔一级简码按码表顺序排第一 (#776)
单字母编码的精确命中按码表行序排,不再按词频;引擎里一级简码的码表顺序优先于个人选择与上下文排序。生成工具保留上游码表的单字母顺序,用户自定义方案同样适用。
Closes #445
Closes #732
|
2026-10-27 09:53:03 +08:00 |
|
yenharvey
|
8dd9cb98c0
|
feat(core): 问字模式按部件读音拆字,umuzi 出 李
数据是開放詞典網的拆字字典(CC BY 3.0,原样收在 assets/chaizi),dict-convert chaizi 按词库单字读音连成部件拼音串,编进 Core 的 data/chaizi.tsv(1.4 万字)。
整串对上在前、前缀在后,同档按字频;候选带读音,离线可用,开着 AI 服务时照常问字。全是字母又拆得出字(udada)时数字键选字、不当码点。
署名加在设置「关于」页的数据来源。
Closes #381
Closes #652
|
2026-10-26 19:12:53 +08:00 |
|
yenharvey
|
9931d9e71c
|
feat(core): vts 出时间戳候选:Unix 秒、UTC、Unix 毫秒、带时区的 ISO 8601
UTC 用 RFC 3339 写法排第二。与 vuuid 共用一套「生成型关键字」:数字留给选词,同一段组句里值不变。
|
2026-10-26 18:42:03 +08:00 |
|
yenharvey
|
afd518e8b1
|
feat(core): vuuid 出 UUID 候选,全拼下 uuid 也行
v4、v7、v4 大写、v4 去连字符四条;同一段组句里值不变(壳每次刷新都重查),新一段才重新生成。
vuuid 不是算式,数字留给选词:壳的数字分流改问 Engine::expression_input。双拼走 Shift+V,形码没有字母模式键不受影响。
|
2026-10-26 17:54:08 +08:00 |
|
yenharvey
|
915ca6061a
|
feat(windows): 简繁快捷键缺省关、切回上次用的繁体,新版设置加开关
Ctrl + Shift + F 在所有应用里都会被拿走(编辑器的「在文件中查找」),缺省改成不开,快捷键页加开关。
繁体输出改成四档后,快捷键在简体与上次用的繁体之间切,切到简体时记进 [general] last_traditional。
|
2026-10-26 14:20:24 +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
|
2953ad59ef
|
fix(macos): 单击 Shift 加 150 ms 冷却与按住时长上限
部分外接键盘松开 Shift 后 8–10 ms 又补一对按下 / 抬起,一次单击会切过去又切回来;鼠标事件不进 IMK 会话,按住 Shift 拖选文字会误切。数值取 #503 里实测过的 150 ms 与 300 ms。
|
2026-10-26 12:32:38 +08:00 |
|
yenharvey
|
5dccfdff09
|
feat(settings): 新设置程序在 macOS 上也显示中英切换键
#579 的开关写在旧偏好设置里,那时新设置程序还没转正;支持表里 mac 改成支持,只列单击 Shift(单击 Ctrl 与 Ctrl + Alt + Space mac 没做,另记一项)。文档改指新设置程序,补上英文版。
|
2026-10-26 12:32:38 +08:00 |
|
srilanka
|
590e9a6a8a
|
feat(macos): 单击 Shift 切中英,切换时右上角给提示 (#579)
macOS 的中英切换原先写死 Caps Lock;复用 [shortcut] switch_mode,勾上 shift 后单击 Shift 切中英、Caps Lock 只管大小写,切换时右上角提示「中 / 英」,组句中切到英文把拼音原样上屏。
Closes #35
Closes #248
Closes #460
Closes #796
|
2026-10-26 12:32:28 +08:00 |
|
yenharvey
|
eea4d26928
|
fix(core): 词库里没有想要的词时首音节单字尽早出现,拆开音节的读法与猜测的长词不再挤占前几页
- 原来词级候选按「覆盖字母数」排最前:shishan 里拆开 shan 读出的两百多个词(事实、是啥呢)和五十个 时尚X 补全把单字挤出前 500 条,想逐字打 屎山 做不到;长拼音整段没有词时(#769),首音节单字要翻好几页
- 排完序后按类别重排(ranking::arrange):读音正是敲的音节的整词(至多 12 个)→ 至多 3 条猜测的长词 → 前缀词与单字 → 其余;没有词盖住整段时首音节最好的两个字提到前两个前缀词之后
- 拆开完整音节的读法(Scored::split)只在有整词时往后放,放到首音节头一页单字之后;一个整词都没有时它们多半是手误或没打完(wodei 的 我的、cankai 的 参考、mingtia 的 明天),照常排
- 末音节还没打完(jixub)时补全正是要往下打的,不算猜测、不限条数
- 冻结回放:词首选 8322 → 8319 条、前五 97.3% → 97.6%、平均名次 1.51 → 1.38,进第一页 51 个、掉出 12 个(多是掉到第二页);社区开发集不变
Closes #769
|
2026-10-26 11:10:55 +08:00 |
|
Haoyu Xi
|
3e7e72eb83
|
feat(core): 英文模式也使用自定义短语 (#794)
dont → don't 这类短语以前只在中文模式出;英文模式也插进来,只出内容不含汉字的,中文短语(含右键置顶加的)留在中文模式,免得英文模式按空格上屏中文。
|
2026-10-26 10:35:23 +08:00 |
|
Haoyu Xi
|
b28260c33e
|
feat(core): 双拼整串配不出音节时按每键一个声母的简拼读 (#792)
双拼 im、zm 这类简拼以前整串报不能切分、什么都不出;整串一个音节都配不出时按每键一个声母再读一次,能正常解出的输入不走这条。
Closes #765
|
2026-10-26 09:51:54 +08:00 |
|
xiaomao49
|
243e41c3d5
|
feat(linux): 中英切换时弹「中 / 英」提示 (#751)
Linux 切中英没有任何视觉反馈;KeyResult 带上切换后的模式,Fcitx5 插件用框架的输入法信息气泡提示,跟随「切换输入法时显示输入法信息」设置。
|
2026-10-26 09:32:20 +08:00 |
|
Haoyu Xi
|
efa83b3e44
|
feat(core): sj 的时间候选增加 yyyyMMddHHmmss 时间戳 (#785)
取单号、追溯串时直接要一个时间戳。
Closes #778
|
2026-10-26 09:32:12 +08:00 |
|
Haoyu Xi
|
281e0d367f
|
fix(core): 双拼末尾落单键拼出整词时不再让英文词排第一 (#786)
双拼末尾落单的一键是还没敲完,连同前面的音节拼出整词时按中文读法,英文退到后面、空格不再把整串当英文上屏。
Closes #753
|
2026-10-26 09:29:38 +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 |
|
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
|
17f819b753
|
feat: 打「用户名@」时候选列出常见邮箱的完整地址
Core 的 email_completions 原来只给 Android 用,桌面的英文直输段接上,地址按快捷候选上屏、不记学习。
直输段里按空格选中地址时不再把空格交给应用。
网址本来就能在英文直输段里打(www.example.com),不另做模式。
Closes #508
|
2026-10-22 15:04:39 +08:00 |
|
yenharvey
|
eb5158aa4a
|
feat(windows): 知意只用 CPU,不接 DirectML
集显上 DirectML 因每次序列长度不同,均衡档一次 200 ms,CPU 两线程 28 ms;
安装包改带 CPU 版 ONNX Runtime,少一个 18 MB 的闭源 DirectML.dll。
|
2026-10-21 20:17:27 +08:00 |
|
yenharvey
|
a20a38acaf
|
docs(user): 用户文档按用户要做的事重新分组
功能越加越多,原来按早期设置页搭的结构塞不下:几个大页(按键、拼音方案、主题)越写越长,同一功能散在几页。
现在分为开始使用、打字、学语言、个性化、AI 服务、各平台、隐私与帮助、进阶八组,一个功能只在一页讲全,别处一句话加链接。
配置键名、文件路径、文件格式只放进阶组,其他页只写「设置 → 某页 → 某项」,面向普通用户不出现实现词。
设置程序的 ⓘ 链接表、各 README、issue 模板与代码注释里指向旧页面的链接一并改到新地址。
|
2026-10-21 20:06:25 +08:00 |
|
yenharvey
|
99f64f3bc6
|
build(installer): 取 ONNX Runtime 时用 TLS 1.2
|
2026-10-21 19:59:06 +08:00 |
|
yenharvey
|
b8881c7456
|
feat(windows): 知意走 ONNX Runtime,有显卡用 DirectML,没有退 CPU 省电档
qingjian-neural 把知意的前向抽成 candle / ONNX 两个实现,分词与序列拼法共用;
Windows Server 按 [model] name 加载,设置下载 zhiyi-onnx,安装包带上 ONNX Runtime 1.24.4 与 DirectML。
|
2026-10-21 19:47:52 +08:00 |
|
yenharvey
|
3be348d4e4
|
feat(settings): 「实验功能」页下载、启用、删除知意与含章·知微
两边同时取清单,先回来的先下,不通换另一边;逐块与整包核对 SHA-256,解到临时目录再换进模型目录。
mac 壳按 [model] name 加载,换档当场生效。Windows、Linux 登记待实现。
|
2026-10-21 19:16:08 +08:00 |
|
yenharvey
|
04068a5c0f
|
feat(core): 读不到光标前文时按应用、按输入框取最近打的字当前文
- 输入记录按应用分开,每个 256 字、最多 16 个应用;换应用不串
- [model] context_memory_seconds(缺省 60,0 不过期)没打字就不算前文,太旧的前文没参考意义
- mac 进输入框时从头记;Linux 本来每个输入上下文一份;Windows 的 DLL 还不报换输入框,等知意 Windows 版一起做
|
2026-10-21 16:35:47 +08:00 |
|