作者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/m.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