作者galaxy4552 (无闻)
看板IME
标题[闲聊] 一个语义候选输入法的小实验
时间Sat Jan 24 12:18:26 2026
这是我最近做的一个实验用输入法引擎:
https://github.com/galaxy4552/SOE_IME_OPEN
老实说这个方向满争议的,
把语义/句子层的东西放进 IME,
我自己也很清楚不是主流做法。
之前在其他板讨论 AI 相关作品时,
也被提醒过这类东西容易被反感,
所以这次只是很单纯地在玩一个想法。
动机其实没有很复杂,
只是希望在日常用 IME 的时候,
能少打一点字、多省一点时间,
让科技真的带来一点轻松感。
目前是非商用的 prototype,
没有整合进系统,只是在研究架构。
如果有人对这种方向有经验或看法,
也欢迎交流。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.136.113.226 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/IME/M.1769228357.A.25B.html
1F:推 kanru: 赞!我有实验性的新酷音+embedding,但是感觉单纯作相似性 01/24 16:30
2F:→ kanru: 的效果不是很好,你是用什麽样的 model 呢? 01/24 16:30
感谢回覆!
我一开始在实验阶段也有用过几个中文开源 embedding model
(主要是 sentence embedding 类型),
但实际接到 IME 使用时,感觉跟你一样,
单纯做相似性效果并不理想。
後来卡住的一个问题其实是:
「我们到底要给 IME 多少『智慧』才算合适?」
例如 input 像是「我今天…」,
如果让模型自由补语义,合理的延伸可能有上千种,
对 IME 这种需要快速、可预期选项的场景反而是灾难。
所以我目前的方向是:
只有在**选项空间已经被限制得很小**的情况下,
语义层才介入辅助,
例如成语、固定句型或明确的错误订正。
像「不入虎穴 → 焉得虎子」这种,
而不是自由生成一整个新句子。
我目前在实作上是用反向触发的方式,
例如使用者只要打「虎穴」或「虎子」,
就会在候选中出现完整成语「不入虎穴,焉得虎子」。
这样选项本身是被严格限制的,
语义层比较像是在确认「是否命中这个既有结构」,
而不是开放式地生成新内容。
纯工程角度来看,
IME 还是非常讲求「快速、准确、可预期」,
我自己目前觉得 embedding 比较适合用在
错字/用词订正这类 bounded problem,
但这一块本身工程复杂度也不低。
例如像:
「我因该要出门了」
侦测到「因该」後送进 embedding,
「我应该要出门了」的分数高於原句,
再以候选方式提示使用者确认。
目前这个实验专案里我甚至先把 model 拔掉了,
专注在候选生成与 rerank 的架构,
所以整个 core 非常小(加上些许资料 240KB),
模型反而是後续再考虑要不要加回来的选项。
※ 编辑: galaxy4552 (223.136.113.226 台湾), 01/24/2026 21:14:17