Transcript Document

新酷音 (Qooing) 發展介紹
Jim Huang (黃敬群) <jserv @ kaffe.org>
Official Kaffe Developer,
JMCCE Developer
May 10, 2004
1
題綱
• 新酷音發展動機
• 酷音輸入法簡介
• 新酷音架構
• 新酷音發展狀況
• 邁入 IIIMF
• 未來展望
May 10, 2004
2
新酷音發展動機
• 酷音輸入法 (Chewing)
– 最早為台大資工系的龔律全與陳康本的資訊專
題,選擇以 GPL 授權釋出,是 UNIX 上最接
近新注音或是自然輸入法的實作
– 架構於 XCIN 下的動態載入模組
– 與 bimsphone (XCIN詞音輸入模組) 的差異
• 酷音採用 statistical model 來斷詞
• bimsphone 採用傳統 heuristic
May 10, 2004
3
新酷音發展動機 (續)
• 酷音輸入法的缺陷
– 沒有持續維護
– 主體程式僅能在 XCIN 下使用
– 缺乏泛用型的 API
– 無法與 libtabe 共享詞庫
• 酷音輸入法使用的詞庫是蔡志浩最初提出的
• libtabe 詞庫已有熱心朋友的檢閱
May 10, 2004
4
新酷音發展動機 (續)
• 衍生於酷音輸入法的計畫
– JMCCE (維護人:crazykid/jserv)
• 移植自酷音輸入法的輸入引擎,是第一個可以使用酷音
輸入法的中文終端機
– Chewing-On-OSX (維護人:gugod)
• clkao 將酷音輸入法移植到 MacOS X,目前由 gugod
維護
– Iiimf-chewing (維護人:clkao)
• IIIMF 下的酷音輸入法 LE (Language Engine)
– 新酷音 (Qooing)
May 10, 2004
5
新酷音發展動機 (續)
• 新酷音 (Qooing) 發展目標
– 抽離原本酷音輸入法,獨立為 libchewing
• 最早的 libchewing 原型來自 2002 年的 JMCCE
• 跨越平台 / Toolkit 限制
– 提供 libchewing 與其他專案的橋樑 (bridge) 程式碼
• 目前已提供 XCIN (cvs 版本) 與 JMCCE 的 patch
– 針對智慧型注音輸入法開發 backend 與設定工具
• Qooing XIM server
• Qooing InputMethod plugin for Qt/Embedded
• IIIMF (?)
May 10, 2004
6
新酷音簡介
• 酷音輸入法引擎 API 的標準化
• 實驗性 Qooing XIM Server
– 以 Qt 3.x 設計的設定介面
• Qt/Embedded 的整合
– 透過 imkit 與 Qt/Embedded (Qtopia) 環境溝
通,可在 Qtopia 下存在多種輸入法系統
May 10, 2004
7
新酷音簡介 (續)
• 酷音輸入法引擎 API 的標準化
– 酷音輸入法的 language model 摒除了傳統 heuristic
的方式 (如詞音輸入模組),而完全採取 statistical
model
– supervised 的方式,亦即預先建立已斷詞的資料庫作
traning
– 基於記憶體需求考量,採 uni-gram
• uni-gram:找出一種斷詞方式,使每個詞的出現機率為最大
• bi-gram:使用條件機率,一個詞出現的機率會 依據上個詞
而出現
May 10, 2004
8
新酷音簡介 (續)
• 實驗性 Qooing XIM Server
– 不使用 IMdKit (傳統的 XIM Server 如 Chinput、
XCIN,與 fcitx 使用),直接以 Qt 3.x 實作
XIM Specification
• 為何要設計 Qooing XIM?
– 彌補在 Qt/Embedded 與 IIIMF backend 未出
現之前的空缺
– 體驗 XIM Protocol 實作的經驗
– 新酷音 RI (Reference Implementation)
– 以 Qt 3.x 設計的設定介面
May 10, 2004
9
新酷音簡介 (續)
• 運作畫面
May 10, 2004
10
新酷音架構
User
對使用者而言,各平台的新酷
音輸入法方式是一致的
Backend 是使用者接觸的環境,
可以是 XIM,也可以是終端機
(JMCCE),甚至是某個模組
(XCIN/IIIMF)
Backend
由 backend 收到的資料,從字
詞庫模組處理斷詞
libchewing
May 10, 2004
11
新酷音架構 (續)
May 10, 2004
12
新酷音發展狀況
• Qooing XIM server
– 可運作,但需要克服 XIM 部分的問題
– 預計於 Kaffe 1.1.5 後兩週釋出
• libchewing
– 已有程式可轉換 libtabe 的詞庫格式
– 提供給 xcin、JMCCE,以及 iiimf-chewing 使用的 patch
• 設定工具
– 注音輸入與鍵盤配置
– Style 選擇
– 使用者詞庫的追加與瀏覽
May 10, 2004
13
邁入 IIIMF
• iiimf-chewing
– 最早由 clkao 設計,為第一個 IIIMF 上智慧型注音的實作
– clkao 也包裝了 libchewing
• 使用 qooing-config (新酷音的設定工具)
• 避免重複發展,整理現有的分支,獨立 libchewing
• 移植到 Debian 的 iiimf-chewing
• 支援 IIIMQCF (IIIM Qt/Embedded Client Framework)
May 10, 2004
14
未來展望
• 引入 bi-gram 的 Language Model
– 自然輸入法 (Gooing) 使用 Hidden Markov Model 來
評估參數
• 實作 role-based 可擴充斷詞模組
• 友善的使用者設定工具
– 不排除使用 GTK2 或是 wxWidgets 開發
• 與 libtabe 計畫整合,讓使用者更容易貢獻詞組
– 可由 GUI 匯出 (export) 詞組到 libtabe
May 10, 2004
15